當前位置:
首頁 > 最新 > 安全公司ESET全面剖析至今活躍5年才被發現的間諜軟體InvisiMole

安全公司ESET全面剖析至今活躍5年才被發現的間諜軟體InvisiMole

用指尖改變世界」

網路安全公司ESET在上周四(6月7日)發布的一份最新報告中指出,其安全團隊在上個月發現了一種針對性極強的間諜軟體,至少自2013年以來就一直處於活動狀態。然而,直到安裝在烏克蘭和俄羅斯的受感染計算機上的ESET產品發現它之前,該間諜軟體從未被分析或檢測到。

間諜軟體被命名為「InvisiMole」,ESET安全團隊對它的評價是「有效」且「功能強大」。

它具備多種惡意功能,包括安裝後門程序、遠程代碼執行,並能夠將受感染計算機變成一台真正意義上的監控設備——能夠錄製周圍環境的音頻。

ESET安全團隊指出,InvisiMole具有一個模塊化的體系結構,通過一個包裝器DLL開始它的旅程,並使用嵌入在其資源中的另外兩個模塊來執行活動。這兩個模塊都是功能豐富的後門程序,這使它能夠收集儘可能多的關於目標的信息。

另外,它還採取了額外的措施來避免引起被侵害用戶的注意,使其能夠在受感染計算機中駐留更長的時間。ESET安全團隊表示,InvisiMole是如何傳播到受感染計算機上的還有待進一步的調查。所有感染媒介都是有可能的,包括通過物理訪問計算機來進行安裝。


InvisiMole的第一部分是一個包裝器DLL。它是採用開源的Pascal編譯器編譯的,被放置在Windows文件夾中,偽裝成具有偽造版本信息資源的合法mpr.dll庫文件。

圖1 - 包裝器DLL偽裝成合法的mpr.dll庫,包括名稱和版本信息

ESET安全團隊表示,雖然目前他們並沒有發現名稱不同的包裝器DLL,但DLL代碼中的一些提示表明,包裝器DLL也可能會被命名為fxsst.dll或winmm.dll。

InvisiMole的第一種啟動方法是劫持一個DLL,放置在與explorer.exe的同一個文件夾中的,包裝器DLL在Windows啟動期間載入到Windows Explorer進程中,而不是位於%windir%system32文件夾中的合法庫。

InvisiMole目前已經被發現存在兩個版本(32位和64位),這意味著這種持久性實現技術在兩種架構上都能正常運作。

作為DLL劫持的替代方法,採用其他載入和持久性實現方法也是可能的。包裝器DLL導出一個名為GetDataLength的函數,當調用這個函數時,DLL會檢查rundll32.exe進程是否載入了explorer.exe或svchost.exe作為其父進程,只有這樣它才會啟動有效載荷。這暗示了其他可能的持久性實現方法——通過調度任務(即將svchost.exe作為父進程)或通過安裝在啟動註冊表項中(explorer.exe作為父進程)。

無論實現持久性的方法如何,實際有效載荷的行為在所有情況下都是相同的。包裝器DLL將載入存儲在其資源中的模塊(名為RC2FM和RC2CL),最終將合法庫載入到explorer.exe進程中,以便不中斷應用程序的正常操作,從而保持隱蔽性。

圖2 - 包裝器DLL的導出函數


InvisiMole編譯的確切日期目前是未知的,因為其開發者對最新的包裝器DLL樣本PE時間戳進行了篡改,手動設置為零值。ESET安全團隊表示,他們在一個早期版本中發現的時間戳顯示為2013年10月13日,而後續更新版本的編譯日期肯定會晚於這個日期。

圖3 - 所有最新樣本中的編輯時間戳都設置為零


為了提高其自身的隱匿性,InvisiMole通過對其字元串、內部文件、配置數據和網路通信進行加密來保護自己免受管理員和分析人員的監視。雖然RC2FM模塊使用了少量的自定義密碼,但包裝器DLL和RC2CL模塊共享了一個特定常式,特別是用於解密嵌入在包裝器DLL中的其他惡意軟體模塊。

為了能夠從包裝器DLL中提取嵌入式模塊RC2FM和RC2CL,ESET安全團隊實現了一個腳本,並將其上傳到了GitHub。

圖4 - 樣本間使用的加密程序(反編譯和反彙編)


第一個較小的模塊RC2FM包含一個支持15種命令的後門程序,能夠在接收攻擊者指示的情況下在受感染計算機上執行的。該模塊旨在對系統進行各種更改,但也提供了一系列監視命令。

日誌選項在整個文件中實現,但日誌文件的名稱未在分析的示例中配置,這表明它只在惡意軟體的開發過程中使用。

