針對惡意軟體Smoke Loader新樣本的分析
概述
在思科高級惡意軟體防護(AMP)漏洞利用預防引擎發出告警後的幾個月之中,思科Talos團隊持續在監測新版本的惡意軟體Smoke Loader,這一惡意軟體可以用來進一步載入其他惡意軟體。儘管我們的高級惡意軟體防護(AMP)可以在主機被感染前有效阻止惡意軟體,但經過進一步的分析,我們發現了此次捕獲的Smoke Loader樣本發生了一些變化。其中包括,新樣本首次使用了PROPagate注入技術。在上個周末,Bleeping Computer曾發布過一份基於RIG Exploit Kit的新型惡意活動報告,除此之外,我們目前還沒有發現其他任何惡意軟體使用過此技術。
Talos團隊此前對Smoke Loader進行過詳細的研究。該惡意軟體曾被用作網路攻擊的下載器,並藉助烏克蘭會計軟體開發商Crystal Finance Millennium的官方網站發動攻擊。
與其他的一些惡意活動類似,其最初的感染方式是帶有惡意Microsoft Word文檔的電子郵件。郵件會誘導用戶打開附件,並啟用嵌入式宏。當用戶打開後,就會自動下載惡意軟體,最終導致目標系統感染Smoke Loader惡意軟體及其插件。
Smoke Loader主要作為下載程序,用於執行刪除操作和執行其他惡意軟體,例如勒索軟體或加密貨幣挖礦軟體。目前,一些擁有Smoke Loader殭屍網路的攻擊者已經在惡意軟體論壇上試圖售賣安裝了第三方Payload的惡意軟體。我們所捕獲的樣本沒有傳輸任何其他的可執行文件,這表明該樣本可能不再像以前那樣受歡迎,或者只是用於私人目的。
Smoke Loader的眾多插件都用於竊取被感染用戶的敏感信息,特別針對Windows憑據、TeamViewer憑據、電子郵件賬戶及密碼等這些會通過瀏覽器傳輸的存儲憑據或敏感信息。
技術分析
感染鏈
如上所述,感染過程以電子郵件和附件中惡意Word文檔(b98abdbdb85655c64617bb6515df23062ec184fe88d2d6a898b998276a906ebc)開始。下圖為誘導電子郵件的截圖。
附件中的Word文檔包含一個嵌入的宏,該宏將啟動第二階段,並下載Trickbot惡意軟體(0be63a01e2510d161ba9d11e327a55e82dcb5ea07ca1488096dac3e9d4733d41)。
該文檔從hxxp://5[.]149[.]253[.]100/sg3.exe 或 hxxp://185[.]117[.]88[.]96/sg3.exe下載Trickbot惡意軟體,將其另存為%TEMP%[a-zA-Z].exe並執行。這些URL在過去曾經多次作為惡意可執行文件的下載站點,其中包括Trickbot的樣本。
根據我們監測的結果,惡意軟體最終下載了Smoke Loader木馬(b65806521aa662bff2c655c8a7a3b6c8e598d709e35f3390df880a70c3fded40),該木馬中安裝了另外五個Smoke Loader插件,我們將在本文的後面詳細分析這些插件。
Trickbot
我們所分析的樣本的哈希值是0be63a01e2510d161ba9d11e327a55e82dcb5ea07ca1488096dac3e9d4733d41。
Smoke Loader經常以Trickbot作為Payload。我們所分析的樣本對代碼進行了混淆,這很可能是「惡意軟體作為服務」(Malware-as-a-service)的一個具體應用,殭屍網路的運營商會收取費用,隨後在被感染的計算機上安裝第三方惡意軟體。目前,我們還沒有進一步分析Trickbot樣本,但為了讓大家參考,我們在此提供了Trickbot的配置(考慮到安全因素,IP地址中的點已經加上了方括弧):
1000167
wrm13
185[.]174[.]173[.]34:443
162[.]247[.]155[.]114:443
185[.]174[.]173[.]116:443
185[.]174[.]173[.]241:443
62[.]109[.]26[.]121:443
185[.]68[.]93[.]27:443
137[.]74[.]151[.]148:443
185[.]223[.]95[.]66:443
85[.]143[.]221[.]60:443
195[.]123[.]216[.]115:443
94[.]103[.]82[.]216:443
185[.]20[.]187[.]13:443
185[.]242[.]179[.]118:443
62[.]109[.]26[.]208:443
213[.]183[.]51[.]54:443
62[.]109[.]24[.]176:443
62[.]109[.]27[.]196:443
185[.]174[.]174[.]156:443
37[.]230[.]112[.]146:443
185[.]174[.]174[.]72:443
Smoke Loader加殼/注入過程詳細分析
通常,惡意軟體會對進程列表進行遍歷,以此來找到要注入的進程。安全研究人員非常了解惡意軟體的這一特性,也編寫了許多工具來跟蹤此技術中所使用到的Windows API,例如CreateToolhelp32Snapshot。我們的Smoke Loader樣本通過調用Windows API GetShellWindow來獲取Shell的桌面窗口句柄,然後調用GetWindowThreadProcessId獲取到Explorer.exe的進程ID,從而避免對進程列表進行遍歷。
隨後,Smoke Loader使用了標準的注入API,在Explorer中創建並寫入了兩個內存段,一個用於Shellcode,另一個用於UxSubclassInfo,以便稍後的PROPagate注入。
GetShellWindow -> GetWindowThreadProcessId -> NtOpenProcess -> NtCreateSection -> NtMapViewOfSection x2 -> NtUnmapViewOfSection
之所以要從上一次調用GetShellWindows來檢索窗口句柄,其實是有兩個目的。Smoke Loader使用EnumChildWindows來遍歷每個句柄的子窗口,目的是要找到一個包含UxSubclassInfo屬性的窗口,也就代表著它易受PROPagate注入攻擊。
2017年年底,安全研究人員首次發表了PROPagate注入的方法,但當Smoke Loader開始使用這一技術時,還沒有公開的PoC。此外我們認為,Smoke Loader惡意軟體的開發人員可能會參考PROPagate的公開介紹來重新編寫這一技術的利用方式。
針對每一個子窗口,注入器會調用EnumPropsA來遍歷窗口屬性,直到其找到UxSubclassInfo。該函數還展示了這一樣本加殼器所採用的一些反分析技術。樣本使用了「控制流混淆」,代碼中包含著一些不必要的跳轉,其中也包括能產生花指令(Junk Code)的簡單不透明謂詞(Opaque Predicates)。
「Deobf_next_chunk」會獲取下一個代碼塊的大小和偏移量參數,以進行反混淆並執行下一個代碼塊。根據實際需要,會對大部分惡意代碼進行反混淆處理,並且一旦載入了下一個塊,就可以再次進行混淆處理。具體而言,混淆的方法是使用單位元組進行XOR計算,每個塊都具有相同的硬編碼值。
除了使用反分析技術之外,該樣本還具有反調試、反虛擬機檢查的特性,並且具有專門用於掃描分析工具的進程和窗口是否存在的線程。由於上述特性的存在,對該惡意軟體的反病毒掃描、跟蹤和調試工作都會變得非常困難。
通過WM_NOTIFY和WM_PAINT觸發惡意事件處理程序:
將Shellcode和UxSubclassInfo數據寫入遠程進程侯,注入器會調用SetPropA來更新窗口的屬性,然後將WM_NOTIFY和WM_PAINT消息發送到目標窗口,以強制它觸發執行注入的Shellcode的惡意事件處理程序。
注入的Shellcode:Smoke Loader
Smoke Loader接收了5個插件,而不是額外的Payload。其中,每個插件都有自己的Explorer.exe進程來執行,惡意軟體會使用較舊的技術將每個插件注入到這些進程之中。使用選項CREATE_SUSPENDED來創建每個Explorer.exe進程,注入Shellcode,並使用ResumeThread執行。這一過程非常複雜,並且會在被感染的計算機上運行6個Explorer.exe進程。
插件
如上所述,這些插件的目的都是竊取被感染用戶的敏感信息,會準確定位到被感染計算機上存儲的憑據和通過瀏覽器傳輸的敏感信息。每個插件都會藉助互斥鎖「opera_shared_counter」來確保多個插件不會同時將代碼注入到同一個進程。
插件1
這是最大的一個插件,其中包括約2000個函數。該插件中包含一個靜態鏈接的SQLite庫,用於讀取本地資料庫文件。
該插件用於竊取Firefox、Internet Explorer、Chrome、Opera、QQ瀏覽器、Outlook和Thunderbird中存儲的信息。該插件會遞歸搜索名為logins.json的文件,並解析這些文件的主機名、加密用戶名和密碼。此外,vaultcli.dll文件會讀取Windows憑據管理器。該插件還會對POP3、SMTP和IMAP憑據進行收集。
插件2
該插件以遞歸方式對目錄進行搜索,尋找要解析的文件。
Outlook
*.pst
*.ost
Thunderbird
*.mab
*.msf
inbox
sent
templates
drafts
archives
The Bat!
*.tbb
*.tbn
*.abd
插件3
如果憑證和Cookie通過HTTP或HTTPS傳輸,該插件會注入到瀏覽器中,並攔截相關憑證和Cookie。
如果設置了「fgclearcookies」,將會終止瀏覽器進程,並刪除Cookie。
iexplore.exe和microsoftedgecp.exe:
HttpSendRequestA;
HttpSendRequestW;
InternetWriteFile;
firefox.exe。
nspr4.dll或nss3.dll中的PR_Write。
chrome.exe:
chrome.dll中的未知函數。
opera.exe:
opera_browser.dll或opera.dll中的未知函數。
插件4
該插件使用ws2_32!send和ws2_32!WSASend嘗試竊取ftp、SMTP、POP 3和IMAP的憑據。
插件5
該插件將代碼注入TeamViewer.exe以竊取憑據。
IoC
哈希值:
0be63a01e2510d161ba9d11e327a55e82dcb5ea07ca1488096dac3e9d4733d41(Trickbot)
b65806521aa662bff2c655c8a7a3b6c8e598d709e35f3390df880a70c3fded40(Smoke Loader)
互斥體:
opera_shared_counter
Trickbot相關IP地址:
185[.]174[.]173[.]34
162[.]247[.]155[.]114
185[.]174[.]173[.]116
185[.]174[.]173[.]241
62[.]109[.]26[.]121
185[.]68[.]93[.]27
137[.]74[.]151[.]148
185[.]223[.]95[.]66
85[.]143[.]221[.]60
195[.]123[.]216[.]115
94[.]103[.]82[.]216
185[.]20[.]187[.]13
185[.]242[.]179[.]118
62[.]109[.]26[.]208
213[.]183[.]51[.]54
62[.]109[.]24[.]176
62[.]109[.]27[.]196
185[.]174[.]174[.]156
37[.]230[.]112[.]146
185[.]174[.]174[.]72
Smoke Loader相關域名:
ukcompany[.]me
ukcompany[.]pw
ukcompany[.]top
投放文件:
%appdata%MicrosoftWindows[a-z][a-z].exe
計劃任務:
Opera scheduled Autoupdate [0-9]
結論
我們已經發現,隨著木馬和殭屍網路的整體環境不斷發生變化,攻擊者也在不斷提高惡意軟體的質量和技術含量。攻擊者不斷修改惡意軟體所使用的技術,以此來加強其繞過安全工具的能力。考慮到這一點,我們必須要時刻保持自己的系統和軟體處於最新狀態。針對企業中的安全負責人,可以考慮採用多層防禦的方式來檢測並防範這類威脅。Talos團隊將繼續監控這些惡意活動,以確保我們的產品能夠實現有效防禦。我們強烈建議個人用戶和企業用戶遵循我們提出的安全建議,及時更新安全補丁,慎重打開來自未知發件人的信息,並考慮備份容災的方案。上述方案有助於減少資產的暴露面,並且能夠在遭到攻擊後迅速實現恢復。
※Mcafee區塊鏈威脅報告
※如何利用Pspy監控沒有Root許可權的Linux進程
TAG:嘶吼RoarTalk |