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