蔓靈花(BITTER)APT組織使用InPage軟體漏洞針對巴基斯坦的攻擊及團伙關聯分析
概述
近期,360威脅情報中心監控到一系列針對巴基斯坦地區的定向攻擊活動,而相關的惡意程式主要利用包含了InPage文書處理軟體漏洞CVE-2017-12824的誘餌文件(.inp)進行投遞,除此之外,攻擊活動中還使用了Office CVE-2017-11882漏洞利用文件。InPage是一個專門針對烏爾都語使用者(巴基斯坦國語)設計的文書處理軟體,卡巴斯基曾在2016年11月首次曝光了利用該軟體漏洞進行定向攻擊的案例,而利用該文書處理軟體漏洞的野外攻擊最早可以追溯到2016年6月。手機捕魚輔助 手機牛牛外掛
通過對這批InPage漏洞利用文件及相關攻擊活動的分析,我們關聯到幕後的團伙正是360公司在2016年披露的“蔓靈花”APT組織,並且經過進一步分析,攻擊活動中的多個樣本還與“摩訶草”、Bahamut和Confucius<等APT組織有很強的關聯性,這不禁讓人對這些南亞來源的APT組織的同源性產生更多的聯想。
相關時間線
360威脅情報中心梳理了近兩年來利用InPage漏洞進行定向攻擊的關鍵事件時間點:
InPage漏洞分析(CVE-2017-12824)
用於漏洞分析的InPage漏洞利用文件在VirusTotal上的查殺情況如下:
InPage是一個專門針對烏爾都語使用者設計的文書處理軟體,而與之相關的在野攻擊樣本涉及的漏洞編號為:CVE-2017-12824。
360威脅情報中心對該漏洞分析後發現,漏洞是由於InPage文書處理軟體處理文件流時,未對需要處理的資料型別(Type)進行檢查,導致越界讀,通過精心構造的InPage文件可以觸發執行任意程式碼。
我們使用InPage2015軟體環境對該漏洞進行了詳細分析,過程如下:
InPage2015
漏洞成因:越界讀(Out-Of-Bound Read)
CVE-2017-12824漏洞的本質是Out-Of-Bound Read,InPage文書處理程式在處理文件中的InPage100流時未對需要處理的資料型別(Type)進行檢查,而需要處理的資料型別(Type)是通過InPage文件中的某個欄位指定的。這樣攻擊者可以通過設定一個超出Type範圍的值來使得InPage程式發生越界讀錯誤。
漏洞文件(.inp)中觸發漏洞的關鍵資料結構如下,0x7E和0×72代表了需要處理的文件流中的某一類Type,我們將0x7E標記為Type1,0×72標記為Type2:
而InPage處理一個.inp檔案的主要過程如下:
InPage首先會呼叫Ole!StgCreateDocfile函式解析整個.inp檔案,然後呼叫Ole! COleStreamFile::OpenStream開啟InPage文件中的InPage100資料流。
而所有InPage100流相關的處理邏輯將在PraseInPage100_432750函式中進行,並利用回撥函式InPage100Read_440ED0讀取流中的資料:
最終通過函式sub_453590處理觸發漏洞的Type資料,也就是前面提到的0x7E和0×72。下圖中的buf則是通過呼叫InPage100Read_440ED0讀取到的包含Type的資料:
而漏洞函式sub_453590則會根據Type1和Type2(0x7E和0×72兩個位元組)選擇對應的處理流程,首先根據Type1讀取函式指標陣列,然後根據Type2從函式指標陣列中讀取函式,最後呼叫該函式處理資料:
我們再來看看上圖中的dword_656A28的賦值及範圍:
可以看到程式在處理漏洞利用文件時的Type1 = ECX(0x1F8)>>2 = 0x7E(126),Type2 =EDI(0×72):
通過IDA Pro查詢dword_656A28[0x7E]的賦值:
可以看到dword_656E60陣列實際大小為30(0x1E):
而由於漏洞文件中的Type2大小設定為0×72,也就是EDI=0×72,但是InPage並未對傳入的Type2大小做判斷,這將導致訪問dword_656E60[0x72],而由於0×72>30(0x1E),則發生了越界讀錯誤。
漏洞利用
由於攻擊者將文件中的Type2設定為了0×72,通過定址計算後,則會越界訪問函式地址0x00455AFA處的程式碼:
可以看到dword_656E60[0x72](0x455AFA)正好是一段popretn指令:
這段pop retn指令序列正好起到了“跳板”地址的作用,由於執行Type相關的處理函式時,傳入的引數(指標:0x031E383F)正好指向InPage文件中某個資料流,攻擊者可以將這段可控的資料流填充為ShellCode,那麼pop retn指令執行完後將直接返回到攻擊者設定的ShellCode中執行:
而InPage程式沒有開啟DEP和ASLR保護,這導致ShellCode將被直接執行:
利用InPage漏洞的4類攻擊框架分析
360威脅情報中心對近期針對巴基斯坦地區利用InPage漏洞進行定向攻擊的相關樣本進行了詳細分析,發現這一批漏洞樣本的生成時間、InPage100文件流大小、初始ShellCode、相關流的標籤全部一致,幾乎可以確認這一系列的漏洞樣本具有相同的來源。
通過對這批InPage漏洞利用文件及相關惡意程式碼的分析,我們發現漏洞文件攜帶的惡意程式碼分別使用了4類不同的攻擊框架:4類完全不同的後門程式。相關的分析如下。
wscspl全功能後門程式
360威脅情報中心捕獲的一個誘餌文件名為“SOP for Retrieval of Mobile Data Records.inp”(用於移動資料記錄檢索的SOP)的CVE-2017-12824漏洞利用文件,最終會下載執行一個名為wscspl的全功能後門程式。
相關漏洞利用文件資訊如下:
MD5 | 863f2bfed6e8e1b8b4516e328c8ba41b |
---|---|
檔名 | SOP for Retrieval of Mobile Data Records.inp |
ShellCode
漏洞觸發成功後,ShellCode會通過搜素特殊標識“27862786”來定位主功能ShellCode,之後會從khurram.com.pk/js/drv下載Payload並儲存到c:\conf\Smss.exe執行:
Downloader
MD5 | c3f5add704f2c540f3dd345f853e2d84 |
---|---|
編譯時間 | 2018.9.24 |
PDB路徑 | C:\Users\Asterix\Documents\VisualStudio2008\Projects\28NovDwn\Release\28NovDwn.pdb |
下載回來的EXE檔案主要用於與C2通訊並獲取其他模組執行,執行後首先會設定登錄檔鍵值(鍵: HKCU\Environment,鍵值: AppId,資料:c:\intel\drvhost.exe)
再通過將自身新增到登錄檔自啟動項實現持久化:
並判斷當前程序路徑是否為c:\intel\drvhost.exe,若不是則拷貝自身到該路徑下並執行:
當程序路徑滿足條件後,則從登錄檔獲取機器GUID、計算機使用者名稱等資訊加密後拼接成一個字串:
之後傳送構造好的字串與C2:nethosttalk.com進行通訊,並再次獲取命令執行:
此時C2伺服器返回以”AXE:#”開頭的指令,本地程式通過判斷指令中是否為“#”或者“.”,以此來確定是否有後續的木馬外掛可以下載執行:
若”AXE:#”後跟了字串內容,則下載執行該外掛:
而在360威脅情報中心分析人員除錯分析的過程中,我們成功獲取到一個名為“wscspl”的可以執行的外掛:
Backdoor – wscspl
MD5 | 1c2a3aa370660b3ac2bf0f41c342373b |
---|---|
編譯時間 | 2018.9.13 |
原始檔名 | winsvc.exe |
該主功能木馬則與360公司在2016年披露的“蔓靈花”APT組織所使用的木馬功能一致。該木馬共支援包含上傳硬碟列表、查詢、讀取、建立指定檔案、列舉程序列表、結束指定程序在內的17種命令。木馬功能分析如下:
木馬程式執行後設置兩個間隔10秒定時器:
定時器一:主要負責請求C&C:wcnchost.ddns.net的IP,若請求成功,則把IP儲存到全域性變數裡,並把標識變數置1:
隨後建立兩個執行緒:
執行緒一:檢測與C&C的連線狀態,若與C&C成功連線,則接收C&C命令執行。
執行緒二:檢測全域性變數dword_C9618是否有資料,若有資料則傳送該變數資料到C&C;
命令執行程式碼片段如下:
木馬程式所有的命令及對應功能如下表所示:
3000 | 獲取RAT狀態資訊 |
---|---|
3001 | 獲取計算機硬碟資訊 |
3002 | 獲取指定目錄下的檔案列表資訊 |
3004 | 獲取RAT日誌1 |
3005 | 建立指定檔案 |
3006 | 向建立檔案寫入資料 |
3007 | 開啟指定檔案 |
3009 | 讀取指定檔案內容 |
3012 | 建立遠端控制檯 |
3013 | 執行遠端命令 |
3015 | 獲取RAT日誌2 |
3016 | 結束遠端控制檯 |
3017 | 關閉指定控制代碼 |
3019 | 獲取存在UPD活動連結的程序 |
3021 | 獲取RAT日誌3 |
3032 | 結束指定程序 |
3023 | 獲取系統中程序資訊 |
3025 | 獲取RAT日誌4 |
Visual Basic後門程式
另外一個捕獲到的名為AATnational assembly final.inp 的CVE-2017-12824漏洞利用文件則會釋放執行Visual Basic編寫的後門程式。
相關漏洞利用文件資訊如下:
MD5 | ce2a6437a308dfe777dec42eec39d9ea |
---|---|
檔名 | AAT national assembly final.inp |
ShellCode
漏洞觸發後的ShellCode首先通過記憶體全域性搜素字串“LuNdLuNd”定位主ShellCode:
定位到主ShellCode後獲取需要使用的API函式,並通過建立互斥量“QPONMLKJIH”保證只有一個例項執行:
然後提取文件中包含的一個DLL模組,使用記憶體載入的方式執行:
Dropper
MD5 | 43920ec371fae4726d570fdef1009163 |
---|---|
PDP路徑 | c:\users\mz\documents\visualstudio2013\Projects\Shellcode\Release\Shellcode.pdb |
記憶體載入的DLL檔案是一個Dropper,包含兩個資原始檔,”Bin”以及”Bin2”:
其中Bin檔案是VisualBasic編寫的後門程式,而Bin2則是漏洞觸發後釋放開啟的正常的inp誘餌檔案,相關誘餌文件內容如下:
Backdoor – smtpldr.exe
MD5 | 694040b229562b8dca9534c5301f8d73 |
---|---|
編譯時間 | 2018.7.4 |
原始檔名 | smtpldr.exe |
Bin檔案是Visual Basic編寫的後門程式,主要用於獲取命令執行,木馬執行後首先從”SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”獲取當前系統已安裝的應用名:
之後判斷安裝應用中是否包含卡巴斯基、諾頓、趨勢科技等相關殺軟應用:
然後通過WMI執行select *from win32_computersystem命令獲取應用程式資訊,並通過判斷名稱中是否包含”virtual”字樣來檢測虛擬機器環境:
若檢測處於虛擬機器環境下,則彈窗顯示not a valid file並退出:
若檢測通過後則在%Start%目錄下建立”SMTPLoader.lnk”實現自啟動:
最後則會與C&C:referfile.com進行通訊,獲取後續指令執行:
Delphi後門程式
360威脅情報中心通過大資料還關聯到一批使用Delphi編寫的後門程式,也是通過InPage漏洞利用文件進行傳播,相關樣本資訊如下:
MD5 | fec0ca2056d679a63ca18cb132223332 |
---|---|
原始檔名 | adobsuit.exe |
捕獲到的Delphi後門程式與VisualBasic編寫的後門一樣,也是由相似的Dropper從資原始檔釋放並且通過在%Start%目錄下建立Adobe creative suit.lnk檔案,並指向自身實現持久化:
該後門程式會在%Ducument%資料夾下建立users.txt檔案,並隨機寫入30個位元組的字串:
木馬程式會獲取計算機使用者名稱,並將計算機使用者名稱經加密處理後儲存到%Ducument%/SyLog.log檔案中:
之後與C2:errorfeedback.com進行通訊,以POST的方式傳送SyLog.log檔案的內容:
當C2返回Success時,再次以HTTP GET請求的方式與C2通訊,若返回一段字串,則繼續從”errorfeedback.com/ MarkQuality455 /TTGKWoFdyQHEwpyYKmfVGtzQLfeqpJ /字串”下載後續Payload進行執行:
使用Cobalt Strike的後門程式
另外一個捕獲到的InPage漏洞利用文件最終則會執行CobaltStrike生成的後門程式,相關文件資訊如下:
MD5 | 74aeaeaca968ff69139b2e2c84dc6fa6 |
---|---|
檔案型別 | InPage漏洞利用文件 |
發現時間 | 2018.11.02 |
ShellCode
漏洞觸發成功後,ShellCode首先通過特殊標識“LuNdLuNd”定位到主ShellCode,隨後記憶體載入附帶的DLL並執行。
Dropper
MD5 | ec834fa821b2ddbe8b564b3870f13b1b |
---|---|
PDB路徑 | c:\users\mz\documents\visualstudio2013\Projects\Shellcode\Release\Shellcode.pdb |
記憶體載入的DLL檔案與上述的VisualBasic/Delphi後門一樣,也是從資源釋放木馬檔案並執行:
Downloader – winopen.exe
MD5 | 09d600e1cc9c6da648d9a367927e6bff |
---|---|
編譯時間 | 2018.10.12 |
釋放執行的Downloader名為winopen.exe,其會從jospubs.com/foth1018/simple.jpg獲取具有正常JPEG檔案頭的加密檔案,若成功獲取,則從JPEG 檔案第49位元組開始與0×86異或解密:
解密後的檔案是一個DLL檔案,然後載入執行該DLL。DLL程式首先會進行執行環境判斷,檢測載入DLL的程序是否為rundll32.exe:
若載入程序不為rundll32.dll,則在C:\ProgramData\Adobe64下釋放名為aflup64.dll的後門程式:
之後在啟動目錄下建立start.lnk檔案,LNK檔案目標為 rundll32.exe“C:\\ProgramData\\Adobe64\\aflup64.dll”,IntRun,以此實現自啟動:
最後啟動rundll32.exe載入aflup64.dll,並呼叫其匯出函式IntRun:
Backdoor – aflup64.dll
MD5 | 91e3aa8fa918caa9a8e70466a9515666 |
---|---|
編譯時間 | 2018.10.12 |
匯出函式IntRun 會再次重複前面的行為,獲取JPEG檔案,異或解密後執行。因為是通過rundll32啟動,所以會進入另一分支,首先建立互斥量“9a5f4cc4b39b13a6aecfe4c37179ea63”:
然後在%TEMP%目錄下建立“nnp74DE.tmp”檔案,之後通過執行命令tasklist,ipconfig./all,dir來獲取系統程序資訊、網路資訊、檔案列表等,將所獲取到的資訊儲存到“nnp74DE.tmp”中:
然後獲取機器ID、系統版本、系統當前時間,並以“tag FluffyBunny”開頭連線所有獲取的資訊,並用Base64編碼後連線C&C並上傳:
資訊傳輸成功後,會返回字串”OK”的Base64編碼:
如果請求上線不成功,則會迴圈請求上線。上線成功後會進入第二階段,傳送計算名-使用者名稱的Base64編碼資料到jospubs/foth1018/go.php,並獲取命令執行:
可以獲取的相關命令格式為“數字:引數”形式,共支援5個命令,相關命令列表如下:
命令ID | 功能 |
---|---|
103 | 下載Plugin外掛落地到%TEMP%目錄下執行 |
105 | 獲取檔案記憶體載入 |
115 | 獲取引數檔案內容 |
117 | 刪除Start.lnk檔案 |
120 | 下載檔案落地到%temp%目錄下,並刪除Start.lnk |
Plugins – jv77CF.tmp
MD5 | c9c1ec9ae1f142a8751ef470afa20f15 |
---|---|
編譯時間 | 2018.4.3 |
在360威脅情報中心分析人員的除錯過程中,成功獲取到一個落地執行的木馬外掛。木馬外掛會從pp5.zapto.org繼續獲取加密後的檔案
成功獲取後,經異或解密後執行,解密後的檔案是由Cobalt Strike生成的遠控後門:
利用CVE-2017-11882漏洞的攻擊樣本分析
通過360威脅情報中心大資料平臺進行拓展,我們發現了一個屬於同一系列攻擊活動的Office CVE-2017-11882的漏洞利用文件。該文件名為“SOP for Retrieval of Mobile Data Records.doc”,這與釋放wscspl木馬程式(與蔓靈花同源)的InPage漏洞利用文件同名,只不過該漏洞文件針對微軟Office進行攻擊。
MD5 | 61a107fee55e13e67a1f6cbc9183d0a4 |
---|---|
檔名 | SOP for Retrieval of Mobile Data Records.doc |
包含漏洞的Objdata物件資訊如下:
漏洞成功觸發執行後會通過與SOPfor Retrieval of Mobile Data Records.inp(InPage)漏洞利用檔案相同的下載地址獲取後續Payload執行:
溯源與關聯
360威脅情報中心通過對這批InPage漏洞利用文件及相關攻擊活動的分析,關聯到使用wscspl後門程式進行定向攻擊的幕後團伙正是360公司在2016年披露的“蔓靈花”(BITTER)APT組織,並且經過進一步分析,該系列攻擊活動中的多個樣本還與“摩訶草”、Bahamut和 Confucius等APT組織有很強的關聯性。
“蔓靈花”(BITTER)APT組織
360威脅情報中心針對攻擊時間較近的幾個InPage漏洞文件深入分析後發現,漏洞文件最終釋放的木馬程式正是360公司在2016年曝光的“蔓靈花” APT組織所使用的後門程式,也就是上述分析的wscspl全功能後門程式。
並且其中的多個C&C地址在360威脅情報中心的內部分析平臺中也和“蔓靈花”APT組織強相關,這批C&C地址被多次使用在針對中國發起的攻擊活動中。故相關的攻擊活動可以確認為“蔓靈花”所為。
與”Confucius”的關聯
Delphi後門攻擊框架中使用的C&C地址errorfeedback.com在趨勢科技探究Confucius和摩訶草的相似度中出現,該域名曾被趨勢披露為Confucius使用。
與”摩訶草”的關聯
通過上述對Delphi後門攻擊框架的深入分析和關聯,我們還發現該攻擊框架和樣本同樣出現在了Palo Alto在2017年分析的InPage攻擊樣本中,Palo Alto認為該攻擊框架和後門程式可能和“摩訶草”相關。
與”Bahamut”的關聯
360威脅情報中心分析到攻擊活動中的一個漏洞文件“AAT national assembly final.inp”最終執行的木馬程式(Visual Basic後門程式)使用了域名referfile.com作為C2,該C2為Cisco Talos安全研究團隊在2018年7月公開的《一例針對印度iOS使用者的定向攻擊活動》中被披露,而Talos安全研究團隊關聯到該域名正好也是被一個 Visual Basic後門程式所使用,且相關的網路資產疑似為APT組織”Bahamut”所有。
總結及猜想
360威脅情報中心通過對相同來源(漏洞利用文件在生成時間、ShellCode、InPage100流大小、流的固定特徵)的一系列針對巴基斯坦的攻擊樣本分析後發現,同一來源的攻擊樣本分別使用了至少4套不同的惡意程式碼框架,並分別與“蔓靈花”(BITTER)、“摩訶草”、“Confucius”、“Bahamut”APT組織產生了或多或少的關聯。 或許這些APT組織應該歸屬於同一組織?亦或者這些APT組織擁有相同的數字武器來源( APT組織幕後的支持者向這些APT團伙派發了相同的漏洞利用生成工具)?
以下是360威脅情報中心針對本文中相關的APT組織的TTP進行的簡單對比,以供參考:手機麻將外掛 麻將作弊外掛軟體 麻將外掛軟體 手機捕魚外掛作弊軟體 星力捕魚程式刷分軟體 手機捕魚遊戲外掛 手機麻將外掛 手機麻將作弊軟體 手機捕魚外掛 手機捕魚輔助 手機捕魚輔助外掛 手機棋牌輔助外掛 手機捕魚外掛
蔓靈花(BITTER) | 摩訶草(PatchWork) | Confucius | Bahamut | |
---|---|---|---|---|
攻擊目標 | 中國,巴基斯坦 | 中國,巴基斯坦為主 | 南亞 | 南亞(主要巴基斯坦),中東 |
攻擊平臺 | PC/Android | PC/Android | PC/Android | PC/Android/iOS |
惡意程式碼實現 | C | Delphi/C# | Delphi | Delphi/VB |
攻擊入口 | 魚叉攻擊 | 社交網路,魚叉攻擊 | 社交網路 | 社交網路,魚叉攻擊 |
IOC
InPage漏洞利用文件 |
---|
863f2bfed6e8e1b8b4516e328c8ba41b |
ce2a6437a308dfe777dec42eec39d9ea |
74aeaeaca968ff69139b2e2c84dc6fa6 |
Office漏洞利用文件 |
61a107fee55e13e67a1f6cbc9183d0a4 |
木馬程式 |
c3f5add704f2c540f3dd345f853e2d84 |
f9aeac76f92f8b2ddc253b3f53248c1d |
8dda6f85f06b5952beaabbfea9e28cdd |
25689fc7581840e851c3140aa8c3ac8b |
1c2a3aa370660b3ac2bf0f41c342373b |
43920ec371fae4726d570fdef1009163 |
694040b229562b8dca9534c5301f8d73 |
fec0ca2056d679a63ca18cb132223332 |
ec834fa821b2ddbe8b564b3870f13b1b |
09d600e1cc9c6da648d9a367927e6bff |
91e3aa8fa918caa9a8e70466a9515666 |
4f9ef6f18e4c641621f4581a5989284c |
afed882f6af66810d7637ebcd8287ddc |
C&C |
khurram.com.pk |
nethosttalk.com |
xiovo416.net |
nethosttalk.com |
newmysticvision.com |
wcnchost.ddns.net |
referfile.com |
errorfeedback.com |
Jospubs.com |
traxbin.com |
referfile.com |