疑似DarkHydrus APT組織針對中東地區的定向攻擊活動分析
背景
2019年1月9日,360威脅情報中心捕獲到多個專門為阿拉伯語使用者設計的誘餌文件。釣魚文件為攜帶惡意巨集的OfficeExcel文件,惡意巨集程式碼最終會釋放執行一個C#編寫的後門程式,該後門程式利用了複雜的DNS隧道技術與C2進行通訊並執行指令,且通過GoogleDrive API實現檔案的上傳下載。
360威脅情報中心經過溯源和關聯後確認,這是DarkHydrus APT組織針對中東地區的又一次定向攻擊行動。DarkHydrus APT組織是Palo Alto在2018年7月首次公開披露的針對中東地區政府機構進行定向攻擊的APT團伙[1]。而在此之前,360威脅情報中心曾發現並公開過該組織使用SettingContent-ms檔案任意程式碼執行漏洞(CVE-2018-8414)進行在野攻擊的樣本,並進行了詳細分析[2]。
時間線
與DarkHydrusAPT組織相關的時間線如下:
根據社交網路的反饋,對此團伙卡巴斯基內部的跟蹤代號為:LazyMeerka。[4]
樣本分析
Dropper(Macros)
MD5 | 5c3f96ade0ea67eef9d25161c64e6f3e |
---|---|
檔名 | الفهارس.xlsm(indexes. xlsm) |
MD5 | 8dc9f5450402ae799f5f8afd5c0a8352 |
---|---|
檔名 | الاطلاع.xlsm(viewing. xlsm) |
以下分析均以MD5:5c3f96ade0ea67eef9d25161c64e6f3e的樣本為例,誘餌文件是一個OfficeExcel文件,名為الفهارس.xlsm(指標.xlsm)。其內嵌VBA巨集,當受害者開啟文件並啟用巨集後,將自動執行惡意巨集程式碼。
該惡意巨集程式碼的功能為釋放WINDOWSTEMP.ps1和12-B-366.txt檔案到%TEMP%目錄,最後使用regsvr32.exe啟動12-B-366.txt檔案:
實際上12-B-366.txt是一個HTA(HTML應用程式)檔案,該檔案用於啟動釋放出來的PowerShell指令碼:%TEMP%\\ WINDOWSTEMP.ps1
WINDOWSTEMP.ps1指令碼內容如下,該PowerShell指令碼使用Base64和gzip解碼和解壓縮腳本里的content,然後寫入到檔案:%TEMP%\\OfficeUpdateService.exe,最後執行%TEMP%\\OfficeUpdateService.exe:
Backdoor(OfficeUpdateService.exe)
MD5 | b108412f1cdc0602d82d3e6b318dc634 |
---|---|
檔名 | OfficeUpdateService.exe |
PDB路徑 | C:\Users\william\Documents\Visual Studio 2015\Projects\DNSProject\DNSProject\obj\Release\DNSProject.pdb |
編譯資訊 | Jan 08 14:26:53 2019 Microsoft Visual C# v7.0 / Basic .NET (managed) |
釋放執行的後門程式使用C#編寫:
樣本PDB路徑資訊和其使用的通訊技術有很強的關聯性,指示其使用了DNS相關的技術:
後門程式執行後會先檢查引數是否包含“st:off”和“pd:off”,如果包含“st:off”則不會寫啟動項,如果包含“pd:off”則不會釋放PDF檔案。隨後檢測是否執行在虛擬機器、沙箱中,或者是否被除錯等,通過這些檢查後最終執行惡意程式碼:
寫入啟動項的持久化操作:
釋放誘餌PDF檔案:
執行虛擬機器、沙箱檢測以及反除錯等操作:
緊接著獲取主機資訊:
然後通過DNS隧道傳送蒐集到的主機資訊,其中DNS隧道通訊部分封裝到queryTypesTest函式中:
最後進入命令分發迴圈, 該命令分發流程首先判斷是否是x_mode模式,如果不是,則通過DNS隧道技術與C2通訊獲取需要執行的指令,否則通過HTTP傳輸資料:
與C2通過DNS隧道建立通訊,並解析返回的資料,然後提取指令,最後通過taskHandler函式分發指令:
以下是部分指令截圖:
值得注意的是,^\\$x_mode指令將設定檔案上傳下載的伺服器,伺服器地址通過DNS隧道獲取:
其中一個樣本指定了伺服器為GoogleDrive伺服器:
所有命令列表如下:
命令 | 功能 |
---|---|
^kill | 結束執行緒?程序 |
^\\$fileDownload | 檔案下載 |
^\\$importModule | 獲取程序模組 |
^\\$x_mode | 採用x_mode模式,此模式設定RAT伺服器,然後採用HTTP傳送RAT資料 |
^\\$ClearModules | 解除安裝模組 |
^\\$fileUpload | 檔案上載 |
^testmode | 測試某個模組 |
^showconfig | 獲取配置資訊 |
^changeConfig | 更改配置 |
^slp | 睡眠一段時間 |
^exit | 退出程序 |
DNS隧道通訊分析
DNS隧道通訊技術是指通過DNS查詢過程來建立通訊隧道。該通訊方式有極強的隱蔽性,容易穿透各種流量閘道器的檢測。
實現DNS隧道通訊技術主要有兩種方法:
1.指定DNS伺服器實現DNS隧道通訊; 2.通過域名提供商提供的介面修改NS記錄,將解析域名的DNS伺服器指定為攻擊者的DNS伺服器,接管域名的DNS解析請求。
本文所描述的後門程式OfficeUpdateService.exe使用的則是第二種方式實現DNS隧道通訊,其主要原理為修改木馬程式需要解析的域名的NS記錄,由於DNS解析過程會首先嚐試向NS記錄指定的DNS伺服器請求解析域名,所以NS記錄指定的DNS伺服器能收到DNS查詢請求以及附帶的資料。如果域名對應的NS記錄中的DNS伺服器是由攻擊者控制的,那麼攻擊者就可以通過該DNS伺服器與木馬程式通過DNS查詢建立起特殊的通訊渠道。
木馬程式請求的域名列表如下:
設定NS記錄
NS(Name Server)記錄是域名伺服器記錄,用來指定該域名由哪個DNS伺服器來進行解析。
攻擊者首先將相關域名的NS記錄修改為了攻擊者控制的DNS伺服器,攻擊者指定用於解析相關域名的NS伺服器為:tvs1.trafficmanager.live,tvs2.trafficmanager.live,我們通過nslookup可以查詢得到:
樣本再通過本機的nslookup程式向相關域名提交請求,而由於這些域名的NS記錄被指定為了攻擊者的DNS伺服器(tvs1.trafficmanager.live),故nslookup提交的查詢資訊會被髮送給攻擊者的DNS伺服器,然後讀取DNS伺服器返回的資訊進行資料互動。所以樣本其實是在和攻擊者控制的DNS伺服器進行最終的通訊。
樣本使用nslookup解析域名並附帶以下引數:timeout(請求超時時間)、q(DNS請求型別):
傳送上線請求並獲取執行指令
木馬會根據不同的查詢型別,使用不同的正則表示式去匹配DNS伺服器返回的結果資料。
比如執行nslookup並使用查詢型別為A進行查詢,最終使用以下正則表示式匹配返回的資料結果:
而樣本首先會通過向攻擊者控制的DNS伺服器傳送DNS查詢請求來發送當前木馬的上線ID給攻擊者。首先獲取當前的程序ID,並與請求查詢的域名組成一個二級域名,依次使用nslookup指定DNS的查詢型別傳送DNS查詢資訊:
接著根據當前DNS請求的型別分別用不同的正則表示式規則匹配其返回的資料結果,並取取其中的資料:
我們手動模擬使用TXT 查詢請求並上傳木馬ID 的過程如下:
首先我們構造一個二級域名:ajpinc.akamaiedge.live,二級域名ajpinc中的a代表第一次請求,末尾的c代表結尾,a和c之間是編碼過後的當前程序ID。然後我們使用nslookup傳送該請求,執行的效果如下:
而木馬程式會使用以下正則表示式來匹配返回的資料結果:
(\\w+).(akdns.live|akamaiedge.live|edgekey.live|akamaized.live)
該正則表示式會匹配上述結果中的ajpinc和ihn字串,然後將ihn通過指定的解碼函式解碼得到“107”,解碼函式如下:
最後獲取當前的配置資訊,再通過DNS協議傳輸給攻擊者控制的DNS伺服器,並持續傳送DNS請求,最終分別使用不同的正則表示式來匹配返回的結果,獲取下一步需要執行的指令。
資料匹配規則
樣本主要使用的DNS查詢型別如下:
A |
---|
AAAA |
AC |
CNAME |
TXT |
SRV |
SOA |
MX |
木馬會根據不同的查詢型別,使用不同的正則表示式去匹配攻擊者的DNS伺服器返回的結果資料。
比如執行nslookup並使用查詢型別AC得到返回的資料,並使用以下正則表示式匹配返回的資料結果:
使用查詢型別為AAAA得到的資料使用以下正則表示式匹配返回的資料結果:
使用其他DNS查詢型別得到的資料使用以下正則表示式匹配返回的資料結果:
樣本所使用的DNS查詢型別及返回資料對應匹配的正則表示式如下:
DNS 查詢型別 | 匹配結果的正則表示式 |
---|---|
A | Address:\\s+(\\d+.\\d+.\\d+.\\d+) |
AC | ([^r-v\\s]+)[r-v]([\\w\\d+\\/=]+)-\\w+.(<C2DOMIAN>) |
AAAA | Address:\\s+(([a-fA-F0-9]{0,4}:{1,4}[\\w|:]+){1,8}) |
CNAME、TXT、SRV、SOA、MX | ([^r-v\\s]+)[r-v]([\\w\\d+\\/=]+)-\\w+.(<C2DOMIAN>)和(\\w+).(<C2DOMIAN>) |
如果當返回的DNS請求結果中被:
"216.58.192.174|2a00:1450:4001:81a::200e|2200::|download.microsoft.com|ntservicepack.microsoft.com|windowsupdate.microsoft.com|update.microsoft.com"
正則表示式命中,則代表請求被取消,則不會執行後續的操作:
溯源與關聯
360威脅情報中心通過對樣本詳細分析後發現,此次攻擊的幕後團伙疑似為DarkHydrus APT組織,部分關聯依據如下。
樣本使用DNS隧道進行通訊
與之前Palo Alto披露[2]的木馬類似的,都使用了相同的DNS隧道通訊技術:
高度一致的沙箱檢測程式碼和後門功能程式碼
幾乎完全一致的虛擬機器、沙箱檢測程式碼:
惡意程式碼相似度極高,木馬功能也高度相似:
拓展
有趣的是,我們關聯到某個Twitter使用者@darkhydrus2的暱稱為SteveWilliams,該使用者名稱與DarkHydrus吻合,且暱稱williams與此次C#編寫的木馬程式的PDB路徑又有些關聯:
總結
從近年來的高階攻擊事件分析中可以看出,由於利用Office 0day等漏洞進行攻擊的成本較高,多數攻擊者更趨向於利用Office VBA巨集執行惡意程式碼。企業使用者應儘可能小心開啟來源不明的文件,如有需要可通過開啟Office文件中的:檔案-選項-信任中心-信任中心設定-巨集設定,來禁用一切巨集程式碼執行。
目前,基於360威脅情報中心的威脅情報資料的全線產品,包括360威脅情報平臺(TIP)、天眼高階威脅檢測系統、360 NGSOC等,都已經支援對此類攻擊的精確檢測。
IOC
MD5 |
---|
5c3f96ade0ea67eef9d25161c64e6f3e |
8dc9f5450402ae799f5f8afd5c0a8352 |
b108412f1cdc0602d82d3e6b318dc634 |
039bd47f0fdb6bb7d68a2428c71f317d |
PDB 路徑 |
C:\Users\william\Documents\Visual Studio 2015\Projects\DNSProject\DNSProject\obj\Release\DNSProject.pdb |
CC 地址 |
0ffice365.life |
0ffice365.services |
0nedrive.agency |
akamai.agency |
akamaiedge.live |
akamaiedge.services |
akamaized.live |
akdns.live |
azureedge.today |
cloudfronts.services |
corewindows.agency |
edgekey.live |
microsoftonline.agency |
nsatc.agency |
onedrive.agency |
phicdn.world |
sharepoint.agency |
skydrive.agency |
skydrive.services |
t-msedge.world |
trafficmanager.live |
參考連結
[1]. https://ti.360.net/blog/articles/analysis-of-settingcontent-ms-file/
[3]. https://ti.360.net/
[4]. https://twitter.com/craiu/status/1083305994652917760
*本文作者:360天眼實驗室,轉載請註明來自FreeBuf.COM