RANCOR使用PLAINTEE和DDKONG惡意軟體家族在東南亞進行針對性攻擊
在2017年和2018年中,Unit 42一直在跟蹤和觀察一個針對性很強的攻擊(針對東南亞),這是基於我們對KHRAT Trojan的研究。基於證據,這些攻擊是由同一組織的攻擊者利用以前未知的惡意軟體家族進行的。此外,這些攻擊對其使用的惡意軟體的分發以及所選目標具有高度針對性。基於這些因素,Unit 42認為,這些攻擊背後的攻擊者正在進行間諜活動。
我們相信這個組織之前是未知的,因此我們稱之為RANCOR。Rancor組織的攻擊使用了兩個主要的惡意軟體家族,我們將在本博客的後面深入描述命名為DDKONG和PLAINTEE的惡意軟體家族。DDKONG在整個行動中都會使用,而PLAINTEE是這些攻擊者工具包的新增加部分。Unit 42已確定Rancor針對這些國家(包括但不限於):
·新加坡
·柬埔寨
我們確認了這些攻擊以魚叉式釣魚信息的誘餌文件開始,但沒有觀察到實際信息。這些誘餌主要包含政治新聞和公共新聞。基於此,我們認為Rancor攻擊者是針對政治實體的。此外,這些誘餌文檔託管在合法網站上,其中包括屬於柬埔寨政府的網站,並且還有一次是在Facebook。
攻擊中使用的惡意軟體和基礎架構分為兩個不同的集群,我們將其標記為A和B,這些集群相關聯是因為使用了PLAINTEE惡意軟體和幾個「softer」的鏈接。
一、攻擊的相關性
基於之前對KHRAT Trojan的研究,我們一直在監控KHRAT的C2C域名。2018年2月,幾個KHRAT關聯的域名開始解析到IP地址89.46.222 [.] 97。我們把這個IP作為調查的中心。
檢查來自PassiveTotal 的被動DNS(pDNS)記錄,揭示了幾個與此IP相關的域名,這些域名模仿熱門技術公司。在與此IP地址相關的惡意軟體樣本中找到其中一個域名為facebook-apps [.] com。
下表描述了與此IP地址直接相關的兩個惡意軟體樣本:
進一步挖掘,發現我們後來命名為PLAINTEE的惡意軟體家族看起來相當獨特,在數據集中只有6個樣本。
除了一個樣本(c35609822e6239934606a99cb3dbc925f4768f0b0654d6a2adc35eca473c505d)之外,我們能夠通過他們使用的基礎設施將所有PLAINTEE樣本關聯在一起。圖1中的圖表顯示了我們在調查期間確定的樣本、域名、IP地址和電子郵件地址(更多詳細信息,請參閱Appendix B),集群A和集B之間存在明顯分隔,兩者的基礎架構沒有重疊。
圖1:兩個活動集群中PLAINTEE樣本的分布圖
對這兩個集群的調查進一步表明,他們都參與了針對東南亞機構的攻擊。基於使用相對獨特的PLAINTEE惡意軟體,惡意軟體在每個群集中使用相同的文件路徑以及針對類似的目標,我們已將這些攻擊歸入RANCOR名下。
二、分發與載入機制
對於很多樣本,我們無法確定它們是如何分發給受害者的;然而,在三種情況下,我們能夠找到用於分發木馬的文件,我們發現這些文件值得進一步調查,並在下面簡要討論。
Cluster A
在研究中,我們發現至少有一起針對一家公司的攻擊,利用帶有嵌入式宏的Microsoft Office Excel文檔來啟動惡意軟體。有趣的是,分發的文檔借用了2017年底被Sofacy使用的一種技術,該技術將主要惡意代碼嵌入到文檔的EXIF元數據屬性中。
通過這樣做,宏本身的主要內容(圖2)可以保持相對簡單,並且惡意代碼佔用很小的空間可以幫助避開基於宏的自動檢測機制。
圖2:宏的全部內容
在本例中,Company欄位包含攻擊者希望運行的原始命令,下載並執行惡意軟體的下一階段:
Cluster B
Case 2:通過HTA Loader分發 - 1dc5966572e94afc2fbcf8e93e3382eef4e4d7b5bc02f24069c403a28fa6a458
在這種情況下,攻擊者將HTML應用程序文件(.hta)作為電子郵件附件發送給目標。打開執行時,HTA文件的關鍵組件會從遠程URL下載並執行後續的惡意軟體,並載入外部託管的誘餌圖像(圖3)。
圖3:執行.HTA文件時載入的誘餌圖像
圖3中的誘餌圖像強烈表明攻擊者正在對柬埔寨的一個政治實體進行攻擊。柬埔寨救國黨是一個有政治動機的反對黨。
在分析過程中發現了三種獨特的DLL載入器。Loader非常簡單,只需一個導出的功能,並負責執行單個命令。一個示例命令如下:
在上述命令中,惡意軟體正在下載執行payload,並將其配置為持久執行。在其中兩個示例中,惡意軟體還會下載並打開託管在合法網站上受到感染的誘餌PDF文檔。在這些案例中看到的誘餌文件與柬埔寨新聞文章有關,下面的圖4顯示了一個例子。
圖4:downloader提供的誘餌1.pdf
上面的誘餌討論了柬埔寨最近發生的針對政黨支持者的事件,這與圖3中觀察到的誘餌文件類似。
值得注意的是,第三個DLL涉及到從政府網站下載誘餌文件。這個網站之前曾用於針對柬埔寨公民的KHRa行動。
另外,三個DLL載入程序中的兩個被發現託管在這個相同的受感染網站上,這意味著它可能在2018年初再次受到控制。這兩個DLL載入程序的文件名如下所示:
·Activity Schedule.pdf
·????????????????????? (Translated from Khmer: Politicians betrayed on the betrayal)
三、惡意軟體概述
在我們能夠識別所使用的最終payload的所有情況下,都使用DDKONG或PLAINTEE惡意軟體家族。我們觀察到2017年2月至今一直使用DDKONG,而PLAINTEE是更新的版本,已知最早的樣本於2017年10月觀測到。目前尚不清楚DDKONG是否僅由一名還是多名攻擊者使用。
在本節中,我們將介紹這些惡意軟體家族的功能和操作。
1、DDKONG
在下面的分析,我們使用了如下文件:
表1:全面分析DDKONG樣本
該惡意軟體有以下三個導出函數:
·ServiceMain
·Rundll32Call
·DllEntryPoint
ServiceMain導出函數指示該DLL將作為服務載入。如果這個函數被成功載入,它將通過調用Rundll32.exe最終產生一個新的Rundll32Call導出實例。
Rundll32Call導出函數首先創建一個名為「RunOnce」的命名事件。此事件確保在指定時間只執行一個DDKong實例。如果這是當時正在運行唯一的DDKong實例,則惡意軟體會繼續。如果不是,它就會終止。這可以確保在指定的時間只執行一個DDKong實例。
DDKong使用0xC3的單位元組異或密鑰來解碼嵌入式配置。解碼後,配置包含下面的圖5中顯示的數據。
圖5:突出顯示的解碼配置
在配置解碼和解析後,DDKONG繼續通過原始TCP連接向配置中的遠程伺服器發送信標。數據包有一個長度為32的頭部和一個可選的有效載荷。在信標中,沒有提供有效載荷,因此,這個分組的長度被設置為零。
圖6:發送到遠程C2的DDKONG信標
發送信標後,惡意軟體需要0x4或0x6的響應命令。這兩個響應都會指示惡意軟體下載並載入遠程插件。在0x4的情況下,指示惡意軟體載入導出的"InitAction"函數。如果指定0x6,則會指示惡意軟體載入導出的「KernelDllCmdAction」函數。在下載插件之前,惡意軟體會下載一個與嵌入式配置連接並在運行時最終提供給插件的緩衝區。運行時此緩衝區的一個示例如下所示:
00000000: 43 3A 5C 55 73 65 72 73 5C 4D 53 5C 44 65 73 6B C:UsersMSDesk
00000010: 74 6F 70 5C 52 53 2D 41 54 54 20 56 33 5C 50 6C topRS-ATT V3Pl
00000020: 75 67 69 6E 42 69 6E 00 00 00 00 00 00 00 00 00 uginBin………uginBin………
[TRUNCATED]
00000100: 00 00 00 00 43 3A 5C 55 73 65 72 73 5C 4D 53 5C ….C:UsersMS
00000110: 44 65 73 6B 74 6F 70 5C 52 53 2D 41 54 54 20 56 DesktopRS-ATT V
00000120: 33 5C 5A 43 6F 6E 66 69 67 00 00 00 00 00 00 00 3Config…….ZConfig…….
[TRUNCATED]
00000200: 00 00 00 00 00 00 00 00 00 40 00 00 F0 97 B5 01 ………@……
正如我們在上面所看到的,這個緩衝區中包含了兩個完整的文件路徑,使我們能夠深入了解原始惡意軟體家族的名稱以及作者。收集此緩衝區後,惡意軟體將下載該插件並載入相應的函數。在運行時期間,識別出以下插件:
表2:在運行時為DDKong樣本下載的插件
這個插件為攻擊者提供了在受害者機器上列出文件和下載/上傳文件的功能。
2、PLAINTEE
總的來說,我們已經能夠找到6個PLAINTEE樣本,根據分析,它只能被RANCOR攻擊者使用。PLAINTEE的特殊之處在於它使用自定義UDP協議進行網路通信。我們使用下面的示例樣本進行分析:
表3:完整分析PLAINTEE樣本
此樣本有三個導出函數:
·Add
·Sub
·DllEntryPoint
該DLL在最初載入時使用名為「Add」的導出函數。當執行該函數時,PLAINTEE在新進程中執行以下命令以添加持久性:
接下來,惡意軟體調用「Sub」函數,該函數產生一個名為「microsoftfuckedupb」的互斥體,以確保在給定時間只有一個實例正在運行。另外,PLAINTEE通過調用CoCreateGuid()創建一個唯一的GUID,作為受害者的標識符。然後,惡意軟體繼續收集有關受感染機器的常規系統枚舉數據,並進入一個循環,在該循環中它將解碼嵌入的配置blob並向C2伺服器發送初始信標。
配置blob使用簡單的單位元組XOR方案進行編碼。字元串的第一個位元組被用作XOR密鑰來依次解碼剩餘的數據。
解碼這個blob會得到以下信息,也可以在原始二進位文件中找到:
表4:存儲在惡意軟體中的配置
之後,惡意軟體通過自定義UDP協議使用信標配置埠。網路流量採用類似的方式進行編碼,第一個位元組為隨機值,然後通過XOR解碼數據包的其餘部分。圖7顯示了解碼後的信標的一個例子。
圖7: PLAINTEE信標
表5給出了該信標的結構。
表5: PLAINTEE的信標結構
這個信標不斷發出,直到從C2伺服器獲得有效的響應(沒有設置睡眠定時器)。在初始信標之後,其他請求之間會有兩秒的延遲。此響應的返回命令為0x66660002,並包含發送到C2伺服器的相同GUID。一旦收到此響應,惡意軟體會產生幾個新線程,並帶有不同的Command參數,其總體目標是載入並執行從C2伺服器接收的新插件。
在對WildFire中的PLAINTEE進行文件分析期間,我們觀察到攻擊者在運行時為該樣本下載並執行插件。獲取到的插件如下所示:
表6:在Wildfire中觀察到的PLAINTEE插件
PLAINTEE下載的插件是一個具有"shell"或"file"導出函數的DLL。該插件使用與PLAINTEE相同的網路協議,因此我們能夠簡單地解碼發送的其他命令。觀察到以下命令:
·tasklist
·ipconfig /all
攻擊者間隔33秒執行這兩個命令。由於自動命令的執行速度通常更快,這表明它們可能是由攻擊者手動發送的。
四、總結
RANCOR行動代表了針對東南亞地區持續有針對性的攻擊趨勢。在許多情況下,出於政治動機的誘餌被用來吸引受害者點擊,並隨後載入之前沒有記錄在案的惡意軟體家族。這些家族利用自定義網路通信來載入和執行攻擊者託管的各種插件。值得注意的是,PLAINTEE惡意軟體使用自定義UDP協議,這很罕見,在構建未知惡意軟體的啟發式檢測時可以考慮這點。Palo Alto Networks將繼續監視這些攻擊者者、惡意軟體以及基礎設施。
可能有助於防止這些攻擊的其他緩解措施包括:
·在環境中更改「.hta」文件的默認處理程序,以便它們不能直接執行。
附錄A – PLAINTEE的老版本
PLAINTEE的老版本可以通過在運行時創建的獨特互斥來識別。至今已確定至少有三種PLAINTEE變體,但是,以下兩個樣本獨具特色:
附錄B
※Microsoft Windows CVE-2018-1040漏洞分析
※LuckyMouse攻擊了中亞某國國家數據中心
TAG:嘶吼RoarTalk |