2016年9月到10月期間,在歐洲和美國(guó)的酒店行業(yè)中,多個(gè)重要機(jī)構(gòu)在他們的網(wǎng)絡(luò)里發(fā)現(xiàn)了可疑和潛在的惡意活動(dòng),這些惡意活動(dòng)分布在不同屬性和地點(diǎn)的服務(wù)器、銷售點(diǎn)終端機(jī)、和客戶端工作站中。Trustwave公司的SpiderLabs安全團(tuán)隊(duì)接受了這些機(jī)構(gòu)的安全咨詢并進(jìn)行調(diào)查。
這次攻擊行動(dòng)的主要?jiǎng)訖C(jī)是獲取經(jīng)濟(jì)利益、完全控制目標(biāo)的基礎(chǔ)設(shè)施、在受害組織內(nèi)收集僵尸主機(jī)。取證調(diào)查和分析表明,這次行動(dòng)是由多個(gè)個(gè)體或多個(gè)群體實(shí)施的,包含多個(gè)惡意團(tuán)體的互相合作,每個(gè)惡意團(tuán)體有自己的角色和任務(wù)。很明顯,我們正在對(duì)付有組織的犯罪份子,他們?yōu)榱藢?duì)多個(gè)受害人實(shí)施攻擊活動(dòng),建立了這個(gè)復(fù)雜的網(wǎng)絡(luò)主機(jī)系統(tǒng),及大量的惡意文件。
在被攻擊的機(jī)構(gòu)里發(fā)現(xiàn)了多個(gè)攻擊標(biāo)志,不僅在企業(yè)AV服務(wù)中發(fā)現(xiàn)了一些潛在的惡意軟件碎片,而且在Windows事件日志中也發(fā)現(xiàn)了可疑活動(dòng)的標(biāo)志信息。由于受害者是不同的機(jī)構(gòu),因此對(duì)不同機(jī)構(gòu)的調(diào)查由Trustwave內(nèi)部的不同小組進(jìn)行,但是小組之間是共享信息的,調(diào)查表明攻擊事件中存在幾個(gè)相似之處。
在所有攻擊行動(dòng)中,共同的進(jìn)入點(diǎn)是一封針對(duì)受害者公共服務(wù)的電子郵件,包含一個(gè)Word文檔附件。一旦打開(kāi)這個(gè)附件,多個(gè)惡意文件就會(huì)被創(chuàng)建或下載,這就使攻擊者一定程度上進(jìn)入了受害者的基礎(chǔ)設(shè)施中。在一些情況下,攻擊者實(shí)際上會(huì)給受害人打一個(gè)電話,用一個(gè)社會(huì)工程學(xué)策略,來(lái)引導(dǎo)受害人打開(kāi)附件。
下一步,攻擊者會(huì)運(yùn)用多種HASH傳遞的方法,進(jìn)行提權(quán)操作,并通過(guò)計(jì)劃任務(wù)和多個(gè)自啟動(dòng)的位置使得控制持久化。最終這些行為允許攻擊者獲得域權(quán)限、甚至以企業(yè)管理級(jí)訪問(wèn)該網(wǎng)絡(luò),并使用了多個(gè)在歐洲和美國(guó)的資源作為C&C服務(wù)器。
攻擊者通過(guò)使用云服務(wù),如Google Docs,Google Forms和Pastebin.com,來(lái)跟蹤被感染的系統(tǒng)、傳播惡意軟件、實(shí)施附加的惡意活動(dòng)。利用這些服務(wù)對(duì)攻擊者很有利,因?yàn)榇蠖鄶?shù)企業(yè)的網(wǎng)絡(luò)都允許訪問(wèn)這些服務(wù),并且?guī)缀醪豢赡芷帘嗡鼈儭?/p>
在這次攻擊行動(dòng)中使用的惡意代碼,被分割成了內(nèi)存駐留代碼、腳本代碼(PowerShell,JavaScript,VBS)、可執(zhí)行代碼(經(jīng)常出現(xiàn)新變種),并使用了定制版本的工具包,如Metasploit,PowerSploit,Veil Framework。
另一個(gè)重要標(biāo)識(shí)是一些可執(zhí)行文件使用了來(lái)自Comodo的有效證書(shū),一個(gè)權(quán)威的證書(shū)。根據(jù)對(duì)該證書(shū)的分析,我們相信攻擊者購(gòu)買(mǎi)或使用了假的身份,繞過(guò)了額外的安全控制。
在本文中,我們描述了一個(gè)針對(duì)歐洲和美國(guó)酒店行業(yè)的系統(tǒng)性犯罪攻擊行動(dòng)。然而,我們的發(fā)現(xiàn)顯示出其它行業(yè),如電子商務(wù)和零售行業(yè)也在危險(xiǎn)中,這種犯罪活動(dòng)可以輕易地傳播到世界其他地方。
大部分C&C服務(wù)器使用的IP地址部署在歐洲(英國(guó)、法國(guó)、瑞典等)的未知系統(tǒng)上,表明攻擊者通過(guò)使用看似無(wú)害的服務(wù)器作為惡意端點(diǎn),試圖繞過(guò)網(wǎng)絡(luò)安全控制。在對(duì)這次攻擊行動(dòng)調(diào)查期間,我們監(jiān)控了這些C&C服務(wù)器的訪問(wèn),發(fā)現(xiàn)攻擊者偶爾會(huì)改變他們的C&C服務(wù)器,并下線之前的C&C服務(wù)器。我們相信,這種交替使用C&C服務(wù)器的做法是有目的的行為,應(yīng)該是為了盡可能的保持隱蔽。
我們將這次攻擊行動(dòng)稱為“Grand Mars”行動(dòng),在那以后,網(wǎng)絡(luò)犯罪份子使用了從Comodo買(mǎi)到的其中一個(gè)數(shù)字證書(shū)。盡管在證書(shū)細(xì)節(jié)中使用的名稱和俄羅斯位置細(xì)節(jié)(城市,地址等)可能是假的,但實(shí)際上有人買(mǎi)了這些證書(shū),這是一個(gè)強(qiáng)有力的標(biāo)志,說(shuō)明我們對(duì)付的是有組織的犯罪活動(dòng)。
我們的高級(jí)威脅報(bào)告旨在對(duì)該攻擊行動(dòng)的行為和文件進(jìn)行分析:
我們的分析和調(diào)查采取的方法是描述惡意活動(dòng)的性質(zhì)、策略、及攻擊者運(yùn)用的技術(shù)、可能的動(dòng)機(jī),以及攻擊背后的威脅角色的屬性。
對(duì)于已經(jīng)被這個(gè)行動(dòng)攻擊的機(jī)構(gòu)、或愿意采取積極應(yīng)對(duì)措施的機(jī)構(gòu),我們提出了修補(bǔ)措施和建議。
攻擊指示器(IOCs)將不僅有利于機(jī)構(gòu)探索評(píng)估遭受到的攻擊(或在專業(yè)安全團(tuán)隊(duì)的幫助下),而且在機(jī)構(gòu)被當(dāng)成目標(biāo)時(shí),提供一個(gè)具有前瞻性檢測(cè)機(jī)制的早期預(yù)警系統(tǒng)。
盡管如此,還是要注意到,我們的這種高級(jí)威脅報(bào)告沒(méi)有、也沒(méi)有能力取代正式的事件響應(yīng)行動(dòng)和程序,事件響應(yīng)行動(dòng)和程序作為機(jī)構(gòu)事件響應(yīng)/災(zāi)難恢復(fù)的路線圖,必須擔(dān)負(fù)起減緩?fù){和恢復(fù)業(yè)務(wù)的功能。
二、分析和調(diào)查
1、進(jìn)入點(diǎn)
調(diào)查的第一個(gè)目標(biāo)是識(shí)別出攻擊者進(jìn)入網(wǎng)絡(luò)時(shí)準(zhǔn)確的進(jìn)入點(diǎn),和最初的攻擊方法。
釣魚(yú)郵件和惡意Word文檔
Trustwave SpiderLabs安全團(tuán)隊(duì)在全球范圍內(nèi)進(jìn)行了眾多調(diào)查,在這次攻擊行動(dòng)的時(shí)間線中,最開(kāi)始使用了一個(gè)常見(jiàn)的攻擊方法—釣魚(yú)郵件,至少有一個(gè)或更多的員工收到了這個(gè)郵件,它包含了一個(gè)惡意的Word文檔,作為郵件的附件。
圖 1 受害人收到的郵件中包含惡意Word文檔附件
圖 2 釣魚(yú)郵件內(nèi)容
郵件的內(nèi)容是:美好的一天,我們想為員工預(yù)訂房間,有12個(gè)人將會(huì)在11月24日到達(dá)巴黎,房間類型在我們的附件中,還有我們員工的名字。如果你們有空房間,我們就付押金。等待你的回復(fù)。
郵件內(nèi)容看起來(lái)是合理的,并且和機(jī)構(gòu)的服務(wù)(酒店行業(yè))內(nèi)容是有關(guān)系的,郵件包含一個(gè)Word文檔(.docx),名稱為“1-list.docx”,如下圖:
圖 3 Word文檔附件
有趣的是,惡意軟件作者會(huì)直接給受害人打電話,并要求受害人打開(kāi)附件,以確保感染,原因是Word的默認(rèn)設(shè)置會(huì)阻止任何宏的執(zhí)行。這就是攻擊途徑中說(shuō)服用戶執(zhí)行宏的社會(huì)工程學(xué)元素,通過(guò)雙擊文檔中內(nèi)嵌的一個(gè)圖片。
惡意Word文檔分析
對(duì)Word附件進(jìn)行詳細(xì)檢查后,發(fā)現(xiàn)了該攻擊行動(dòng)使用的攻擊方法(策略、途徑),通過(guò)使用這種攻擊途徑,攻擊者獲得了目標(biāo)機(jī)構(gòu)網(wǎng)絡(luò)的進(jìn)入點(diǎn),“1-list.docx”文件似乎是一個(gè)啟用宏的惡意軟件,可以在目標(biāo)系統(tǒng)中下載、并執(zhí)行惡意代碼。
圖 4 Word文檔,宏激活惡意軟件
最新的office(.docx,.xlsx等等)文件實(shí)際上是由微軟設(shè)計(jì)的一個(gè)基于XML的壓縮文件格式,作為一個(gè)正常的壓縮文件,里面的文件可以被提取出來(lái)。解壓以后,Word文檔的內(nèi)容中有一個(gè)內(nèi)嵌的OLE對(duì)象(oleObject1.bin)被釋放出來(lái)。
圖 5 Word文件中釋放出的oleObject1.bin文件
在oleObject1.bin的內(nèi)容中,嵌入了一段宏代碼(unprotected.vbe),它似乎被編碼了。
圖 6 oleObject1.bin中疑似編碼的內(nèi)容
圖 7 使用合法工具加密/編碼VBE腳本
在oleObject1.bin的內(nèi)容里,有一段字符串,請(qǐng)看上圖截圖部分,表明攻擊者使用了一個(gè)市場(chǎng)上可以買(mǎi)到的腳本編碼/加密工具,名為“Scripts Encryptor”,攻擊者使用了它的一個(gè)評(píng)估版本。
圖 8 用于混淆VBE腳本的工具
內(nèi)嵌的腳本
手動(dòng)對(duì)oleObject1.bin的內(nèi)容進(jìn)行了解碼,結(jié)果果然是一個(gè)VBScript。這個(gè)腳本包含了多個(gè)功能,其中的一個(gè)子集用于轉(zhuǎn)換數(shù)據(jù),針對(duì)的是嵌入到腳本中的自定義變量數(shù)據(jù),使用的技術(shù)例如“BinaryToStRinG,StringTOBinary”和“Base64DecodE,base64ENcode”。
圖 9 二進(jìn)制轉(zhuǎn)換字符串函數(shù)
圖 10 base64編碼解碼函數(shù)
嵌入式腳本的主要用途之一是使用先前列出的功能在受感染的系統(tǒng)上創(chuàng)建幾個(gè)其他文件。新文件被存儲(chǔ)在名為“f”的變量中。
圖 11 創(chuàng)建starter.vbs文件
上面的代碼將會(huì)在用戶的臨時(shí)文件夾中創(chuàng)建一個(gè)starter.vbs文件。
圖 12 創(chuàng)建LanCradDriver.vbs、LanCradDriver.ini文件
上圖中的代碼將會(huì)在用戶的臨時(shí)文件夾中創(chuàng)建一個(gè)LanCradDriver.vbs文件和一個(gè)空的LanCradDriver.ini文件。LanCradDriver.ini的作用將會(huì)在后面章節(jié)中解釋。
圖 13 創(chuàng)建TransbaseOdbcDrive.js文件
最后創(chuàng)建的TransbaseOdbcDriver.js文件需要在隱藏的命令行下,利用wscript.exe來(lái)執(zhí)行。
圖 14 starter.vbs持久化
除了創(chuàng)建的文件,內(nèi)嵌的腳本(oleObject1.bin)會(huì)添加一個(gè)注冊(cè)表鍵值用于程序持久化,還包含了一個(gè)計(jì)劃任務(wù),會(huì)周期性(每30分鐘)的調(diào)用并執(zhí)行“starter.vbs”。
另一個(gè)有趣的函數(shù)使用了系統(tǒng)的硬盤(pán)序列號(hào),并計(jì)算出一個(gè)唯一的用戶識(shí)別號(hào)。利用這個(gè)函數(shù),攻擊者從每個(gè)受感染的系統(tǒng)中會(huì)得到一個(gè)唯一的識(shí)別號(hào)。函數(shù)的輸出用base64編碼過(guò),并存儲(chǔ)為“cuid”,在隨后的操作中會(huì)使用到它。
圖 15 計(jì)算CUID號(hào)
互聯(lián)網(wǎng)活動(dòng)還表明,有一個(gè)函數(shù)在檢查機(jī)器上的代理設(shè)置情況,可疑互聯(lián)網(wǎng)活動(dòng)是這個(gè)操作行為的一部分,在后面的文章中我們會(huì)解釋到。
圖 16 檢查代理配置
圖 17 主函數(shù)
在操作行為的第一階段,“主”函數(shù)負(fù)責(zé)處理最后一個(gè)比特。初始調(diào)用了cuid(),正如我們前面看到的,會(huì)處理磁盤(pán)的S/N號(hào),然后運(yùn)行了其它幾個(gè)功能函數(shù)。這些函數(shù)收集了用戶的信息,如用戶名、計(jì)算機(jī)名/域名(GetUseRData),檢查系統(tǒng)架構(gòu)(32位還是64位),并獲得系統(tǒng)版本(GetOS)。所有這些信息存儲(chǔ)在了“txt”變量中,然后sendFormData函數(shù)接著對(duì)它進(jìn)行了處理。
圖 18 sendFormData函數(shù)
如上圖,sendFormData函數(shù)使用并連接了Google Forms,在這一階段,前面收集的到信息(用戶數(shù)據(jù)、磁盤(pán)S/N等)將會(huì)被惡意軟件操作者發(fā)送到Google Form,顯示如下:
圖 19 最初提交給Google Form
從“formFirstPingBotList”名稱上就可以明顯看出來(lái),正在從受害者上收集初始信息。使用這種服務(wù),會(huì)有利于攻擊者,因?yàn)檫@些服務(wù)在訪問(wèn)的大部分網(wǎng)絡(luò)中都不受限制。
2、郵件附件的衍生品
正如我們看到的,打開(kāi)Word文檔會(huì)執(zhí)行內(nèi)嵌的腳本,會(huì)釋放出下面四個(gè)文件:
圖 20 執(zhí)行內(nèi)嵌的VBE腳本,釋放出的文件
注意上圖中的內(nèi)容,LanCradDriver.ini文件是一個(gè)空文件,它還沒(méi)有被填充。在下面的分析中,你將會(huì)看到,在TransbaseOdbcDriver.js腳本執(zhí)行后,它會(huì)被填充。
starter.vbs
這是一個(gè)VBScript文件,前面已經(jīng)顯示過(guò)了,包含注冊(cè)表自啟動(dòng),和利用計(jì)劃任務(wù)實(shí)現(xiàn)持久化,并執(zhí)行真正的載荷。
表格 1 starter.vbs的HASH
Starter.vbs負(fù)責(zé)在一個(gè)隱藏的命令行下,使用wscript.exe執(zhí)行TransbaseOdbcDriver.js腳本。
圖 21 starter.vbs腳本
下面的圖片顯示,starter.vbs腳本通過(guò)計(jì)劃任務(wù)被啟動(dòng)了。Starter.vbs依次調(diào)用并執(zhí)行了TransbaseOdbcDriver.js,這是這一攻擊階段的核心。
圖 22 TransbaseOdbcDriver.js進(jìn)程的信息
TransbaseOdbcDriver.js
該腳本包含了多個(gè)函數(shù),但是在這里我們主要關(guān)注它的主要功能。
表格 2 TransbaseOdbcDriver.js的HASH
在執(zhí)行該腳本后,它會(huì)調(diào)用LoadLinkSettings()函數(shù),該函數(shù)會(huì)連接Google Spreadsheet,并執(zhí)行一個(gè)宏,這個(gè)宏基于唯一磁盤(pán)序列號(hào)(guid),在文章前面我們可以看到。
圖 23 LoadLinkSettings()函數(shù)
該宏代碼的輸出結(jié)果被分隔($$$)成三部分,并在后面的操作中會(huì)使用到,分別是:SpreadSheetKey、FormKey、Entry。
圖 24 執(zhí)行Google宏后的輸出結(jié)果
然后,它使用這些參數(shù),調(diào)用了LogInet()函數(shù),并使用Google Forms提交了一個(gè)新感染者/僵尸主機(jī),連接Google Forms使用了一個(gè)“Android HTC Pyramid”模型(中國(guó)–臺(tái)灣語(yǔ)言)的User-agent字符串。
圖 25 LogInet()函數(shù)
圖 26 使用Google Form注冊(cè)新感染的系統(tǒng)
初始化成功后,腳本調(diào)用getsourcecode()函數(shù),功能是按1或2分鐘的間隔無(wú)限循環(huán)。
圖 27 調(diào)用getsourcecode()函數(shù)
getsourcecode()函數(shù)從Pastebin上抓取數(shù)據(jù),并將它存儲(chǔ)在一個(gè)新文件中,名為“dttsg.txt”。最后執(zhí)行GetCommand()。
圖 28 getsourcecode()函數(shù)
“dttsg.txt”文件的結(jié)構(gòu)如下圖,并按照“l(fā)ast”和“code”分成了兩部分,并提供另一個(gè)隱蔽信道。
圖 29 從Pastebin中抓取的數(shù)據(jù)
“l(fā)ast”中的數(shù)據(jù)將會(huì)寫(xiě)入注冊(cè)表,也許是為了跟蹤最后執(zhí)行的命令, “code”中的數(shù)據(jù)作為一個(gè)參數(shù),用base64編碼過(guò),允許攻擊者執(zhí)行以下命令,分別是“Destroy”、“GetCompInfo”、“GetProcList”和“RunCMDLine”,如下圖所示,然而,在我們的調(diào)查中沒(méi)有觀察到這一特性的用法。
圖 30 從Pastebin中抓取的參數(shù)
圖 31 用于跟蹤的Pastebin帳戶
然后繼續(xù)執(zhí)行GetCommand()函數(shù),它會(huì)再次連接Google Docs,并使用了在LoadLinkSettings()函數(shù)中得到的spreadsheetkey,并將函數(shù)執(zhí)行結(jié)果存儲(chǔ)在LanCradDriver.ini文件中,該文件在最初是一個(gè)空文件,現(xiàn)在在此處的操作過(guò)程中,使它成為攻擊的另一個(gè)關(guān)鍵組件。
圖 32 從Google Docs中下載代碼
實(shí)際的數(shù)據(jù)經(jīng)過(guò)base64編碼過(guò),就像我們?cè)贕oogle spreadsheet中看到的,需要解碼。該數(shù)據(jù)存儲(chǔ)在LanCradDriver.ini文件中。
圖 33 從Google spreadsheet下載的編碼的PowerShell命令
LanCradDriver.ini文件中的數(shù)據(jù)需要利用VBScript腳本來(lái)執(zhí)行,起初是一個(gè)編碼過(guò)的PowerShell腳本。最后一步,TransbaseOdbcDriver.js利用wscript.exe執(zhí)行LanCradDriver.vbs腳本。
圖 34 執(zhí)行LanCradDriver.ini中的代碼
LanCradDriver.vbs
該文件的功能是讀取和執(zhí)行LanCradDriver.ini文件中的命令(通過(guò)TransbaseOdbcDriver.js腳本)。
表格 3 LanCradDriver.vbs文件的HASH
圖 35 LanCradDriver.vbs
LanCradDriver.ini
正如我們之前講到的,TransbaseOdbcDriver.js腳本從Google Docs上讀取了位于spreadsheet上的一個(gè)單元格,數(shù)據(jù)采用base64編碼格式。在解碼以后,解碼的數(shù)據(jù)會(huì)重新存儲(chǔ)到LanCradDriver.ini文件中。
表格 4 LanCradDriver.ini文件的HASH
下面剛是從Google spreadsheet返回的一個(gè)PowerShell命令,并存儲(chǔ)在LanCradDriver.ini文件中,在目標(biāo)系統(tǒng)中,TransbaseOdbcDriver.js腳本會(huì)執(zhí)行該P(yáng)owerShell命令。
圖 36 LanCradDriver.ini中的內(nèi)容(部分內(nèi)容)
在前面我們注意這個(gè)數(shù)據(jù)是用base64編碼和壓縮過(guò)的,這有利于隱藏真實(shí)的PowerShell命令。
在成功執(zhí)行Transbaseodbcdriver.js腳本后,下面的圖片顯示的是文件夾中的內(nèi)容。注意,此時(shí)的LanCradDriver.ini文件已經(jīng)不是空文件了,因?yàn)樗呀?jīng)被Google spreadsheet上的數(shù)據(jù)填充了。
圖 37 執(zhí)行Transbaseodbcdriver.js腳本后,LanCradDriver.ini文件被填充了
行為總結(jié)
總之,四個(gè)被釋放文件的作用可以通過(guò)下面的流程圖直觀的表示出來(lái):
圖 38 釋放文件的作用和執(zhí)行順序
下面的圖表直觀的呈現(xiàn)出了在整個(gè)攻擊行動(dòng)中,惡意軟件使用的C&C機(jī)制,包括使用Pastebin、Google Docs(spreadsheets)和Google Forms去控制受害人系統(tǒng)。
圖 39 惡意軟件C&C服務(wù)流程圖
圖 40 惡意軟件在Google Spreadsheet不能用時(shí)的C&C服務(wù)流程圖
使用這種C&C服務(wù)機(jī)制,雖然說(shuō)不是很罕見(jiàn),但是這足以表明,我們面對(duì)的是一個(gè)高度組織化和成熟化的攻擊者,并不是一個(gè)投機(jī)份子、松散組織或孤狼攻擊。
3、攻擊持久化
PowerShell腳本
此時(shí)此刻,從Google Docs下載的PowerShell腳本已被解碼,并在被感染的系統(tǒng)上執(zhí)行了。正如圖36所示的,使用了PowerShell壓縮和Base64函數(shù)來(lái)隱藏有效載荷。在解析這些功能后,輸出結(jié)果表明該腳本的目的是建立一個(gè)持久后門(mén),經(jīng)常被稱為T(mén)CP反彈連接shell。
它的細(xì)節(jié)如下:
1) 該腳本連接到一個(gè)外部IP的80端口,然而,它并沒(méi)有用HTTP協(xié)議來(lái)傳輸數(shù)據(jù)。
2) 分配內(nèi)存,并創(chuàng)建線程的代碼存在。
3) 然后接收一個(gè)源于外部IP的、經(jīng)過(guò)異或加密的載荷。
4) 使用0x50密鑰,解密載荷,并寫(xiě)入內(nèi)存。
圖 41 PowerShell中的TCP反彈SHELL
上面腳本的結(jié)果是,產(chǎn)生一個(gè)常駐內(nèi)存的惡意軟件,并給網(wǎng)絡(luò)罪犯提供一個(gè)反彈shell。攻擊者現(xiàn)在成功獲得了進(jìn)入目標(biāo)基礎(chǔ)設(shè)施的后門(mén)。PowerShell命令用于解碼和執(zhí)行該腳本。這種載荷傳遞方法和“PowerSploit”、“Veil Framework”很相似,前者是一個(gè)PowerShell的Post-Exploitation框架,后者是一個(gè)眾所周知的逃稅殺毒檢測(cè)的載荷工具。
注冊(cè)表自啟動(dòng)
此外,攻擊者利用了系統(tǒng)自啟動(dòng)位置(常見(jiàn)嫌疑犯)來(lái)實(shí)現(xiàn)持久化。為了在機(jī)器重啟后能自啟動(dòng),它在注冊(cè)表中創(chuàng)建了下面的鍵值。
圖 42 注冊(cè)表持久化
計(jì)劃任務(wù)
最后,又創(chuàng)建了一個(gè)計(jì)劃任務(wù),每30分鐘會(huì)被觸發(fā)一次,并無(wú)限循環(huán)。計(jì)劃任務(wù)的名稱是“SysCheks”,它會(huì)執(zhí)行“starter.vbs”。
圖 43 SysCheks計(jì)劃任務(wù)持久化
所有東西都被復(fù)制在用戶臨時(shí)目錄下,“C:\Users\<user profile>\AppData\Local\Temp”,這也是非常常見(jiàn)的惡意軟件行為,因?yàn)槿魏斡脩魧?duì)這個(gè)文件夾都有完全的訪問(wèn)權(quán)限。
4、橫向運(yùn)動(dòng)(橫向攻擊)
HASH傳遞
在這次攻擊行動(dòng)的初始階段,攻擊者獲得了進(jìn)入本地Windows系統(tǒng)的管理帳戶,并利用HASH傳遞偷了一個(gè)域證書(shū),是高權(quán)限用戶。
圖 44 事件顯示出HASH傳遞標(biāo)識(shí)
上圖顯示的ID為4624的事件顯示出,用戶的一個(gè)本地帳戶是從網(wǎng)絡(luò)登錄的(Logon Type:3),并使用了隨機(jī)的計(jì)算機(jī)名(Workstation Name: T5NMapiY4kGetJDe),可能是利用了一個(gè)自動(dòng)化工具的結(jié)果。
HASH傳遞是攻擊者成功控制一個(gè)系統(tǒng)時(shí)常用的技術(shù),竊取憑據(jù)HASH,并使用它在另一個(gè)系統(tǒng)中執(zhí)行認(rèn)證。如果在目標(biāo)基礎(chǔ)設(shè)施中,共享相同的本地帳戶,這種技術(shù)對(duì)攻擊者會(huì)很有用。
最終,攻擊者通過(guò)位于歐洲和美國(guó)的充當(dāng)C&C服務(wù)器的多個(gè)資源,獲得域權(quán)限、或企業(yè)域管理訪問(wèn)權(quán)、網(wǎng)絡(luò)訪問(wèn)權(quán)。
對(duì)攻擊基礎(chǔ)架構(gòu)的進(jìn)一步調(diào)查顯示出,入侵者在目標(biāo)環(huán)境中在傳播相似的PowerShell腳本、或嵌入批處理文件。大量的內(nèi)部系統(tǒng)事件記錄,如下圖:
圖 45用于傳播的批處理文件
圖 46 用于傳播的PowerShell腳本
在整個(gè)攻擊行動(dòng)中,發(fā)現(xiàn)了多個(gè)PowerShell腳本,并且和最初從Google Docs下載的PowerShell腳本是相似的。它們的最大不同點(diǎn)是C&C服務(wù)器的IP地址,是位于歐洲的多個(gè)主機(jī)中的一個(gè)。
5、更多惡意文件
在同一時(shí)間和日期中,我們對(duì)文件系統(tǒng)活動(dòng)進(jìn)行取證分析時(shí),又發(fā)現(xiàn)了多個(gè)釋放到臨時(shí)文件夾的惡意文件,它們是TransbaseOdbcDriver.js文件和其他配套文件:
1) AdobeUpdateManagementTool.vbs(連接C&C,并提取數(shù)據(jù))。
2) UVZHDVlZ.exe(Carbanak的變種)。
3) Update.exe(Cobalt Strike的post-exploitation工具)。
4) 322.exe(TCP反彈shell)。
對(duì)這些可執(zhí)行文件進(jìn)行分析,發(fā)現(xiàn)它們有共同的惡意性質(zhì),主要用途是建立持久化或數(shù)據(jù)提取。
AdobeUpdateManagementTool.vbs
這是使用VBScript寫(xiě)的惡意腳本,主要功能是從攻擊者那里接收命令,然后根據(jù)命令下載、執(zhí)行EXE文件、執(zhí)行VBScript或PowerShell腳本文件。并通過(guò)HTTP POST隧道將竊取的數(shù)據(jù)發(fā)送到攻擊者的IP地址。
盡管在我們的調(diào)查中,我們觀察到的文件名稱是“AdobeUpdateManagementTool.vbs”,但是攻擊者在不同的攻擊行動(dòng)中使用不同的文件名是很常見(jiàn)的。
表格 5 AdobeUpdateManagementTool.vbs文件的HASH
AdobeUpdateManagementTool.vbs在執(zhí)行時(shí),會(huì)創(chuàng)建一個(gè)文件夾,名為“%AllUsersProfile%+“\Dropebox”+<username>”,例如C:\ProgramData\DropeboxJoePC,并在該文件夾中釋放出下面的文件:
screenshot__.ps1:截屏的PowerShell腳本。
screenshot__.png:通過(guò)上面的PowerShell腳本,截取的屏幕圖片。
Exe__.exe:攻擊者發(fā)送來(lái)的可執(zhí)行文件。
Vb__.vbs:攻擊者發(fā)送來(lái)的VBScript。
Ps1__.ps1:攻擊者發(fā)送來(lái)的PowerShell腳本。
Insatller.vbs:攻擊者發(fā)送來(lái)的VBS腳本更新器。
該惡意腳本給攻擊者的C&C服務(wù)器發(fā)送一個(gè)特定的請(qǐng)求,并從服務(wù)器接收一個(gè)經(jīng)過(guò)HASH(MD5)的命令。該命令會(huì)在被攻擊的系統(tǒng)中執(zhí)行。
表格 6 支持的命令示例
上圖是每個(gè)命令執(zhí)行后的結(jié)果,并通過(guò)HTTP POST請(qǐng)求發(fā)送到C&C服務(wù)器中,格式如下:
圖 47 用HTTP POST請(qǐng)求向C&C服務(wù)器發(fā)送數(shù)據(jù)
HTTP POST數(shù)據(jù)中body的格式:
圖 48 HTTP POST方式選項(xiàng)
在每次發(fā)送“命令-結(jié)果數(shù)據(jù)”期間,該腳本會(huì)循環(huán)進(jìn)入睡眠模式,持續(xù)3到5分鐘。
下面是識(shí)別出來(lái)的和這個(gè)腳本有關(guān)的C&C服務(wù)器IP(攻擊者會(huì)經(jīng)常改變他們的C&C服務(wù)器,因此這點(diǎn)IP是微不足道的,這些IP可能和將會(huì)進(jìn)行的其它攻擊行為的IP是不同的):
? 148.251.18.75
? 95.215.46.221
? 95.215.46.229
? 95.215.46.234
? 81.17.28.124
通過(guò)VirusTotal的報(bào)告,任何殺毒軟件工具都沒(méi)有將這個(gè)文件標(biāo)記成惡意軟件,這是一個(gè)成熟惡意軟件的明確標(biāo)志,及它背后的威脅角色。
UVZHDVlZ.exe
該文件是一個(gè)Anunak惡意軟件的加載者,Anunak惡意軟件是加密的、內(nèi)嵌在可執(zhí)行文件中。該載荷(Anunak)可執(zhí)行并被注入到svchost.exe中,給攻擊者提供連接受害系統(tǒng)、并持久化進(jìn)入受害系統(tǒng)的能力。
表格 7 UVZHDVlZ.exe文件的HASH
最初,可執(zhí)行文件主程序會(huì)使用異或加密密鑰“PsdTsr8fer3”,對(duì)內(nèi)嵌在它里面的兩個(gè)代碼模塊進(jìn)行解密,一個(gè)是載荷加載者/進(jìn)程注入模塊,一個(gè)是Anunak惡意W32可執(zhí)行文件模塊。
解密行為和加密行為一樣簡(jiǎn)單,即用密鑰和代碼相異或,每次跳過(guò)3字節(jié)(我們發(fā)現(xiàn)使用了解密過(guò)程,但是為了保持簡(jiǎn)潔,在這個(gè)報(bào)告里我們沒(méi)有進(jìn)行詳細(xì)說(shuō)明)。
在對(duì)可執(zhí)行文件進(jìn)行反匯編后,發(fā)現(xiàn)了異或密鑰,同時(shí),在解密過(guò)程中也用到了這個(gè)密鑰。
圖 49 發(fā)現(xiàn)異或密鑰
正如提到的,Anunak載荷的加載者(注入)模塊代碼會(huì)首先被解密,然后解密Anunak可執(zhí)行代碼。
圖 50 載荷解密
圖 51 在解密Anunak后,執(zhí)行它
通過(guò)該惡意載荷,我們識(shí)別出了下面的C&C服務(wù)器IP:
? 179..43.140.85 (port: 443)
? 107.181.246.189 (port: 443)
該惡意軟件的執(zhí)行流程圖可以表示成如下圖片:
圖 52 UVZHDVlZ.exe的直觀執(zhí)行流程圖
有趣的是,UVZHDVlZ.exe使用了一個(gè)由Comode CA頒發(fā)的有效數(shù)字證書(shū),似乎是用偽造的身份購(gòu)買(mǎi),偽造的身份是俄羅斯莫斯科的一個(gè)公司。
圖 53 UVZHDVlZ.exe數(shù)字證書(shū)的詳細(xì)信息
根據(jù)VirusTotal的報(bào)告,沒(méi)有任何殺毒軟件將UVZHDVlZ.exe標(biāo)記為惡意軟件。這是特定惡意軟件和該攻擊活動(dòng)背后專業(yè)攻擊者的另一個(gè)標(biāo)志。
Update.exe
該可執(zhí)行文件和前面分析中描述的Anunak加載者可執(zhí)行文件一樣,使用了Comode CA頒發(fā)的一個(gè)數(shù)字證書(shū),但是該證書(shū)是在此次攻擊行動(dòng)前幾周買(mǎi)的。和Anunak加載者可執(zhí)行文件一樣,這個(gè)證書(shū)也包含發(fā)行細(xì)節(jié),一家俄羅斯莫斯科的公司,可能是偽造的。
表格 8 Update.exe的HASH
圖 54 Update.exe的數(shù)字證書(shū)詳情
該可執(zhí)行文件實(shí)際上也是一個(gè)加載者,它會(huì)創(chuàng)建一個(gè)Cobalt Strike post-exploitation工具的新線程,名為“beacon”。Beacon動(dòng)態(tài)鏈接庫(kù)是加密的,內(nèi)嵌在惡意軟件中。
最初,主可執(zhí)行文件會(huì)解密內(nèi)嵌在它里面的兩個(gè)代碼模塊,一個(gè)是加載代碼模塊(它本身),一個(gè)是載荷PE文件(內(nèi)嵌在它里面),
和我們之前描述過(guò)的Anunak加載者可執(zhí)行文件一樣,該文件也使用異或進(jìn)行加密,密鑰是“keDx8”,加密解密是一個(gè)密鑰,作用于加載者代碼和內(nèi)嵌的PE可執(zhí)行文件上。下圖顯示的是解密異或代碼的反匯編代碼:
圖 55 異或密鑰的解密流程
下圖顯示的是加密的/解密的加載者,和PE可執(zhí)行文件(載荷):
加載者代碼(解密前、解密后):
圖 56 加載者代碼
PE可執(zhí)行文件(解密前、解密后):
圖 57 PE可執(zhí)行文件
在成功對(duì)載荷可執(zhí)行文件解密后,該載荷會(huì)在內(nèi)存中被執(zhí)行。
當(dāng)載荷執(zhí)行后,它首先會(huì)為即將解密的beacon動(dòng)態(tài)鏈接庫(kù)預(yù)先分配內(nèi)存。
圖 58 載荷分配內(nèi)存
然后會(huì)解密DLL文件。
圖 59 解密beacon DLL的流程
圖 60 beacon DLL解密
然后,該DLL會(huì)被加載到一個(gè)新線程中。
圖 61 反射beacon DLL
beacon DLL會(huì)無(wú)限期循環(huán),在兩次循環(huán)之間會(huì)睡眠10秒鐘。
該可執(zhí)行文件使用了一個(gè)技術(shù),來(lái)探測(cè)目標(biāo)系統(tǒng)或網(wǎng)絡(luò)中的殺毒軟件工具。它連接外部,并從一個(gè)硬編碼的主機(jī)上下載EICAR反惡意軟件測(cè)試字符串,此文本是一個(gè)特殊的“虛擬”字符串,用于測(cè)試安全控制系統(tǒng),如AV軟件、IDS等。這給惡意軟件一個(gè)指示:在目標(biāo)系統(tǒng)中沒(méi)有AV工具。
它使用了一個(gè)C&C服務(wù)器:95.215.44.12 (HTTP)。
圖 62 X-Malware字段中的EICAR測(cè)試字符串
自撰寫(xiě)本報(bào)告之日起,根據(jù)VirusTotal的報(bào)告,該可執(zhí)行文件沒(méi)有被任何殺毒軟件標(biāo)記為惡意軟件。
322.exe
經(jīng)過(guò)分析,發(fā)現(xiàn)它是一個(gè)持續(xù)性訪問(wèn)受害系統(tǒng)的TCP反彈式后門(mén)。
表格 9 322.exe的HASH
該可執(zhí)行文件會(huì)檢查系統(tǒng)上的AV進(jìn)程,基于它發(fā)現(xiàn)的信息,要么執(zhí)行一個(gè)新進(jìn)程“wuauclt.exe”(發(fā)現(xiàn)AV),要么執(zhí)行“svchost.exe -k netsvcs”。如果它不能執(zhí)行前一個(gè)命令,會(huì)產(chǎn)生explorer.exe進(jìn)程。
通過(guò)分析反匯編的可執(zhí)行文件代碼,該惡意軟件需要以下三個(gè)參數(shù):{transport}、{LHOST}、{LPORT}。
例如:“322.exe 4 127.0.0.1 53”。
{transport}參數(shù)可以是下面的變量:
表格 10 ?{transport}變量的命令行參數(shù)
當(dāng)可執(zhí)行文件利用上面的一個(gè)選項(xiàng)運(yùn)行時(shí),它會(huì)從對(duì)應(yīng)的遠(yuǎn)程IP中接收一個(gè)DLL載荷,并將它注入到之前成功啟動(dòng)的進(jìn)程中(wuauclt.exe或svchost.exe或explorer.exe)。然后將執(zhí)行轉(zhuǎn)移到該進(jìn)程。這給攻擊者提供了三種類型的命令shell,用于訪問(wèn)受害系統(tǒng)。
這不是犯罪份子第一次利用眾所周知的工具,因?yàn)樵摽蓤?zhí)行文件無(wú)非是一個(gè)定制的Metasploit載荷,負(fù)責(zé)下載和執(zhí)行反彈TCP。322.exe的最后一步是刪除自己,為的是不留下蹤跡。
VirusTotal在最后一次掃描該惡意可執(zhí)行文件時(shí),得分是8/57,這是一個(gè)低分。結(jié)合對(duì)文件的分析結(jié)果表明,一部分惡意軟件作者是高度成熟的,他們能夠有效地規(guī)避大部分AV工具。
三、結(jié)論
在對(duì)多個(gè)惡意可執(zhí)行文件的調(diào)查中,發(fā)現(xiàn)了混淆的PowerShell命令、VBS腳本、JavaScript。如下圖:
表格 11 此次攻擊行動(dòng)的攻擊指示器
一些可執(zhí)行文件是被他們的父進(jìn)程下載的,并直接寫(xiě)入到內(nèi)存中,然后作為DLLs,注入到其它進(jìn)程中,并在執(zhí)行后刪除。同樣,使用PowerShell的好處是:惡意軟件不用存儲(chǔ)在磁盤(pán)里,直接在內(nèi)存中運(yùn)行。此外,利用腳本的做法具有很強(qiáng)的靈活性,這是另一個(gè)強(qiáng)大的優(yōu)勢(shì),允許攻擊者毫不費(fèi)力地修改他們的代碼。
此外,基于利用了多個(gè)不同惡意軟件這個(gè)事實(shí),表明多個(gè)實(shí)體在進(jìn)行合作和交流,并在地下市場(chǎng)交流工具和技術(shù)。當(dāng)然,也有可能多個(gè)不同的惡意群體是合伙關(guān)系,各自負(fù)責(zé)一些攻擊階段的任務(wù)。
同樣,部署在全球范圍內(nèi)的網(wǎng)絡(luò)主機(jī)的數(shù)量,作為提取點(diǎn)或C&C服務(wù)器,也表明這可能是一個(gè)有組織的犯罪行動(dòng)。在下圖中,已經(jīng)描繪出了它們的位置和角色(3個(gè)在美國(guó)的服務(wù)器沒(méi)有描繪出來(lái)):
圖 63 惡意服務(wù)器地理位置
實(shí)際情況是有人從Comode CA購(gòu)買(mǎi)并使用了合法的數(shù)字證書(shū),證書(shū)使用了有效但可能偽造的身份,俄羅斯莫斯科。這是另一個(gè)指向有組織犯罪網(wǎng)絡(luò)的間接證據(jù),同時(shí),對(duì)于此次攻擊行為,他們有強(qiáng)烈的攻擊動(dòng)機(jī)。
證書(shū)簽名時(shí)間(創(chuàng)建時(shí)間)和攻擊時(shí)間線很接近,有力的表明了購(gòu)買(mǎi)這些證書(shū)就是為了這次攻擊行動(dòng)。這些數(shù)字證書(shū)是從一個(gè)有效的公司偷的或“借”的嗎?攻擊的時(shí)間線和CA產(chǎn)生證書(shū)的時(shí)間/日期的相關(guān)性表明,這不太可能。
此外,攻擊者在攻擊中使用了Pastebin URL作為C&C機(jī)制的一部分,該URL屬于一個(gè)個(gè)體,名為“Shtokov”。這是另一個(gè)弱的標(biāo)志,表明俄羅斯/東歐的角色參與了這次的攻擊行動(dòng)。
圖 64 Shtokov Pastebin網(wǎng)站被用到了C&C機(jī)制中
使用像Google Docs這樣的服務(wù)是為了保持對(duì)受害人的跟蹤,并傳播惡意文件。這給防御者帶來(lái)了很大的挑戰(zhàn),因?yàn)槔眠@些流行的公共云服務(wù)后,防御者很難將好人和壞人區(qū)分開(kāi)。
最后,隨著對(duì)carbanak APT活動(dòng)的不斷了解,該惡意軟件家族的攻擊特征有幾個(gè)共同的特點(diǎn),這很可能歸因于俄羅斯地下金融網(wǎng)絡(luò)犯罪。
我們唯一能確定的是,攻擊者不會(huì)停止尋求新的、創(chuàng)新的方法去感染企業(yè)環(huán)境和操縱公共服務(wù),這被公眾認(rèn)為是忠實(shí)的和值得信賴的。
四、應(yīng)對(duì)措施
根據(jù)我們的調(diào)查,我們發(fā)現(xiàn)有多個(gè)案件都是“Grand Mars”APT活動(dòng)的一部分,Trustwave SpiderLabs推薦以下補(bǔ)救措施,有效地消除或減少由攻擊造成的損害,并在威脅實(shí)現(xiàn)之前主動(dòng)解決威脅。
關(guān)鍵對(duì)策(中短期)
1) 定期對(duì)所有人員進(jìn)行安全意識(shí)培訓(xùn)。
2) 基于互聯(lián)網(wǎng)的文件禁止執(zhí)行vbs/宏/VBE。
3) 禁止可執(zhí)行文件(EXE,VBS等)從AppData、用戶臨時(shí)文件夾啟動(dòng)。
4) 禁用不需要的、完全不受限制的Internet訪問(wèn)。
5) 最小化管理員帳戶的數(shù)量和使用。
6) 防止常規(guī)用戶以管理員登錄。
7) 對(duì)廣泛使用的應(yīng)用層協(xié)議實(shí)施過(guò)濾。
8) 給本地用戶和管理員創(chuàng)建單獨(dú)的密鑰,并經(jīng)常更改。
9) 限制管理員訪問(wèn)權(quán)限,除非系統(tǒng)需要。
由于惡意軟件主要駐留在內(nèi)存中,不用讀寫(xiě)磁盤(pán),且對(duì)主機(jī)文件系統(tǒng)改變很少,建議在所有終端、服務(wù)器和網(wǎng)絡(luò)上進(jìn)行下列檢查。我們建議檢查的攻擊標(biāo)志是:
1) 系統(tǒng)中是否安裝并啟動(dòng)了具有隨機(jī)名稱的服務(wù)。
2) 服務(wù)是否按以下方法啟動(dòng):
? PowerShell命令/腳本。
? 一個(gè)可疑/隨機(jī)的、未知起源和目的的命令、程序或二進(jìn)制文件(如我們報(bào)告中提到的Update.exe/322.exe)。
? 帶有隨機(jī)名稱的一個(gè)批處理腳本(.bat)。
3) 系統(tǒng)是否嘗試連接一個(gè)外部IP,特別是用了常見(jiàn)的端口,但是又沒(méi)有使用這些端口上常用的協(xié)議,如110、53、80、443、8080,防火墻通常會(huì)允許這些端口的出站連接。
4) 是否存在計(jì)劃任務(wù)或系統(tǒng)自啟動(dòng)位置。
在本報(bào)告中,有關(guān)惡意軟件連接的IP地址和主機(jī)/域的完整列表如下圖所示:
表格 12 惡意主機(jī)和IP地址
關(guān)鍵行業(yè)需要有所意識(shí)
強(qiáng)烈建議零售、電子商務(wù)和酒店行業(yè)的組織立即實(shí)施關(guān)鍵對(duì)策。主動(dòng)進(jìn)行徹底的威脅評(píng)估,而不是等待發(fā)現(xiàn)攻擊跡象。使用我們高級(jí)威脅報(bào)告中的信息,在整個(gè)網(wǎng)絡(luò),包括服務(wù)器和終端,實(shí)施全面的威脅檢查,以確定任何惡意活動(dòng)的跡象。最后,評(píng)估您當(dāng)前的事件響應(yīng)能力,并找到影響你們組織響應(yīng)能力的差距。沒(méi)有哪個(gè)組織可以防御所有攻擊。但是如果你有阻止攻擊、并迅速作出有效響應(yīng)的能力,那將長(zhǎng)期給你在面對(duì)高級(jí)攻擊時(shí)的生存能力帶來(lái)好的影響。
參考鏈接
https://www.trustwave.com/Resources/SpiderLabs-Blog/Operation-Grand-Mars–a-comprehensive-profile-of-Carbanak-activity-in-2016/17/?utm_source=tuicool&utm_medium=referral