APT戰(zhàn)爭中腳本攻擊的兵法之道
有一天,安妹兒做了一個可怕的夢……
這是一起由FIN7組織發(fā)起的APT攻擊。APT-C-11(Carbanak、FIN7)攻擊組織是一個跨國網(wǎng)絡(luò)犯罪團伙。2013年起,該犯罪團伙總計向全球約30個國家和地區(qū)的100家銀行、電子支付系統(tǒng)和其他金融機構(gòu)發(fā)動了攻擊。
此次攻擊中,攻擊者把OLE對象圖標設(shè)置為透明并放置到誘導圖片對象的上層,當用戶雙擊圖片實際點擊的是vbs腳本圖標!此詭計正是《孫子兵法》中所言:無形,則深間不能窺,智者不能謀。
安妹兒一下從夢中驚醒,“還好是一場夢呀,但是這樣的攻擊每天都在發(fā)生……”
曾今
APT-C-35組織利用vba宏腳本,使用完整的誘餌文檔誘騙目標,導致多個商務(wù)人士辦公設(shè)備淪陷。
APT-C-06組織利用vbs腳本漏洞觸發(fā)shellcode,使用powershell腳本安裝后門,導致某機構(gòu)中招。
APT-C-12組織在LNK文件中設(shè)下圈套,利用powershell腳本竊取電腦敏感文件。
… … 等等
發(fā)現(xiàn)越來越多的黑客更加傾向于在APT(Advanced Persistent Threat)攻擊中利用可執(zhí)行腳本進行惡意攻擊。
【腳本攻擊特點】
可執(zhí)行腳本(主要包括但不限于vbs、js、powershell、vba、bat等類型)為何被APT組織頻繁使用呢?
1.環(huán)境適應(yīng)性強。
APT攻擊中利用的腳本一般不需要考慮環(huán)境、版本差異,基本可以依賴宿主系統(tǒng)自帶的組件執(zhí)行。比如vbs腳本,系統(tǒng)默認會調(diào)用wscript組件解析執(zhí)行。
2.隱蔽性高。
攻擊腳本能夠以非磁盤文件的方式在系統(tǒng)中駐留,增強了自身的隱蔽性。比如APT29攻擊組織曾使用系統(tǒng)提供的WMI(Windows Management Instrumentation)功能和powershell腳本相結(jié)合的方式來實現(xiàn)本地無文件的持久化后門。
3.腳本語言靈活性高,功能多樣,靜態(tài)檢測難度大。
腳本語言類型眾多且靈活性高,既能實現(xiàn)跟PE一樣的各種功能,比如文件下載、RAT等,又能疊加復雜的加密、混淆,導致殺毒引擎的靜態(tài)查殺難度大。
4.腳本開發(fā)成本和周期短,開源項目的利用門檻低。
腳本文件可讀性高,開源攻擊腳本項目眾多,有些只需要更改腳本的遠控C&C,混淆后就可以投遞。摩柯草組織就曾使用過開源的Invoke-Shellcode.ps1腳本進行攻擊。
5.攻擊腳本投放形式多樣。
攻擊腳本(js、vbs、powershell)既可以直接運行,也可以嵌入網(wǎng)頁、lnk文件、Office文檔載體中運行。APT攻擊者特別喜歡將vba宏代碼嵌入Office文檔中,再精心構(gòu)造文檔名,結(jié)合魚叉或水坑等攻擊方式進行傳播,極具欺騙性,很多用戶中招。
6.用戶對腳本攻擊的防范意識差。
用戶通常對可執(zhí)行程序的防范意識較強,但是對于腳本攻擊卻知之甚少。在運行諸如sct、ps1等惡意腳本時,用戶往往不會產(chǎn)生警惕心理,很容易中招。
孫子曰:“知己知彼,百戰(zhàn)不殆”。鑒于越來越多的APT組織選擇腳本來作為攻擊載荷,360安全大腦總結(jié)出幾種APT戰(zhàn)爭中使用腳本的經(jīng)典“兵法”。
【攻守相輔,進退自如】
APT-C-17攻擊行動最早可以追溯到2013年1月,主要針對航空航天領(lǐng)域,目的是竊取目標用戶敏感數(shù)據(jù)信息。
下圖為APT-C-17攻擊行動中下載的某個腳本文件的部分內(nèi)容:
其實下載的完整腳本主要包括兩部分類型,一是js腳本,內(nèi)容為加密后的PE;二是vbs腳本,這部分內(nèi)容主要是通過解密js腳本中的數(shù)據(jù)寫入注冊表,后調(diào)用powershell解密為數(shù)據(jù)文件cmpbk32.dll、cliconfig32,然后通過系統(tǒng)程序cmdl32.exe加載cmpbk32.dll,該dll會加載cliconfig32,最終加載的cliconfig32為蠕蟲病毒。
腳本文件除了攻擊動作以外,還實現(xiàn)了防御功能。其在調(diào)用powershell執(zhí)行解密操作時,會檢測是否存在”360Tray”進程,比較有意思的是,它只檢測了360,沒有檢測其他殺軟了。
【攻其無備,出其不意】
黃金鼠組織(APT-C-27)從2014年11月開始針對敘利亞進行了長時間的攻擊,在攻擊后期使用了大量的vbs/js腳本,并且腳本經(jīng)過大量混淆,需要多次進行解密。下圖為其中一個vbs腳本的部分代碼。
將代碼去混淆解密后,得到主要代碼。
該vbs腳本主要功能是與C&C進行通信,不再是簡單的下載文件,而是具備完整的后門功能。PE文件的執(zhí)行權(quán)限被殺毒軟件嚴防死守,采用純腳本實現(xiàn)與PE一樣的遠控功能,獨辟蹊徑,出其不意。
【兵貴神速,以快制勝】
海蓮花(APT-C-00)組織主要針對中國政府、科研院所和海事機構(gòu)等重要領(lǐng)域發(fā)起攻擊。相關(guān)攻擊行動最早可以追溯到2011年,期間不僅針對中國,同時還針對其他國家發(fā)起攻擊。該組織大量使用水坑式攻擊和魚叉式釣魚郵件攻擊,攻擊不限于Windows系統(tǒng),還針對其他非Windows操作系統(tǒng),相關(guān)攻擊至今還非?;钴S。該組織也善于使用powershell代碼。
該組織使用的某powershell代碼是開源的項目DKMC的一部分exec-sc.ps1。
該腳本利用powershell提供的機制調(diào)用Win32 API來完成shellcode的加載執(zhí)行。
①首先獲取Microsoft.Win32.UnsafeNativeMethods類,通過該類的GetMethod方法獲取GetProcAddress函數(shù)并進一步獲取特定Dll中的特定函數(shù)。
②通過System.Runtime.InteropServices調(diào)用通過①獲取的Win32函數(shù)來實現(xiàn)shellcode的加載及執(zhí)行。
而且該腳本根據(jù)指針大小為4還是8來判斷操作系統(tǒng)是32位還是64位,方便進行適配。
只需替換該項目的shellcode,然后混淆進行投遞即可。兵貴神速,開源腳本項目經(jīng)過簡單的修改就可以投入使用,從而大大縮短攻擊樣本的開發(fā)成本和周期,可以快速出擊,借勢成事。
【兵無常勢,因敵而變】
APT-C-20組織,又稱Pawn Storm、Sofacy、Sednit、FancyBear和Strontium(中文通常會翻譯成魔幻熊)。該組織相關(guān)攻擊時間最早可以追溯到2007年,主要目標包括國防工業(yè)、軍隊、政府組織和媒體,被懷疑和俄羅斯政府有關(guān),在APT 28攻擊過程中,會使用大量0day漏洞,其所使用的惡意代碼除了針對Windows、Linux等PC操作系統(tǒng),還會針對蘋果iOS等移動設(shè)備操作系統(tǒng)。近年來,該組織也常使用加密vba宏代碼進行攻擊。
如下是APT-C-20組織利用惡意vba腳本進行攻擊,通過釣魚郵件攜帶附件的方式進行傳播。打開附件會看到宏代碼被禁用(這里每個用戶設(shè)置不一樣會有所區(qū)別),如若點擊選項中的“啟用此內(nèi)容”,電腦就會執(zhí)行宏代碼。
但是分析宏代碼時,發(fā)現(xiàn)宏代碼會加密保護,如下圖所示:
加密保護的宏代碼,可以使用開源軟件OLEtools目錄中的OLEvba3進行解密。
解密后腳本的主要功能是從表格中取出加密的PE文件,然后加載執(zhí)行最終的RAT載荷。
特別需要注意的是Office軟件的宏功能在macOS上也能良好運作。360安全大腦曾捕獲到跨平臺攻擊樣本“雙子星”,該樣本使用宏內(nèi)建的預定義語法兼容了Windows和macOS兩種操作系統(tǒng)。相較于直接執(zhí)行各類腳本進行攻擊,將腳本嵌入載體投放的攻擊方式則更具變化性的和欺騙性。依據(jù)攻擊目標,選取不同的載體,不同的腳本,不同的場景,千變?nèi)f化,防不勝防。
【防御建議】
道路千萬條,安全第一條。防御不到位,親人兩行淚。
面對有高深謀略的APT腳本攻擊,廣大用戶除了需要提高對腳本攻擊的防御意識,更要掌握好360安全大腦給出的幾條實用“錦囊妙計”:
第一計:不要隨便打開陌生人發(fā)來的郵件中的文檔;
第二計:安裝360安全衛(wèi)士;
第三計:及時更新系統(tǒng)和瀏覽器補丁;
第四計:文件顯示后綴(具體步驟:我的電腦→“組織”菜單下拉選項→“文件夾和搜索”選項→“查看”選項卡→取消勾選“隱藏已知文件類型的擴展名”);
第五計:Outlook軟件關(guān)閉附件預覽功能;
第六計:Office不要設(shè)置默認允許所有宏代碼執(zhí)行。
本文經(jīng)安全客授權(quán)發(fā)布,轉(zhuǎn)載請聯(lián)系安全客平臺。