Hackers們經(jīng)常會使用URL縮寫來對惡意鏈接進(jìn)行偽裝。然而,在本文的情況中,在URL縮寫中嵌入了廣告,并鏈接至了惡意站點。這一切都始于Adf.y的間隙廣告,間隙廣告這種技術(shù)是指在用戶得到實際網(wǎng)頁內(nèi)容之前,頁面上會顯示一些廣告,廣告持續(xù)時間僅為幾秒鐘。
按照這個復(fù)雜的惡意廣告重定向鏈,在將有效載荷加至磁盤之前,HanJuan EK將會加載并利用Flash Player和IE瀏覽器的漏洞。
我們所收集到的有效載荷使用了多個軟件層為它的二進(jìn)制代碼以及其與命令控制器和控制服務(wù)器通訊的信息進(jìn)行了加密。這種木馬的目的是為了通過網(wǎng)絡(luò)釣魚,并扮演網(wǎng)絡(luò)的中間人來竊取信息,得到密碼和其他敏感數(shù)據(jù)。
技術(shù)細(xì)節(jié)
01 惡意廣告鏈
1、 前四個部分通過一個經(jīng)過編碼的JavaScript腳本簡介來加載廣告:??
Chrome瀏覽器的JavaScript控制臺可以幫助我們對重定向調(diào)用進(jìn)行快速定位,而不必進(jìn)行復(fù)雜的解碼步驟:??
2、開始重定向:??
接下來的三個部分與其余部分有某些區(qū)別,這些會話過程之間的聯(lián)系現(xiàn)在還無法確認(rèn)。深入研究之后,我們發(fā)現(xiàn)目的URL地址是由跨源資源共享(CORS)加載的。
科普:
“跨源資源共享(CORS)是一種機制,它能夠允許其他外部域的用戶申請訪問資源原始域的網(wǎng)頁中的受限資源。-維基百科”
上面為通過訪問控制許可源請求獲得的adk2.com網(wǎng)絡(luò)廣告的內(nèi)容。??
這便讓我們得到了youradexchange.com所帶來的惡意廣告:??
其中所插入的URL地址實際上是一個真正的Joomal網(wǎng)站,但是這里能看到一個警告:該網(wǎng)站已被攻擊!??
利用工具??
在這里所提到的利用工具與我們常見的漏洞利用工具(Angler EK, Fiesta EK, Magnitude EK)有所不同。在經(jīng)過一番分析和對比之后,我們認(rèn)為它就是HanJuan EK。
在此之前,我們只對HanJuan EK進(jìn)行過為數(shù)不多的幾次討論,所以很少人真正了解這個工具。我們層在未知利用工具中對其進(jìn)行了描述,這是一個極其隱蔽的工具。
我們也在一個被入侵的網(wǎng)站上發(fā)現(xiàn)了HanJuan EK。
訪問頁面被分為了兩個部分:
1.?? 執(zhí)行Flash Player漏洞利用的代碼
2.?? 執(zhí)行IE瀏覽器漏洞利用的代碼
Flash漏洞利用的文件名都是隨機生成的,每次使用的都是與我們之前所觀察到的原始HanJuan工作模式相近的方式。
然而,在漏洞利用過程結(jié)束之后,代碼會插入一個帶有Flash版本信息的新GET請求會話。
最終,另一個隨機生成的URL地址和帶有。dat擴展名的文件名會將有效載荷交付。與之前版本的HanJuan不同的是,它會將一個二進(jìn)制文件放入磁盤之中。
02 Fiddler流量數(shù)據(jù):
接受到的頁面數(shù)據(jù):??
Flash Player漏洞利用(CVE-2015-0359):
此次漏洞利用使用了VirtualAllocEx 編程接口,執(zhí)行了一次內(nèi)存堆棧攻擊。
IE瀏覽器的漏洞利用(CEV-2014-1776):
在這種情況下,我們同樣可以通過NtProtectVirtualMemory編程接口來執(zhí)行內(nèi)存堆棧攻擊,但并不推薦這樣做。
反惡意-反間諜軟件的用戶已經(jīng)不會受到這兩種漏洞的影響了:
關(guān)于惡意軟件的有效載荷
目前該有效載荷已經(jīng)被命名為Trojan.Agent.Fobber。這個名字來源于一個名為”Fobber“的文件夾,而該文件夾是用于存儲惡意軟件以及其他相關(guān)文件的。
不同于普通的Windows程序,F(xiàn)obber的執(zhí)行過程類似于下圖所示:
就在研究中所觀察到的情況,F(xiàn)obber惡意軟件的目的是為了竊取用戶各種賬號的憑證。既然目前還沒有確定Fobber與其他已知惡意軟件的關(guān)系,我們懷疑它可能與其他盜取信息的木馬有關(guān)系,比如說Carberp或Tinba。
Fobber.exe
Fobber.exe是一個非常復(fù)雜的程序,而且其代碼是經(jīng)過混淆的。在在樣本中,它一直在嘗試打開隨機注冊表鍵,然后惡意軟件便會執(zhí)行一長串的跳躍,就好像是為了制造一個”兔子洞”來拖延我們的分析。
在這之后,fobber.exe進(jìn)程便終止了,惡意軟件的執(zhí)行會在verclsid.exe中繼續(xù)。
Verclsid.exe(Fobber代碼)
這個進(jìn)程中的Fobber代碼的主要目的就是獲取Windows Explorer(explorer.exe)的進(jìn)程ID號(PID),并向這個進(jìn)程注入一個線程。向Windows Explorer中注入代碼是一種常用的信息竊取技術(shù),惡意軟件已經(jīng)使用這種技術(shù)很多年了。
在執(zhí)行一個功能之前,它的代碼會受限進(jìn)行解碼,如下圖所示(請注意指令”decode_more”):
在調(diào)用這個指令之后,所有的命令都很清楚了。
最終,當(dāng)函數(shù)想要返回時,它會調(diào)用一個使用了ROP工具的特殊程序。
在上圖所示的”return_caller”中,返回指針被重寫了,并指向了父函數(shù)的返回指針(sub_41B21A)。除此之外,剛才函數(shù)中所有運行過的字節(jié)都被重新加密了,如下圖所示。
這種技術(shù)可以讓Fobber惡意軟件比傳統(tǒng)的惡意軟件更加地難以進(jìn)行分析,因為傳統(tǒng)的惡意軟件可以將整個二進(jìn)制文件全部拆包。類似的功能同樣可以在很多商業(yè)保護(hù)軟件中見到,例如Themida。
為了定位Explorer的PID,惡意軟件會搜索Explorer進(jìn)程所使用的名為”Shell_TrayWnd”的已知進(jìn)程窗口。
代碼使用了RtlAdjustPrivilege來為verclsid.exe進(jìn)程授權(quán),即SE_DEBUG_PRIVILEGE。這樣便會允許 verclsid.exe將代碼注入至Windows Explorer進(jìn)程中,而不會產(chǎn)生任何的錯誤問題。在這個函數(shù)執(zhí)行完之后,更多的代碼會在內(nèi)存中解碼,并會在Explorer進(jìn)程中創(chuàng)建一個遠(yuǎn)程的控制 線程。
Explorer.exe(Fobber代碼)
在這個情況下,F(xiàn)obber惡意軟件便會開始進(jìn)行它的主要操作,即永久注入目標(biāo)主機中,與C&C服務(wù)器進(jìn)行連接,以及進(jìn)行更多的操作。
03永久注入
Fobber能夠通過將其自身(fobber.exe)復(fù)制進(jìn)AppData文件夾中的”Fobber”文件夾中,并使用nemre.exe作為文件名,這樣Fobber便可以在目標(biāo)主機中立足了。在一個普通的計算機中,路徑可能會是:
C:\Users\<username>\AppData\Roaming\nemre.exe
每次遇到HanJuan EK時,我都覺得特別有趣,因為它很罕見。
通常情況下,漏洞利用工具只會以軟件的某一部分為目標(biāo),這樣可以獲得最高的利用價值:IE瀏覽器和Flash Player播放器。