1. 程式人生 > >蔓靈花(BITTER)APT組織使用InPage軟體漏洞針對巴基斯坦的攻擊及團伙關聯分析

蔓靈花(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漏洞進行定向攻擊的關鍵事件時間點:

image.png

InPage漏洞分析(CVE-2017-12824)

用於漏洞分析的InPage漏洞利用文件在VirusTotal上的查殺情況如下:

image.png

InPage是一個專門針對烏爾都語使用者設計的文書處理軟體,而與之相關的在野攻擊樣本涉及的漏洞編號為:CVE-2017-12824。

360威脅情報中心對該漏洞分析後發現,漏洞是由於InPage文書處理軟體處理文件流時,未對需要處理的資料型別(Type)進行檢查,導致越界讀,通過精心構造的InPage文件可以觸發執行任意程式碼。

我們使用InPage2015軟體環境對該漏洞進行了詳細分析,過程如下:

image.png

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:

image.png

而InPage處理一個.inp檔案的主要過程如下:

InPage首先會呼叫Ole!StgCreateDocfile函式解析整個.inp檔案,然後呼叫Ole! COleStreamFile::OpenStream開啟InPage文件中的InPage100資料流。

image.png

image.png

而所有InPage100流相關的處理邏輯將在PraseInPage100_432750函式中進行,並利用回撥函式InPage100Read_440ED0讀取流中的資料:

image.png

最終通過函式sub_453590處理觸發漏洞的Type資料,也就是前面提到的0x7E和0×72。下圖中的buf則是通過呼叫InPage100Read_440ED0讀取到的包含Type的資料:

image.png

而漏洞函式sub_453590則會根據Type1和Type2(0x7E和0×72兩個位元組)選擇對應的處理流程,首先根據Type1讀取函式指標陣列,然後根據Type2從函式指標陣列中讀取函式,最後呼叫該函式處理資料:

image.png

我們再來看看上圖中的dword_656A28的賦值及範圍:

image.png

image.png

image.png

可以看到程式在處理漏洞利用文件時的Type1 = ECX(0x1F8)>>2 = 0x7E(126),Type2 =EDI(0×72):

image.png

通過IDA Pro查詢dword_656A28[0x7E]的賦值:

image.png

可以看到dword_656E60陣列實際大小為30(0x1E):

image.png

而由於漏洞文件中的Type2大小設定為0×72,也就是EDI=0×72,但是InPage並未對傳入的Type2大小做判斷,這將導致訪問dword_656E60[0x72],而由於0×72>30(0x1E),則發生了越界讀錯誤。

漏洞利用

由於攻擊者將文件中的Type2設定為了0×72,通過定址計算後,則會越界訪問函式地址0x00455AFA處的程式碼:

image.png

可以看到dword_656E60[0x72](0x455AFA)正好是一段popretn指令:

image.png

這段pop retn指令序列正好起到了“跳板”地址的作用,由於執行Type相關的處理函式時,傳入的引數(指標:0x031E383F)正好指向InPage文件中某個資料流,攻擊者可以將這段可控的資料流填充為ShellCode,那麼pop retn指令執行完後將直接返回到攻擊者設定的ShellCode中執行:

image.png

而InPage程式沒有開啟DEP和ASLR保護,這導致ShellCode將被直接執行:

image.png

利用InPage漏洞的4類攻擊框架分析

360威脅情報中心對近期針對巴基斯坦地區利用InPage漏洞進行定向攻擊的相關樣本進行了詳細分析,發現這一批漏洞樣本的生成時間、InPage100文件流大小、初始ShellCode、相關流的標籤全部一致,幾乎可以確認這一系列的漏洞樣本具有相同的來源。

image.png

通過對這批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執行:

image.png

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)

image.png

再通過將自身新增到登錄檔自啟動項實現持久化:

image.png

並判斷當前程序路徑是否為c:\intel\drvhost.exe,若不是則拷貝自身到該路徑下並執行:

image.png

當程序路徑滿足條件後,則從登錄檔獲取機器GUID、計算機使用者名稱等資訊加密後拼接成一個字串:

image.png

之後傳送構造好的字串與C2:nethosttalk.com進行通訊,並再次獲取命令執行:

image.png

此時C2伺服器返回以”AXE:#”開頭的指令,本地程式通過判斷指令中是否為“#”或者“.”,以此來確定是否有後續的木馬外掛可以下載執行:

image.png

若”AXE:#”後跟了字串內容,則下載執行該外掛:

image.png

image.png