RC2FM模塊與樣本中硬編碼的C&C伺服器進行通信,或由攻擊者進行更新。此外,即使受感染計算機上配置有代理,它也能夠連接到C&C伺服器。如果直接連接不成功,它會嘗試使用各種瀏覽器(Firefox、Pale Moon和Opera)的本地配置代理或代理連接到任何C&C伺服器。

RC2FM模塊能夠檢查最近執行的應用程序列表,尤其是會針對攜帶型瀏覽器可執行文件進行查找:

FirefoxPortable.exe

OperaPortable.exe

Run waterfox.exe

OperaAC.exe

Palemoon-Portable.exe

如果受害者在配置了代理伺服器的情況下使用這些攜帶型瀏覽器的其中之一,RC2FM模塊則可以根據受害者的偏好找到並使用該代理與其C&C伺服器進行通信。

C&C通信由一系列HTTP GET和POST請求組成,如圖5所示。加密的請求包括一個PC標識符和時間戳以及可選的其他數據。值得注意的是,與其他InvisiMole組件不同,RC2FM模塊使用多種加密方法(簡單異或加密常式的變體)。

圖5 - RC2FM模塊發送到C&C伺服器的請求示例

在向C&C伺服器成功註冊受害者之後,RC2FM模塊會下載其他數據,這些數據將在本地計算機上解釋為後門命令。


RC2FM模塊支持列出基本系統信息和對系統進行簡單更改的命令,但也包括一些間諜軟體功能。當攻擊者需要時,它能夠遠程激活受感染計算機上的麥克風並捕獲聲音。使用合法的lame.dll庫將音頻錄製內容編碼為MP3格式,該內容由RC2FM模塊下載並濫用。

RC2FM模塊竊取受害者隱私的另一種方式是屏幕截圖,這是另一種後門命令。

RC2FM模塊還會監視映射到本地系統上的所有固定和可移動驅動器。無論何時插入新的驅動器,它都會實現驅動器上所有文件的列表,並將其加密存儲在一個文件中。

當接收到適當的命令時,所有這些收集到的數據最終都會被發送給攻擊者。


RC2FM模塊支持的15個命令,如下所列。後門解釋器功能如圖6所示。

圖6 - 後門解釋器功能

RC2CL模塊也是一個具有廣泛間諜功能的後門程序。它由包裝器DLL啟動,並與RC2FM模塊同時啟動。它的功能更複雜,並提供了收集儘可能多的有關受感染計算機數據的功能,而不是用於更改系統。

有趣的是,RC2CL模塊中有一個選項可以關閉它的後門功能並充當代理。在這種情況下,RC2CL模塊會關閉Windows防火牆,並實現一個伺服器,在客戶端與C&C伺服器之間或兩個客戶端之間傳輸通信。


RC2CL模塊通過TCP套接字與C&C伺服器進行通信。從客戶端發送的消息模仿HTTP協議,但請注意圖7示例中無效的「HIDE」 HTTP謂詞。

這些請求包括被泄露的PC標識符、請求類型以及要發送給攻擊者的加密數據,即後門命令的結果或用於請求進一步指示的請求。

圖7 - RC2CL模塊發送到C&C伺服器的請求示例


根據收到的命令,RC2CL模塊可以在受感染計算機上執行各種操作。常見的後門程序通常支持諸如文件系統操作、文件執行、註冊表鍵操作或遠程shell激活之類的命令。然而,RC2CL模塊不僅支持所有這些命令,甚至更多——它的84條命令為攻擊者提供了他們需要的一切,以更密切地監視他們的目標。

RC2CL模塊可以檢查被感染的計算機並提供各種數據,從活動進程列表、運行服務列表、載入驅動程序或可用驅動器到網路信息,包括IP轉發表和internet連接速度。

RC2CL模塊使得InvisiMole能夠在受感染計算機掃描啟用的無線網路,並記錄諸如可用Wi-Fi接入點的SSID和MAC地址等信息。然後,可以將這些數據與公共資料庫進行比較,讓攻擊者跟蹤受害者的地理位置。

其他命令可以提供有關受感染計算機的用戶、他們的帳戶和以前的會話信息。

系統上安裝了哪些應用程序?哪些應用程序是在系統啟動或用戶登錄時自動執行的?哪些程序被特定用戶使用?如果攻擊者對這些敢興趣,他們只需要發送一條命令即可完成。

攻擊者可以指示RC2CL模塊搜索受害者最近使用的文檔或其他感興趣的文件。同時,RC2CL模塊也可以監視特定目錄和可移動設備,報告任何更改或者竊取攻擊者選定的文件。

