色情網站的光棍節「福利」:加密式掛馬玩轉流氓推廣

結語:
攻擊者對相關加密算法比較瞭解,選用了較爲少見的Rabbit對稱加密算法;攻擊者具有必定的前端開發經驗,代碼容錯性強,兼容性高了;後臺再也不是靜態文件,而採用了動態生成內容,生成的網址也是一次性的;全部的js代碼均通過了混淆變量的操做。
攻擊者逐步開始學習國外流行Exploitkit的作法,動態生成攻擊頁面,並對漏洞利用代碼加密,防止網關過濾和流量包重放分析,加大了分析難度,也有助於保密攻擊代碼。
對於普通用戶建議應該儘可能避免使用外掛輔助、避免點擊假裝色情網站的惡意廣告、開啓安全軟件進行防禦。php

 

 

https://bbs.safewiki.org/thread-141-1-1.htmlhtml

 

 

 

 

最近,360安全中心監測到一塊兒網站彈窗廣告掛馬事件,彈出的網絡廣告出現掛馬,廣告內容以同城交友等假裝色情誘惑信息爲主,經過對整個掛馬攻擊的過程分析發現該掛馬腳本以及攻擊負載(Payload)在經過中招者網絡時進行加密,並在最後階段經過進行解密執行。攻擊負載甚至還利用regsrv32實用程序執行一個.sct文件來繞過AppLocker的腳本規則。
下面就對該掛馬木馬進行簡單分析:

經過監控追蹤發現主要來源於外掛以及色情網站的自動彈窗廣告,用戶使用此類外掛自動彈出同城交友廣告或瀏覽某些色情網站就可能觸發帶漏洞攻擊的頁面,若是此時受害者的機器沒有打相應補丁的話,就會觸發相應漏洞,開始下載木馬並執行:

前端

<ignore_js_op>



<ignore_js_op>
該頁面客戶嵌入的js腳本過程以下:

 

<ignore_js_op>
掛馬代碼加密過程簡圖:

 

<ignore_js_op>


主要功能:
每次服務器都會生成一個隨機的validate值放入表單中,這個值每次刷新獲得的結果都不同,經過這個值做爲瀏覽器的會話標記。
此外,攻擊者使用IE官方的HTML條件註釋來進行瀏覽器版本判斷,這種判斷對於常見的前端設計是有效的,可是對於瀏覽器漏洞利用倒是錯誤的,由於不一樣瀏覽器都會開啓不一樣程度的兼容模式,致使錯誤的兼容性設置結果,因此不如直接判斷瀏覽器版本好。
根據瀏覽器的上述的結果,構造最終須要提交的表單數據,並進行GET提交

java

<ignore_js_op>

 

<ignore_js_op>

 

第二個頁面:


GET提交的地址http://174.*.*.42/p/servlet?token=&id=49457&validate=XXXXXXXXXX
參數中有servlet,故猜想有可能後臺是java。
這個請求會被302重定向到另一個頁面:
http://174.*.*.43/rt/ab06add394fb469b6510973131acb870.html?id=49457
這個頁面會根據ID返回Rabbit或者RC4的加密後的Load代碼,頁面載入了額外的兩個js庫文件(encrypt.min.js、tinyjs.min.js),提供相關的對稱和非對稱加密算法。

web

<ignore_js_op>
解密獲得的結果:


代碼中會預製一個RSA公鑰,而後使用隨機數生成函數來生成一段字符串做爲後續的對稱加密密鑰,並將該數據POST到服務器,此外還會動態生成一個字符串,二者拼接後做爲後續通信加密的密鑰。POST請求會從服務端返回這個密鑰加密的漏洞利用代碼。此時會根據接收到的數據選項,選擇使用RC4仍是Rabbit算法進行解密並執行。


算法

<ignore_js_op>

 

漏洞利用:最終解密執行的漏洞利用代碼能夠很明顯看出是CVE-2016-0189。



漏洞利用成功後,會利用regsvr32調用sct文件執行對應腳本。
Regsvr32Windows命令行實用工具用於註冊動態連接庫文件,向系統註冊控件或者卸載控件的命令,以命令行方式運行。國外網友Casey Smith@subTee發現經過調用regsrv32實用程序執行一條命令或者.sct文件有可能繞過AppLocker的腳本規則。因爲該實用程序是具備微軟官方簽名的因此好處自不用多說了,而且支持TLS加密,遵循重定向方式,且不會在磁盤上留下痕跡。鑑於這麼多優勢,掛馬者天然不會錯過)瀏覽器

<ignore_js_op>
 

 

regsrv32命令行參數選項:

 

/s  靜默執行


/n  指定不調用 DllRegisterServer ,此選項必須與 /i 共同使用


/i  調用 DllInstall 將它傳遞到可選的 [cmdline] ,在與  /u  共同使用時,它調用 DllUnstall





Sct文件:
文件中包含了通過base64編碼後的惡意dll文件,利用ActiveXObject寫入到本地文件,
在使用腳本操做二進制文件時,經常會由於不可見字符報錯,因此掛馬者一般會選擇先對二進制文件做base64編碼再操做,最後經過解碼還原出二進制文件;

安全

<ignore_js_op>



如下是測試將sct文件中的Base64部分轉換成dll文件的js腳本:




而後會經過regsvr32加特定的參數執行:參數中包含lua腳本的下載連接。




<ignore_js_op>

 

在config.lua文件中其判斷了是否爲網吧環境,如果網吧環境則只安裝小黑記事本(xiaohei.lua)和abc看圖(abc.lua);不然安裝以下圖所示多款軟件。



<ignore_js_op>



<ignore_js_op>

 

以duba.lua爲例其中的lua腳本內容以下,主要判斷未安裝推廣軟件的環境下進行下載安裝:

 

<ignore_js_op>

 

最終普通中招用戶機器上被推廣安裝上10款推廣軟件:



<ignore_js_op>

 

根據監測及同源分析,該木馬在早期的版本中還加入了「隱魂」木馬,不過在近期傳播的樣本中並無發現「隱魂」木馬。

 

[360安全中心在8月份截獲的感染MBR(磁盤主引導記錄)的「隱魂」木馬]

 

http://www.freebuf.com/articles/web/143912.html史上反偵察力最強木馬「隱魂」:撐轉機情播放器百萬推廣陷阱

 

http://www.freebuf.com/articles/system/144792.html「隱魂」木馬篡改主頁分析:史上反偵察力最強木馬的犯罪素描



360安全衛士已經能夠有效攔截此類網站掛馬:



<ignore_js_op>
360安全衛士攔截木馬利用regsvr32 註冊sct木馬:



<ignore_js_op>
<ignore_js_op>
<ignore_js_op>


結語:
攻擊者對相關加密算法比較瞭解,選用了較爲少見的Rabbit對稱加密算法;攻擊者具有必定的前端開發經驗,代碼容錯性強,兼容性高了;後臺再也不是靜態文件,而採用了動態生成內容,生成的網址也是一次性的;全部的js代碼均通過了混淆變量的操做。
攻擊者逐步開始學習國外流行Exploitkit的作法,動態生成攻擊頁面,並對漏洞利用代碼加密,防止網關過濾和流量包重放分析,加大了分析難度,也有助於保密攻擊代碼。
對於普通用戶建議應該儘可能避免使用外掛輔助、避免點擊假裝色情網站的惡意廣告、開啓安全軟件進行防禦。服務器

相關文章
相關標籤/搜索