而在360威脅情報中心分析人員除錯分析的過程中,我們成功獲取到一個名為“wscspl”的可以執行的外掛:

image.png

Backdoor – wscspl

MD5 1c2a3aa370660b3ac2bf0f41c342373b
編譯時間 2018.9.13
原始檔名 winsvc.exe

該主功能木馬則與360公司在2016年披露的“蔓靈花”APT組織所使用的木馬功能一致。該木馬共支援包含上傳硬碟列表、查詢、讀取、建立指定檔案、列舉程序列表、結束指定程序在內的17種命令。木馬功能分析如下:

木馬程式執行後設置兩個間隔10秒定時器:

image.png定時器一:主要負責請求C&C:wcnchost.ddns.net的IP,若請求成功,則把IP儲存到全域性變數裡,並把標識變數置1:

image.png定時器二:檢查標識變數的值,若是1就嘗試連線C&C:

image.png

隨後建立兩個執行緒:

image.png執行緒一:檢測與C&C的連線狀態,若與C&C成功連線,則接收C&C命令執行。

image.png執行緒二:檢測全域性變數dword_C9618是否有資料,若有資料則傳送該變數資料到C&C;

image.png

命令執行程式碼片段如下:

image.png

木馬程式所有的命令及對應功能如下表所示:

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:

image.png

定位到主ShellCode後獲取需要使用的API函式,並通過建立互斥量“QPONMLKJIH”保證只有一個例項執行:

image.png

然後提取文件中包含的一個DLL模組,使用記憶體載入的方式執行:

image.png

Dropper

MD5 43920ec371fae4726d570fdef1009163
PDP路徑 c:\users\mz\documents\visualstudio2013\Projects\Shellcode\Release\Shellcode.pdb

記憶體載入的DLL檔案是一個Dropper,包含兩個資原始檔,”Bin”以及”Bin2”:

image.png

其中Bin檔案是VisualBasic編寫的後門程式,而Bin2則是漏洞觸發後釋放開啟的正常的inp誘餌檔案,相關誘餌文件內容如下:

image.png

Backdoor – smtpldr.exe

MD5 694040b229562b8dca9534c5301f8d73
編譯時間 2018.7.4
原始檔名 smtpldr.exe

Bin檔案是Visual Basic編寫的後門程式,主要用於獲取命令執行,木馬執行後首先從”SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”獲取當前系統已安裝的應用名:

image.png

之後判斷安裝應用中是否包含卡巴斯基、諾頓、趨勢科技等相關殺軟應用:

image.png

然後通過WMI執行select *from win32_computersystem命令獲取應用程式資訊,並通過判斷名稱中是否包含”virtual”字樣來檢測虛擬機器環境:

image.png

若檢測處於虛擬機器環境下,則彈窗顯示not a valid file並退出:

image.png

若檢測通過後則在%Start%目錄下建立”SMTPLoader.lnk”實現自啟動:

image.png

最後則會與C&C:referfile.com進行通訊,獲取後續指令執行:

image.png

Delphi後門程式

360威脅情報中心通過大資料還關聯到一批使用Delphi編寫的後門程式,也是通過InPage漏洞利用文件進行傳播,相關樣本資訊如下:

MD5 fec0ca2056d679a63ca18cb132223332
原始檔名 adobsuit.exe

捕獲到的Delphi後門程式與VisualBasic編寫的後門一樣,也是由相似的Dropper從資原始檔釋放並且通過在%Start%目錄下建立Adobe creative suit.lnk檔案,並指向自身實現持久化:

image.png

該後門程式會在%Ducument%資料夾下建立users.txt檔案,並隨機寫入30個位元組的字串:

image.png

木馬程式會獲取計算機使用者名稱,並將計算機使用者名稱經加密處理後儲存到%Ducument%/SyLog.log檔案中:

image.png

之後與C2:errorfeedback.com進行通訊,以POST的方式傳送SyLog.log檔案的內容:

image.png

當C2返回Success時,再次以HTTP GET請求的方式與C2通訊,若返回一段字串,則繼續從”errorfeedback.com/ MarkQuality455 /TTGKWoFdyQHEwpyYKmfVGtzQLfeqpJ /字串”下載後續Payload進行執行:

image.png

使用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後門一樣,也是從資源釋放木馬檔案並執行:

image.png

Downloader – winopen.exe

MD5 09d600e1cc9c6da648d9a367927e6bff
編譯時間 2018.10.12

釋放執行的Downloader名為winopen.exe,其會從jospubs.com/foth1018/simple.jpg獲取具有正常JPEG檔案頭的加密檔案,若成功獲取,則從JPEG 檔案第49位元組開始與0×86異或解密:

image.png

解密後的檔案是一個DLL檔案,然後載入執行該DLL。DLL程式首先會進行執行環境判斷,檢測載入DLL的程序是否為rundll32.exe:

image.png

若載入程序不為rundll32.dll,則在C:\ProgramData\Adobe64下釋放名為aflup64.dll的後門程式:

image.png

之後在啟動目錄下建立start.lnk檔案,LNK檔案目標為 rundll32.exe“C:\\ProgramData\\Adobe64\\aflup64.dll”,IntRun,以此實現自啟動:

image.png

最後啟動rundll32.exe載入aflup64.dll,並呼叫其匯出函式IntRun:

image.png

Backdoor – aflup64.dll

MD5 91e3aa8fa918caa9a8e70466a9515666
編譯時間 2018.10.12

匯出函式IntRun 會再次重複前面的行為,獲取JPEG檔案,異或解密後執行。因為是通過rundll32啟動,所以會進入另一分支,首先建立互斥量“9a5f4cc4b39b13a6aecfe4c37179ea63”:

image.png

然後在%TEMP%目錄下建立“nnp74DE.tmp”檔案,之後通過執行命令tasklist,ipconfig./all,dir來獲取系統程序資訊、網路資訊、檔案列表等,將所獲取到的資訊儲存到“nnp74DE.tmp”中:

image.png

然後獲取機器ID、系統版本、系統當前時間,並以“tag FluffyBunny”開頭連線所有獲取的資訊,並用Base64編碼後連線C&C並上傳:

image.png

資訊傳輸成功後,會返回字串”OK”的Base64編碼:

image.png

如果請求上線不成功,則會迴圈請求上線。上線成功後會進入第二階段,傳送計算名-使用者名稱的Base64編碼資料到jospubs/foth1018/go.php,並獲取命令執行:

image.png

可以獲取的相關命令格式為“數字:引數”形式,共支援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繼續獲取加密後的檔案

image.png

成功獲取後,經異或解密後執行,解密後的檔案是由Cobalt Strike生成的遠控後門:

image.png

利用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物件資訊如下:

image.png

漏洞成功觸發執行後會通過與SOPfor Retrieval of Mobile Data Records.inp(InPage)漏洞利用檔案相同的下載地址獲取後續Payload執行:

image.png

溯源與關聯

360威脅情報中心通過對這批InPage漏洞利用文件及相關攻擊活動的分析,關聯到使用wscspl後門程式進行定向攻擊的幕後團伙正是360公司在2016年披露的“蔓靈花”(BITTER)APT組織,並且經過進一步分析,該系列攻擊活動中的多個樣本還與“摩訶草”、Bahamut和 Confucius等APT組織有很強的關聯性。

“蔓靈花”(BITTER)APT組織

360威脅情報中心針對攻擊時間較近的幾個InPage漏洞文件深入分析後發現,漏洞文件最終釋放的木馬程式正是360公司在2016年曝光的“蔓靈花” APT組織所使用的後門程式,也就是上述分析的wscspl全功能後門程式。

image.png

並且其中的多個C&C地址在360威脅情報中心的內部分析平臺中也和“蔓靈花”APT組織強相關,這批C&C地址被多次使用在針對中國發起的攻擊活動中。故相關的攻擊活動可以確認為“蔓靈花”所為。

與”Confucius”的關聯

Delphi後門攻擊框架中使用的C&C地址errorfeedback.com在趨勢科技探究Confucius和摩訶草的相似度中出現,該域名曾被趨勢披露為Confucius使用。

與”摩訶草”的關聯

通過上述對Delphi後門攻擊框架的深入分析和關聯,我們還發現該攻擊框架和樣本同樣出現在了Palo Alto在2017年分析的InPage攻擊樣本中,Palo Alto認為該攻擊框架和後門程式可能和“摩訶草”相關。

image.png

與”Bahamut”的關聯

360威脅情報中心分析到攻擊活動中的一個漏洞文件“AAT national assembly final.inp”最終執行的木馬程式(Visual Basic後門程式)使用了域名referfile.com作為C2,該C2為Cisco Talos安全研究團隊在2018年7月公開的《一例針對印度iOS使用者的定向攻擊活動》中被披露,而Talos安全研究團隊關聯到該域名正好也是被一個 Visual Basic後門程式所使用,且相關的網路資產疑似為APT組織”Bahamut”所有。

image.png

總結及猜想

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