對某單位的 APT 攻擊樣本分析
作者:SungLin@知道創宇404實驗室
時間:2019年7月30日
一.惡意郵件樣本的資訊與背景
在六月份的某單位HW行動中,知道創宇HW安全團隊通過創宇雲圖APT威脅感知系統並結合騰訊御點終端安全管理系統成功處置了一起APT攻擊事件。
7月份對同一樣本的補充截圖如下:
在本次APT攻擊中,攻擊者通過傳送魚叉式釣魚郵件,配合社會工程學手段誘導使用者執行巨集程式碼,進而下載尾部帶有惡意payload壓縮包的可執行檔案。通過層層釋放最終執行可竊取受害人員各類機密資訊、維持許可權、接收遠端控制的木馬。
文件開啟後,會誘導使用者需要開啟巨集才能檢視被模糊的圖片,一旦使用者點選開啟巨集,惡意樣本將會在使用者電腦上執行、潛伏、收集相應的資訊、等待攻擊者的進一步指令。
該APT樣本整體執行流程圖如下:
二.巨集病毒文件的提取與除錯
使用OfficeMalScanner解壓Office文件並提取文件所帶的vba巨集程式碼,開啟Office文件啟用巨集後,採用快捷鍵Alt+F11開啟巨集程式碼的動態除錯。該巨集程式碼作為實施攻擊的入口,實現了惡意樣本的下載和執行。本章也將分析下載和執行的整體流程。
解壓該Office文件後,巨集程式碼被封裝在xl資料夾下的vbaProject.bin檔案中。
使用OfficeMalScanner這個工具的命令info從vbaProject.bin中提取巨集程式碼,提取完後可以知道有6個巨集程式碼,其中fdrhfaz2osd是主要的巨集程式碼:
動態除錯分析巨集程式碼,首先巨集程式碼傳入兩個值u和f,分別是請求的url和寫入的filepath。
通過呼叫WinHttp.WinHttpRequest模組的方法Get請求來獲取Response並寫入到檔案gc43d4unx.exe中。
最後通過呼叫WScript.Shell來啟動程式gc43d4unx.exe。
三.gc43d4unx.exe釋放pkk.exe等檔案並執行
程式gc43d4unx.exe在檔案的末尾存放了一個RAR的壓縮檔案,gc43d4unx.exe程式通過解壓縮後在使用者Temp目錄下的29317159資料夾釋放了49個檔案,並以pkk.exe xfj=eaa命令繼續執行惡意樣本。
壓縮檔案在gc43d4unx.exe中的分佈情況。
gc43d4unx.exe主要邏輯在對話方塊的回撥函式sub_419B4E中,識別Rar!的頭部標識
解壓縮到對映的記憶體檔案中,然後再挨著寫到各個檔案中
在使用者Temp目錄下的29317159資料夾生成隱藏檔案
最後通過SHELL32.ShellExecuteExW執行qwb.vbs程式碼,qwb.vbs則會使用WshShell.Run執行pkk.exe xfj=eaa。
四.PayLoad之pkk.exe執行分析
pkk.exe是個名為AutoIt v3的指令碼軟體,可以載入自定義指令碼。主要是就是通過定義DllStruct,然後再通過DllCall來呼叫函式。qwb.vbs執行程式碼為WshShell.Run”pkk.exe xfj=eaa”,通過pkk.exe載入一個叫xfj=eaa的二進位制檔案。
軟體先判斷載入的是不是DLL,xfj=eaa是個編碼後的指令碼,判斷後程式將會嘗試解碼。
解碼成功後,將解碼資料寫入一個臨時檔案中,軟體將會重新建立一個程序來重新載入指令碼。
解碼後的Autolt指令碼,程式碼被混淆了。
根據混淆的指令碼,只是函式名混淆,而且指令碼只是一個純文字程式碼,通過重寫此指令碼後,可以看到基本還原的Autolt指令碼程式碼了。
Autolt軟體解析完指令碼後根據字串功能通過分發函式來執行相應的函式。
五.PayLoad之Autolt指令碼分析
Autolt指令碼包含的功能有:檢測執行環境、修改登錄檔、解密最終的.net木馬並執行。
通過檢測程序名、裝置是否有D盤等操作實現反虛擬機器檢測
登錄檔禁用UAC策略函式
登錄檔禁用工作管理員函式
登錄檔開啟自啟函式,AuEx和ExE_c的值分別是xfj=eaa、pkk.exe。
解密.net木馬:
讀取K3ys這個鍵值和mmm.ini檔案中[Data]段到[eData],將此資料進行字元替換正則匹配。
載入Advapi32.dll,將K3ys鍵值進行Hash計算獲取到真正的key,後再呼叫CryptDecrypt函式解密,利用ollydbg動態除錯dump出解密資料,解密後的資料就是一個PE結構的程式,用IDA分析程式後,為.NET程式,這個.NET程式就是最後核心木馬了,Autolt指令碼後續將此PE結構載入進去,建立執行緒去單獨執行此程式。
六..NET木馬分析
木馬主要功能進行了敏感資訊收集,敏感資訊收集完後會判斷目標主機是否符合收集目標,以判斷6個人名為主,符合本機收集目標,將會通過smtp或者ftp伺服器上傳檔案,並且也通過web服務和c&c進行資訊交流等。
木馬程式的基本資訊:
用.net反編譯工具dnSpy開啟此程式,程式入口處就是在類afg.agu,此木馬經我判定進行了控制流扁平化和字串加密的混淆方式,採用工具de4dot無法進行反混淆。
字串的解密:
如下圖所示,經過字串加密後靜態分析已經無法分析到字串,而且可以看出控制流進行了扁平化的處理,加密字串的入口函式為<Module>.\u206E()
。
字串的加密方式主要是通過傳入加密的索引,通過固定值的替換與拆分計算後找到對應儲存在uint型陣列物件\u2009的加密Data、key、IV,\u2009陣列物件大概有1047個字串加密陣列,字串加密採用AES,模式為CBC。
編寫python指令碼進行了字串解密,解密後的效果如下所示:
字串解密核心演算法如下:
入口處獲取主機名進行判斷是否包含以下6個主機名,攻擊目標是否符合:
自我複製到C:\Users\l\AppData\Roaming\MyApp\MyApp.exe,設定為系統檔案,並設定為無法刪除的檔案Zone.Identifier,在登錄檔設定為自啟應用並且隱藏。
感謝前輩的指點,此處有錯誤,更正如下:定時請求 http://checkip.amazonaws.com/ 獲取出口的IP。
httpweb伺服器進行互動,進行資訊的交流包括("update"、"info"、"uninstall"、"cookies"、"screenshots"、"keylog")。
DNS查詢等:
進行ftp和smtp服務操作,並且綁定了一個郵箱地址 。
以下可能是此地址的密碼:
收集資訊如下:
系統資訊 | |
---|---|
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_VideoController") | |
managementObjectSearcher2 = new ManagementObjectSearcher("SELECT * FROM Win32_Processor"); |
瀏覽器 | |
---|---|
CatalinaGroup\Citrio\User Data | liebao\User Data |
Fenrir Inc\Sleipnir5\setting\modules\ChromiumViewer | Yandex\YandexBrowser\User Data |
360Chrome\Chrome\User Data | Chedot\User Data |
Elements Browser\User Data | Epic Privacy Browser\User Data |
CocCoc\Browser\User Data | MapleStudio\ChromePlus\User Data |
Chromium\User Data | Torch\User Data |
Iridium\User Data | Comodo\Dragon\User Data |
7Star\7Star\User Data | Amigo\User Data |
BraveSoftware\Brave-Browser\User Data | CentBrowser\User Data |
Vivaldi\User Data | QIP Surf\User Data |
Kometa\User Data | Orbitum\User Data |
Sputnik\Sputnik\User Data | uCozMedia\Uran\User Data |
Coowon\Coowon\User Data |
ftp列表 | |
---|---|
\CoreFTP\sites.idx | \FTP Navigator\Ftplist.txt |
\SmartFTP\Client 2.0\Favorites\Quick Connect\ | |
\SmartFTP\Client 2.0\Favorites\Quick Connect*.xml | \Ipswitch\WS_FTP\Sites\ws_ftp.ini |
\cftp\Ftplist.txt | \FTPGetter\servers.xml |
\FTP Navigator\Ftplist.txt |
Mail列表 | |
---|---|
\VirtualStore\Program Files\Foxmail\mail\ | \Opera Mail\Opera Mail\wand.dat |
Software\IncrediMail\Identities\ |
登錄檔 | |
---|---|
"HKEY_CURRENT_USER\Software\FTPWare\COREFTP\Sites\" + str + "Host" | "HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites" + str + "Port" |
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites" + str + "User" | "HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites" + str + "PW" |
"HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites" + str + "Name" |
http通訊資訊
七.安全建議
強烈推薦採用知道創宇雲圖、騰訊御點等產品,提高企業安全保護,降低外部威脅水平。
知道創宇雲圖威脅監測系統系列產品,實時分析網路全流量,結合威脅情報資料及網路行為分析技術,深度檢測所有可疑活動。檔案檢測採用全面沙箱分析,通過在沙箱(Sandbox)中執行(行為啟用/內容“引爆”)各種檔案,分析檔案行為,識別出未知威脅。網路檢測與檔案檢測同步進行,採用情報共享機制,構築檢測生態圈,準確、快速地掌握攻擊鏈條,以便進一步採取相關措施,將APT(高階持續性威脅)攻擊阻止在萌芽狀態。
騰訊御點是騰訊出品、領先國際的企業級安全服務提供者。依託騰訊19年的安全經驗積累,為企業級使用者提供私有云防病毒和漏洞修復解決方案。御點具備終端防毒統一管控、修復漏洞統一管控,以及策略管控等全方位的安全管理功能,可幫助企業管理者全面瞭解、管理企業內網安全狀況、保護企業安全。
八.IOC資訊
domain & IP:
animalrescueskyward.co.za
mail.privateemail.com
checkip.amazonaws.com
129.232.200.208:443
198.54.122.60
52.206.161.133
34.197.157.64
18.211.215.84
52.202.139.131
34.233.102.38
52.6.79.229
相關 hash:
7b478598b056d1f8e9f52f5ef1d147437b7f0da5
a73816ebcfc07d6da66de7c298a0912a3dd5d41a
b65884f1e833ea3eec8a8be4c7057a560da4511e
8827b2c1520fb41034d5171c5c4afd15158fd4a3
491b221f68013a2f7c354e4bb35c91fe45a1c0c0