另外,RC2CL模塊還可以啟用或禁用用戶帳戶控制(User Account Control,AC),甚至是繞過UAC並在沒有管理員許可權的情況下使用安全位置的文件。如果RC2CL模塊在自動升級的explorer.exe進程下運行,它可以實現一個提升的COM對象,並使用它在需要管理員許可權的位置刪除或移動文件。

更令人不安的是,它可以遠程激活受感染計算機的攝像頭和麥克風,通過拍攝和錄製聲音來窺探受害者,並可以通過屏幕截圖來實施監控。InvisiMole的特別之處在於,不僅可以進行通常的「全屏顯示」屏幕截圖,而且可以分別捕獲每一個窗口,這有助於攻擊者獲得更多信息,即使是在窗口重疊的情況下。

此外,其中一個後門命令用於替換具有以下名稱的驅動程序的內容:

ESET安全團隊表示,他們還沒有觀察到攻擊者實際使用這個命令,但可以推測這樣做是為了在32位系統上實現額外的持久性。

雖然RC2CL模塊可以干擾系統(例如註銷用戶、終止進程或關閉系統),但它主要提供被動操作。只要有可能,它就會試圖隱藏自己的活動。

例如,RC2CL模塊會嗅出系統中有趣的地方,讀取最近的文檔,甚至修改一些文件。這些都將在系統上留下痕迹,並可能引起受害者的懷疑,因為每次這樣的活動都會更改最後訪問或修改文件的時間。為了防止這種情況發生,RC2CL模塊總是會恢復原始的文件訪問或修改時間,以便受害者不會注意到它的的操作。

InvisiMole開發者試圖進行秘密行動的另一個例子是他們處理留在磁碟上的痕迹的方式。RC2CL模塊會收集大量的敏感數據,這些數據被暫時存儲在文件中,並會在成功上傳至C&C伺服器後被刪除。然而,即使是被刪除的文件,也可以由經驗豐富的系統管理員恢復,這有助於在受害者意識到被攻擊後對攻擊行為進行進一步調查。這是可能的,因為即使刪除了文件,一些數據仍然存在於磁碟上。為了防止這種情況發生,InvisiMole可以安全刪除所有文件,它首先用0或隨機位元組覆蓋文件中的數據,然後刪除文件。


後門配置和收集的數據會被存儲在工作目錄和工作註冊表項這兩者中的其中之一,而後門命令集的很大一部分被專門用於處理這些存儲位置及其內容。

工作目錄的位置由遠程伺服器的指令決定。該目錄被用作文件的臨時存儲,其中包含有關被受感染計算機的數據,這些文件共享一個通用的命名規則、加密演算法和結構。它們通過在InvisiMole組件中使用簡單異或加密常式的變體進行加密。文件的類型可以從位於文件開頭的4位元組控制序列中派生出來。

除了作為收集數據的倉庫外,工作目錄還包含合法的WinRAR.exe應用程序副本,它被用於壓縮將要泄露的數據。

工作註冊表項用於存儲配置數據,以及工作目錄中的文件列表。數據使用在InvisiMole二進位文件中實現的Zlib常式進行打包,並使用與內部文件相同的密碼進行加密。


RC2CL模塊提供了80多條利用工作目錄和註冊表鍵來存儲其中間結果和配置數據的命令。後門解釋器的功能如圖8所示。

大約三分之一的命令專門用於讀取和更新存儲在註冊表中的配置數據,下表列出了其餘命令:

圖8 - 後門解釋器功能


InvisiMole是裝備齊全的間諜軟體,它的豐富功能可以與其他在實際攻擊活動中發現的間諜工具相抗衡。

ESET安全團隊表示,他們並不清楚InvisiMole開發者會決定使用兩個具有重疊功能的模塊。可能有人會認為較小的RC2FM模塊被用作初始偵察工具,而較大的RC2CL模塊僅用於攻擊者感興趣的目標。然而,情況並非如此——兩個模塊都是同時啟動的。另一種可能的解釋是,這些模塊可能是由不同的開發者完成的,然後捆綁在一起為惡意軟體運營者提供更複雜的功能。

雖然InvisiMole只使用了少數幾種技術來逃避檢測和分析,然而由於它只針對了極少數高價值目標進行部署,因此這使得它保持長達5年的時間不被發現。


在GitHub上可以找到完整和全面的IoC,C&C伺服器列表以及註冊表項和值。

本文由黑客視界綜合網路整理,圖片源自網路;轉載請註明「轉自黑客視界」,並附上鏈接。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 黑客視界 的精彩文章:

請務必立即更新你的谷歌瀏覽器 一個漏洞允許黑客執行多種攻擊

TAG:黑客視界 |