安天近期發(fā)現(xiàn)一例針對(duì)中國(guó)政府機(jī)構(gòu)的準(zhǔn)APT攻擊事件,在攻擊場(chǎng)景中,攻擊者依托自動(dòng)化攻擊測(cè)試平臺(tái)Cobalt Strike生成的、使用信標(biāo)(Beacon)模式進(jìn)行通信的Shellcode,實(shí)現(xiàn)了對(duì)目標(biāo)主機(jī)進(jìn)行遠(yuǎn)程控制的能力。這種攻擊模式在目標(biāo)主機(jī)中體現(xiàn)為:無(wú)惡意代碼實(shí)體文件、每60秒發(fā)送一次網(wǎng)絡(luò)心跳數(shù)據(jù)包、使用Cookie字段發(fā)送數(shù)據(jù)信息等行為,這些行為在一定程度上可以躲避主機(jī)安全防護(hù)檢測(cè)軟件的查殺與防火墻的攔截。鑒于這個(gè)攻擊與Cobalt Strike平臺(tái)的關(guān)系,我們暫時(shí)將這一攻擊事件命名為APT-TOCS(TOCS,取Threat on Cobalt Strike之意)
APT-TOCS這一個(gè)攻擊的核心步驟是:加載Shellcode的腳本功能,通過(guò)命令行調(diào)用powershell.exe將一段加密數(shù)據(jù)加載到內(nèi)存中執(zhí)行。解密后的數(shù)據(jù)是一段可執(zhí)行的Shellcode,該Shellcode由Cobalt Strike(一個(gè)自動(dòng)化攻擊測(cè)試平臺(tái))所生成。安天分析小組根據(jù)加載Shellcode的腳本進(jìn)行了關(guān)聯(lián),亦關(guān)聯(lián)出一個(gè)可能在類(lèi)似攻擊中的作為腳本前導(dǎo)執(zhí)行文件的PE程序,但由于相關(guān)腳本可以通過(guò)多種方式來(lái)執(zhí)行,并不必然依賴(lài)前導(dǎo)PE程序加載,且其是Cobalt Strike所生成的標(biāo)準(zhǔn)攻擊腳本,因此無(wú)法判定該前導(dǎo)PE文件與本例攻擊的關(guān)聯(lián)。這種基于腳本+Shellcode的方式注入內(nèi)存執(zhí)行沒(méi)有硬盤(pán)寫(xiě)入操作,使用信標(biāo)(Beacon)模式進(jìn)行通信,支持多信標(biāo)通信,可以同時(shí)和多個(gè)信標(biāo)工作。這種攻擊方式可以不依賴(lài)載體文件進(jìn)行攻擊,而可以依靠網(wǎng)絡(luò)投放能力和內(nèi)網(wǎng)橫向移動(dòng)按需投放,這將會(huì)給取證工作帶來(lái)極大的困難,而且目前的一些沙箱檢測(cè)產(chǎn)品也對(duì)這種攻擊無(wú)效。
APT-TOCS攻擊盡管看起來(lái)已經(jīng)接近APT水準(zhǔn)的攻擊能力,但并非更多依賴(lài)攻擊團(tuán)隊(duì)自身的能力,而是依托商業(yè)的自動(dòng)化攻擊測(cè)試平臺(tái)來(lái)達(dá)成。
APT-TOCS是利用了”powershell.exe”執(zhí)行Shellcode的腳本實(shí)現(xiàn)對(duì)目標(biāo)系統(tǒng)的遠(yuǎn)程控制。安天分析人員認(rèn)為攻擊者掌握較多種最終可以達(dá)成多種腳本加載權(quán)限的遠(yuǎn)程注入手段,如利用安全缺陷或漏洞直接實(shí)現(xiàn)腳本在主機(jī)上執(zhí)行。同時(shí),通過(guò)關(guān)聯(lián)分析,發(fā)現(xiàn)如下的二進(jìn)制攻擊前導(dǎo)文件(以下簡(jiǎn)稱(chēng)Sample A),曾被用于類(lèi)似攻擊:
該P(yáng)E樣本中嵌入的腳本,與安天獲取到的Shellcode腳本功能代碼完全相同,但加密數(shù)據(jù)存在差異,該P(yáng)E樣本曾在2015年5月2日被首次上傳到Virustotal。
該P(yáng)E樣本使用WinExec運(yùn)行嵌入的惡意代碼:
由此可以初步看到,這一”前導(dǎo)文件”可以被作為類(lèi)似攻擊的前導(dǎo),依托系統(tǒng)和應(yīng)用漏洞,不依賴(lài)類(lèi)似文件,依然可以實(shí)現(xiàn)腳本的執(zhí)行與最終的控制。
從目前來(lái)看,并不能確定這一前導(dǎo)樣本與本起APT事件具有關(guān)聯(lián)關(guān)系。
APT-TOCS攻擊遠(yuǎn)控的核心部分是依托PowerShell加載的加密數(shù)據(jù)腳本(以下簡(jiǎn)稱(chēng)Sample_B),圖1為腳本各模塊之間的衍生關(guān)系和模塊主要功能:
Sample B文件的內(nèi)容(base64的內(nèi)容已經(jīng)省略)如下:
該部分腳本的功能是:將base64加密過(guò)的內(nèi)容進(jìn)行解密,再使用Gzip進(jìn)行解壓縮,得到模塊1,并使用PowerShell來(lái)加載執(zhí)行。
腳本1的內(nèi)容(base64的內(nèi)容已經(jīng)省略)如下:
此部分內(nèi)容的功能是將經(jīng)過(guò)base64加密的數(shù)據(jù)解密,得到模塊1,寫(xiě)入到powershell.exe進(jìn)程內(nèi),然后調(diào)用執(zhí)行。
該模塊的主要功能是調(diào)用wininet模塊的函數(shù),進(jìn)行連接網(wǎng)絡(luò),下載模塊2的操作;并加載到內(nèi)存中執(zhí)行。
上圖為使用HTTPGET請(qǐng)求,獲取文件:http://146.0.***.***/hfYn。
模塊2創(chuàng)建并掛起系統(tǒng)進(jìn)程rundll32.exe:
寫(xiě)入模塊3的數(shù)據(jù):
模塊3的數(shù)據(jù)雖然是以”MZ”開(kāi)頭,但并非為PE文件,而是具有后門(mén)功能的Shellcode。
該模塊會(huì)連接兩個(gè)地址,端口號(hào)為80:
146.0.***.***?????(羅馬尼亞)
dc.******69.info (146.0.***.***)?(羅馬尼亞)
發(fā)送請(qǐng)求數(shù)據(jù),接收返回?cái)?shù)據(jù)。
上述IP、域名和訪問(wèn)地址的解密方式是”異或0x69″。
從該模塊的字符串與所調(diào)用的系統(tǒng)函數(shù)來(lái)判斷,該模塊為后門(mén)程序,會(huì)主動(dòng)向指定的地址發(fā)送GET請(qǐng)求,使用Cookie字段來(lái)發(fā)送心跳包,間隔時(shí)間為60秒。心跳包數(shù)據(jù)包括校驗(yàn)碼、進(jìn)程ID、系統(tǒng)版本、IP地址、計(jì)算機(jī)名、用戶名、是否為64位進(jìn)程,并將該數(shù)據(jù)使用RSA、BASE64加密及編碼。
由于進(jìn)程ID與校驗(yàn)碼的不同,導(dǎo)致每次傳輸?shù)男奶鼣?shù)據(jù)不相同。校驗(yàn)碼是使用進(jìn)程ID和系統(tǒng)開(kāi)機(jī)啟動(dòng)所經(jīng)過(guò)的毫秒數(shù)進(jìn)程計(jì)算得出的。算法如下:
加密后的心跳包使用Cookie字段進(jìn)行傳輸:
安天CERT分析人員關(guān)聯(lián)的PE前導(dǎo)文件Sample_A和Sample B利用PowerShell的方法和完全相同,但正應(yīng)為相關(guān)腳本高度的標(biāo)準(zhǔn)化,并不排除Sample_A與本次攻擊沒(méi)有必然聯(lián)系。而基于其他的情況綜合分析,我們依然判斷是一個(gè)系列化的攻擊事件,攻擊者可能采用了社工郵件、文件捆綁、系統(tǒng)和應(yīng)用漏洞利用、內(nèi)網(wǎng)橫向移動(dòng)等方式實(shí)現(xiàn)對(duì)目標(biāo)主機(jī)的控制。
而在分析”模塊1″時(shí),我們發(fā)現(xiàn)了”Beacon”等字符串,依托過(guò)往分析經(jīng)驗(yàn),懷疑該Shellcode與自動(dòng)化攻擊測(cè)試平臺(tái)Cobalt Strike密切相關(guān)。于是,分析人員對(duì)使用Cobalt Strike生成的Beacon進(jìn)行對(duì)比分析,驗(yàn)證兩者之間的關(guān)系。
Cobalt Strike 是一款以metasploit(一個(gè)滲透測(cè)試平臺(tái))為基礎(chǔ)的GUI的框架式滲透工具,Cobalt Strike的商業(yè)版,集成了服務(wù)掃描、自動(dòng)化溢出、多模式端口監(jiān)聽(tīng)、多種木馬生成方式(dll木馬、內(nèi)存木馬、office宏病毒和Beacon通信木馬等)、釣魚(yú)攻擊、站點(diǎn)克隆、目標(biāo)信息獲取,瀏覽器自動(dòng)攻擊等。
我們將模塊1與使用Beacon生成的Payload進(jìn)行比較,發(fā)現(xiàn)只有三處數(shù)據(jù)不同,分別為:Get請(qǐng)求時(shí)所發(fā)送的Head數(shù)據(jù)、請(qǐng)求的文件名稱(chēng)和IP地址。
左側(cè)為樣本模塊1,右側(cè)為由Beacon所生成的模塊,從圖中對(duì)比來(lái)看,可以得出結(jié)論,模塊1是由Beacon所生成。
在請(qǐng)求時(shí)的數(shù)據(jù)包截圖如下:
分析人員將樣本的模塊2與Beacon相關(guān)的文件進(jìn)行比較,發(fā)現(xiàn)兩者的反匯編指令除了功能代碼不同之外,其它指令完全一致,包括入口處的異或解密、加載系統(tǒng)DLL、獲取函數(shù)地址、函數(shù)調(diào)用方式等,下面列舉三處:
下面是樣本模塊3與Beacon所生成模塊的Get請(qǐng)求比較,可以看出,兩者都是使用Cookie來(lái)傳輸信息,該信息進(jìn)行了加密,每間隔60秒主動(dòng)發(fā)送請(qǐng)求,該數(shù)據(jù)為上線包/心跳包。
利用Cobalt Strike的攻擊可以在目標(biāo)系統(tǒng)中執(zhí)行多種操作,如:下載文件、上傳文件、執(zhí)行指定程序、注入鍵盤(pán)記錄器、通過(guò)PowerShell執(zhí)行命令、導(dǎo)入PowerShell腳本、通過(guò)CMD執(zhí)行命令、利用mimikatz抓取系統(tǒng)密碼等。
Cobalt Strike具有以下特點(diǎn):
使用自動(dòng)化攻擊測(cè)試平臺(tái)Cobalt Strike進(jìn)行攻擊滲透方式具有穿透防火墻的能力,其控制目標(biāo)主機(jī)的方式非常隱蔽,難以被發(fā)現(xiàn);同時(shí)具備攻擊多種平臺(tái),如Windows、Linux、Mac等;同時(shí)與可信計(jì)算環(huán)境、云檢測(cè)、沙箱檢測(cè)等安全環(huán)節(jié)和手段均有對(duì)抗能力。從安天過(guò)去的跟蹤來(lái)看,這種威脅已經(jīng)存在近五年之久,但依然缺乏有效檢測(cè)類(lèi)似威脅的產(chǎn)品和手段。
安天CERT分析小組之所以將APT-TOCS事件定位為準(zhǔn)APT事件,是因?yàn)樵摴羰录环矫娣螦PT攻擊針對(duì)高度定向目標(biāo)作業(yè)的特點(diǎn),同時(shí)隱蔽性較強(qiáng)、具有多種反偵測(cè)手段。但同時(shí),與我們過(guò)去所熟悉的很多APT事件中,進(jìn)攻方具備極高的成本承擔(dān)能力與巨大的能力儲(chǔ)備不同,其成本門(mén)檻并不高,事件的惡意代碼并非由攻擊者自身進(jìn)行編寫(xiě)構(gòu)造,商業(yè)攻擊平臺(tái)使事件的攻擊者不再需要高昂的惡意代碼的開(kāi)發(fā)成本,相關(guān)攻擊平臺(tái)亦為攻擊者提供了大量可選注入手段,為惡意代碼的加載和持久化提供了配套方法,這種方式降低了攻擊的成本,使得缺少雄厚資金、也沒(méi)有精英黑客的國(guó)家和組織依托現(xiàn)有商業(yè)攻擊平臺(tái)提供的服務(wù)即可進(jìn)行接近APT級(jí)攻擊水準(zhǔn),而這種高度”模式化”攻擊也會(huì)讓攻擊缺少鮮明的基因特點(diǎn),從而更難追溯。
我們不僅要再次引用信息安全前輩Bruce Schiner的觀點(diǎn)”一些重大的信息安全攻擊事件時(shí),都認(rèn)為它們是網(wǎng)絡(luò)戰(zhàn)的例子。我認(rèn)為這是無(wú)稽之談。我認(rèn)為目前正在發(fā)生而且真正重要的趨勢(shì)是:越來(lái)越多戰(zhàn)爭(zhēng)中的戰(zhàn)術(shù)行為擴(kuò)散到更廣泛的網(wǎng)絡(luò)空間環(huán)境中,這一點(diǎn)非常重要。通過(guò)技術(shù)可以實(shí)現(xiàn)能力的傳播,特別是計(jì)算機(jī)技術(shù)可以使攻擊行為和攻擊能力變得自動(dòng)化。”顯然,高度自動(dòng)化的商業(yè)攻擊平臺(tái)使這種能力擴(kuò)散速度已經(jīng)超出了我們的預(yù)測(cè)。
我們需要提醒各方關(guān)注的是,鑒于網(wǎng)絡(luò)攻擊技術(shù)具有極低的復(fù)制成本的特點(diǎn),當(dāng)前已經(jīng)存在嚴(yán)峻的網(wǎng)絡(luò)軍備擴(kuò)散風(fēng)險(xiǎn)。商業(yè)滲透攻擊測(cè)試平臺(tái)的出現(xiàn),一方面成為高效檢驗(yàn)系統(tǒng)安全的有利工具,但對(duì)于缺少足夠的安全預(yù)算、難以承擔(dān)更多安全成本的國(guó)家、行業(yè)和機(jī)構(gòu)來(lái)說(shuō),會(huì)成為一場(chǎng)噩夢(mèng)。在這個(gè)問(wèn)題上,一方面需要各方面建立更多的溝通和共識(shí);而另一方面毫無(wú)疑問(wèn)的是當(dāng)前在攻防兩端均擁有全球最頂級(jí)能力的超級(jí)大國(guó),對(duì)于有效控制這種武器級(jí)攻擊手段的擴(kuò)散,應(yīng)該擔(dān)負(fù)起更多的責(zé)任。
同時(shí),APT-TOCS與我們之前所發(fā)現(xiàn)的諸多事件一樣,體現(xiàn)了一個(gè)擁有十三億人口、正在進(jìn)行大規(guī)模信息化建設(shè)的國(guó)家,所面對(duì)的嚴(yán)峻的網(wǎng)絡(luò)安全挑戰(zhàn);當(dāng)然,也見(jiàn)證著中國(guó)用戶與安全企業(yè)為應(yīng)對(duì)這種挑戰(zhàn)所做的努力。