2016年2月26日,一個(gè)網(wǎng)絡(luò )安全相關(guān)的QQ群內,一名用戶(hù)分享了一份名為“網(wǎng)絡(luò )安全寶典.chm”的電子書(shū)供大家下載,瑞星網(wǎng)絡(luò )安全工程師Bfish自然地下載了這本電子書(shū),打算簡(jiǎn)單翻閱后決定是否收藏。當Bfish打開(kāi)這個(gè)才12K大小的電子書(shū)時(shí),感知到了計算機的異常行為,這讓他意識到:這本電子書(shū)有問(wèn)題。
在解開(kāi)這份CHM文檔后,瑞星網(wǎng)絡(luò )安全工程師在一個(gè)html頁(yè)面中找到了原因:這個(gè)電子書(shū)中的某個(gè)HTML頁(yè)面內,嵌入了一段惡意代碼,它可以下載一個(gè)PowerShell腳本并執行。順藤摸瓜,Bfish最終確認了這是一個(gè)針對特定人群,以盜取用戶(hù)帳號密碼、文檔資料為目的惡意攻擊事件。這段CHM惡意代碼如同幽靈一樣被執行并作惡,故將此稱(chēng)之為幽靈電子書(shū)(ChmGhost)。
0×02 主要危害通過(guò)電子書(shū)散播,攻擊受眾有很強的群體性,對特定人群發(fā)起攻擊簡(jiǎn)直易如反掌,而且電子書(shū)“誘餌”更容易迷惑大眾。
目前看到的攻擊代碼,主要的危害為竊取用戶(hù)隱私:Windows賬戶(hù)信息和密碼、各類(lèi)應用程序的密碼、計算機基本信息、屏幕截圖、網(wǎng)絡(luò )配置和Wi-Fi信息、各類(lèi)文檔,造成用戶(hù)敏感信息和資料泄漏。這些資料的泄漏伴隨著(zhù)商業(yè)機密泄漏的風(fēng)險,后續或造成更大的損失。
另外,攻擊時(shí)所用的惡意代碼,無(wú)論是二進(jìn)制還是腳本,幾乎都來(lái)自網(wǎng)絡(luò )下載,攻擊可以隨時(shí)開(kāi)啟和關(guān)閉,攻擊手法、攻擊目的也都可以變化,這個(gè)“后門(mén)”的潛在危害也相當之大。
2月26日發(fā)現的CHM的標題是網(wǎng)絡(luò )安全相關(guān)的,并且在網(wǎng)絡(luò )安全相關(guān)的QQ群內散播,表明攻擊者的目標是網(wǎng)絡(luò )安全從業(yè)和對網(wǎng)絡(luò )安全感興趣的、有一定計算機安全基礎的群體,但就算如此,僅一天時(shí)間就已經(jīng)有多名受害者,如果攻擊者轉到其他領(lǐng)域,受眾群體應該會(huì )更沒(méi)有感知能力,危害也將更大。
0×03 攻擊實(shí)施縱覽[attach]247678[/attach]首先,CHM中使用了一種古老的方法 — 利用Internet.HHCtrl對象來(lái)運行任意命令行。doc1.html中定義了一個(gè)Internet.HHCtrl對象,再通過(guò)后續腳本觸發(fā)其Click事件,調用Internet.HHCtrl.Item2定義的命令行。
[attach]247679[/attach]
完整命令行如下:
[attach]247681[/attach]
命令行以隱藏方式啟動(dòng)PowerShell,并執行下載攻擊者托管于Github上的攻擊腳本——start.ps1。
start.ps1首先向106.80.36.165發(fā)起一個(gè)HTTP請求,下載的內容為一段PowerShell腳本字符串,通過(guò)Invoke-Expression直接調用,腳本內容如下:
[attach]247682[/attach]
根據腳本中指明的方法,對其中的BASE64編碼串進(jìn)行解碼、解壓縮,又獲得一段PowerShell腳本,內容如下:
[attach]247676[/attach]
按照腳本中指明的方法對BASE64串解碼,獲得一段二進(jìn)制數據,為32位x86指令的shellcode。腳本在解碼這段shellcode后,將其拷貝到通過(guò)VirtualAlloc分配的一塊RWX(Protect為0×40)的內存中,并通過(guò)CreateThread創(chuàng )建一個(gè)線(xiàn)程來(lái)執行,如下:
[attach]247684[/attach]
[attach]247685[/attach]
這段shellcode并沒(méi)有經(jīng)過(guò)任何加密處理,功能也非常簡(jiǎn)單:連接到指定的IP地址,獲取一段新的shellcode,再次執行。雖然簡(jiǎn)單,但是這中動(dòng)態(tài)執行來(lái)自網(wǎng)絡(luò )代碼的功能,危害卻是相當之大,因為攻擊者隨時(shí)可以下發(fā)新的代碼,完成新的攻擊,并且沒(méi)有痕跡可循。
主流程如下表所示:
[attach]247686[/attach]
接下來(lái)是 Mimikatz 2.0的實(shí)現部分,這部分代碼占據了整個(gè)start.ps1文件的絕大多數內容。Mimikatz是一個(gè)抓取本機登錄賬戶(hù)密碼的神器,更多信息可以從項目主頁(yè)https://github.com/gentilkiwi/mimikatz了解。
[attach]247687[/attach]
接著(zhù)便是調用 Mimikatz 的 Dumpcreds 來(lái)獲取當前登陸用戶(hù)的密碼,如圖所示:
[attach]247688[/attach]
完成后生成的DumpPass.txt中的內容如下,截圖來(lái)自真實(shí)受害者的數據:
[attach]247706[/attach]
接著(zhù),收集當前用戶(hù)桌面上的幾類(lèi)文檔,根據擴展名判斷,擴展名分別為:txt,doc,docx,xls,xlsx,早期版本中還有sql。非常明顯,攻擊者收集目標是重要的文檔資料,這對受害者可能造成很大的損失。從2月26號抓取的上報郵箱中的資料來(lái)看,擴展名還不限于此(攻擊者持續更新代碼中)。
[attach]247690[/attach]
接著(zhù),下載并執行一個(gè)名為GetPass.ps1的PS腳本,如下圖所示:
[attach]247691[/attach]
顧名思義,該腳本的目的,依然是收集密碼。腳本執行后,下載兩個(gè)文件,分別為Get.exe和Command.bat,然后執行Command.bat調用Get.exe,將獲取的密碼保存到用戶(hù)目錄下的D:\GetPass.txt中。
[attach]247692[/attach]
其中,Get.exe為跨平臺密碼檢索利器 —— LaZagne,可以去項目主頁(yè)https://github.com/AlessandroZ/LaZagne 獲取更多信息。LaZagne支持Windows和Linux平臺下多種類(lèi)型軟件保存的密碼獲取,功能可謂相當之強大,具體支持列表如下:
[attach]247693[/attach]
Command.bat則是多次啟動(dòng)Get.exe獲取密碼,并將結果保存至GetPass.txt,代碼如下:
可以看出,攻擊者意圖收集包括數據庫、瀏覽器、電子郵件、源代碼管理、WI-FI等在內的5大類(lèi)賬戶(hù)密碼。下圖為來(lái)自真實(shí)受害者的GetPass.txt文件,其中包含了Chrome瀏覽器保存密碼的站點(diǎn)和相應用戶(hù)名、密碼,第一條便是淘寶的用戶(hù)名和密碼,由此可以看出,后果是相當嚴重的。
[attach]247694[/attach]
接下來(lái),GetPass.ps1將GetPass.txt作為電子郵件附件,采用STMP協(xié)議發(fā)送至電子郵箱 xxxxxxxxxx@email.ctbu.edu.cn。該收件箱為某高校校園郵箱,登陸后跳轉至QQ企業(yè)郵箱。
[attach]247707[/attach]
[attach]247697[/attach]
最后,GetPass.ps1清理痕跡,至此執行完畢。
start.ps1繼續收集受害者計算機的各類(lèi)基本信息。主要手法為通過(guò)調用WMI對象對系統的基本信息,硬件信息、用戶(hù)信息、已安裝的程序、用戶(hù)文檔以及網(wǎng)絡(luò )信息進(jìn)行收集,并將這些信息保存到一個(gè)名為ComputerInfo.html的 HTML文件中,代碼如下:
[attach]247698[/attach]
以下為一份來(lái)自真實(shí)受害者的ComputerInfo.html內容截圖:
[attach]247699[/attach]
[attach]247700[/attach]
在信息收集完畢后,該腳本會(huì )對當前計算機現實(shí)屏幕進(jìn)行截屏。
[attach]247701[/attach]
從真實(shí)受害者上報的數據來(lái)看,該功能是無(wú)效的,因為截屏的圖片全部為黑色。
然后再將之前產(chǎn)生的DumpPass.txt,收集的用戶(hù)桌面上的文檔文件、產(chǎn)生的計算機信息文件、屏幕截圖等,打包成名為Report.zip的壓縮包,并通過(guò)電子郵件發(fā)送至指定的郵箱。
[attach]247702[/attach]
使用代碼中留下的賬號和密碼登錄郵箱后,我們發(fā)現有一定數量的受害者發(fā)送的郵件(登錄于2016/2/27,15:29),郵箱內的郵件一段時(shí)間之后會(huì )被刪除,27號登錄時(shí),26號晚的郵件已經(jīng)被徹底刪除。
[attach]247703[/attach]
打開(kāi)郵件并下載附件Report.zip,解壓后可以看到以下文件和目錄,這些文件和之前描述的腳本行為相吻合,例如,打開(kāi)Doc目錄后,可以看到收集自受害者桌面的幾類(lèi)文檔,在25號抓取的多封郵件中,還不乏各類(lèi)工作報告,甚至個(gè)人工資單。
[attach]247704[/attach]
[attach]247705[/attach]
[attach]247708[/attach]
最后,start.ps1清理痕跡,主要功能執行完畢。
通過(guò)分析可知,整個(gè)攻擊中的核心功能,均為開(kāi)源項目。攻擊者編寫(xiě)了簡(jiǎn)單的整合腳本,將這些開(kāi)源軟件整合在一起,在云端部署了這些攻擊代碼,最終構建了這個(gè)攻擊方案。
0×05 寫(xiě)在最后首先希望攻擊者盡快停止此次攻擊,停止在社交圈內散播攜帶攻擊代碼的電子書(shū),在云端移除相關(guān)的惡意軟件,避免造成更大的危害。
攻擊者選擇了特定興趣/行業(yè)的社交圈和相關(guān)主題的電子書(shū)進(jìn)行搭配,這無(wú)疑是一個(gè)非常具有誘騙性的“釣魚(yú)”手段,被攻擊人群很容易被感染。分析此次事件時(shí),攻擊人群定位于網(wǎng)絡(luò )安全從業(yè)人士,雖然有一定的網(wǎng)絡(luò )安全基礎,但仍然有一定被感染數量。如果換成其他行業(yè),情況可能會(huì )更加糟糕。
另外,這次攻擊事件中使用的惡意代碼,全部來(lái)自于網(wǎng)絡(luò )安全社區,制作成本非常低。
再者,攻擊者不僅收集了用戶(hù)的賬戶(hù)和密碼,還收集了大量的文檔資料,這造成的危害,已經(jīng)不是單純的個(gè)人隱私數據的泄漏了,更可能涉及到受害者所在公司的商業(yè)信息的泄漏。
最后,對于潛在的受害者,還是希望能安裝必要的安全防護軟件,建立良好的信息安全意識。在全面信息化的今天,信息安全知識應當如同養生一般,多多少少都懂點(diǎn)才好。
惡意代碼樣本:https://github.com/begiilm/dy
*作者:Bfish、Chris@瑞星(企業(yè)賬號),轉載請注明來(lái)自FreeBuf黑客與極客(FreeBuf.COM)
歡迎光臨 91手機維修論壇 (http://www.jstransmit.com/) | Powered by Discuz! X3.4 |