近日哈勃分析系統截獲了一批新型瀏覽器劫持木馬 “暗影鼠”,該木馬通常被打包在壓縮包內偽裝視頻播放器通過網頁進行傳播。該木馬的主要功能是對瀏覽器訪問導航頁的流量進行劫持,重定向到自己的推廣頁,非法獲取推廣利潤。該木馬最早出現是在今年的4月末,5月初開始小范圍傳播,但是從5月23開始突然爆發,高峰期全網中此木馬用戶數超過30W每日,保守估計近期木馬作者以此獲利總額有近百萬元人民幣。
傳播趨勢
“暗影鼠”啟動后首先釋放大批子文件,如下圖所示
釋放文件列表圖
主要子文件功能:
cBLK.dll
木馬核心功能模塊,注入瀏覽器進程,流量劫持newts.exe
64位系統下kill瀏覽器進程undoing.exe
獲取木馬作者后臺的推廣列表run.bat
清空瀏覽器緩存和臨時文件clk.ini
木馬使用的配置文件“暗影鼠”核心作惡流程
該木馬在釋放了一批子文件之后,枚舉當前系統中的進程,與設定好的國內主流瀏覽器進程名進行對比,如果發現這些瀏覽器進程的存活,則殺掉相應進程,并且生成一個相應被感染的瀏覽器主進程的可執行文件。然后拉起這個被感染的假瀏覽器進程,假瀏覽器進程會加載之前釋放的核心功能dll,然后再dll中hook關鍵系統函數,進行流量劫持。
1.遍歷進程殺瀏覽器進程
進程名比較代碼段
枚舉進程,尋找國內主流瀏覽器進程名。在此本文以chrome瀏覽器為例,對木馬母體的TerminateProcess函數下斷點,查看第一個參數。
結束chrome進程
查看句柄的含義
procxp中查看句柄含義
句柄對應的就是chrome進程
任務管理器中查看chrome的進程ID
可見木馬母體中去殺的進程就是chrome.exe。
2.“貍貓換太子”假瀏覽器出場
殺掉真的chrome之后,木馬母體在chrome.exe的同級目錄下創建了下邊兩個文件。
釋放被感染的chrome
上圖中的exe就是一個被感染的chrome,會在啟動時加載cBLK.dll,然后執行其內部包含的真正的chrome.exe。
假的chrome啟動后,我們用spy++查看當前的瀏覽器窗口歸屬
spy++查看窗口的進程歸屬
假chrome進程樹
0:000> ?9d4
Evaluate expression: 2516 = 000009d4
0x9d4轉成10進制就是2516
可以看到現在使用的chrome就是被感染的chrome。
3.cBLK目的何在
調試器附加假chrome
由上圖可知假chrome加載了cBLK.dll,這個dll的主要功能就是hook系統關鍵函數。
主要Hook點
hook LoadLibraryExw
阻止加載列表
這個hook點的主要目的就是防止安全軟件的瀏覽器安全模塊加載。
hook WSASend發現對導航頁的訪問時
監控的導航頁列表
構造302頁面
發現對上述導航頁的訪問,則構造相應的302跳轉頁面。
hook WSARecv將對應的302頁面返回,達到劫持目的
返回302頁面
上圖中的代碼是在cBLK的WSARecv的hook函數中找到的,后邊會調用真正的WSARecv,使得瀏覽器誤以為接收到了302跳轉頁面,達到劫持目的。
4.其他技術點
啟動被感染的瀏覽器進程,該樣本還使用了監控瀏覽器桌面快捷方式點擊的方法,非主要技術點在此不展開介紹。該樣本也hook其他模塊加載和網絡發送接收函數,道理和上邊說的一致,也不重復了。
哈勃分析系統目前對此樣本的已經查殺。