<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/6332

            作者:安天

            微信公眾號:Antiylab

            博文地址:http://www.antiy.com/response/APT-TOCS.html

            0x00 背景


            安天近期發現一例針對中國政府機構的準APT攻擊事件,在攻擊場景中,攻擊者依托自動化攻擊測試平臺Cobalt Strike生成的、使用信標(Beacon)模式進行通信的Shellcode,實現了對目標主機進行遠程控制的能力。這種攻擊模式在目標主機中體現為:無惡意代碼實體文件、每60秒發送一次網絡心跳數據包、使用Cookie字段發送數據信息等行為,這些行為在一定程度上可以躲避主機安全防護檢測軟件的查殺與防火墻的攔截。鑒于這個攻擊與Cobalt Strike平臺的關系,我們暫時將這一攻擊事件命名為APT-TOCS(TOCS,取Threat on Cobalt Strike之意。)

            APT-TOCS這一個攻擊的核心步驟是:加載Shellcode的腳本功能,通過命令行調用powershell.exe將一段加密數據加載到內存中執行。解密后的數據是一段可執行的Shellcode,該Shellcode由Cobalt Strike(一個自動化攻擊測試平臺)所生成。安天分析小組根據加載Shellcode的腳本進行了關聯,亦關聯出一個可能在類似攻擊中的作為腳本前導執行文件的PE程序,但由于相關腳本可以通過多種方式來執行,并不必然依賴前導PE程序加載,且其是Cobalt Strike所生成的標準攻擊腳本,因此無法判定該前導PE文件與本例攻擊的關聯。

            這種基于腳本+Shellcode的方式注入內存執行沒有硬盤寫入操作,使用信標(Beacon)模式進行通信,支持多信標通信,可以同時和多個信標工作。這種攻擊方式可以不依賴載體文件進行攻擊,而可以依靠網絡投放能力和內網橫向移動按需投放,這將會給取證工作帶來極大的困難,而且目前的一些沙箱檢測產品也對這種攻擊無效。

            APT-TOCS攻擊盡管看起來已經接近APT水準的攻擊能力,但并非更多依賴攻擊團隊自身的能力,而是依托商業的自動化攻擊測試平臺來達成。

            0x01 事件樣本分析


            2.1 前導文件與樣本加載


            APT-TOCS是利用了"powershell.exe"執行Shellcode的腳本實現對目標系統的遠程控制。安天分析人員認為攻擊者掌握較多種最終可以達成多種腳本加載權限的遠程注入手段,如利用安全缺陷或漏洞直接實現腳本在主機上執行。同時,通過關聯分析,發現如下的二進制攻擊前導文件(以下簡稱Sample A),曾被用于類似攻擊:

            病毒名稱 Trojan/Win32.MSShell
            
            原始文件名 ab.exe
            
            MD5 44BCF2DD262F12222ADEAB6F59B2975B
            
            處理器架構 X86
            
            文件大小 72.0 KB (73,802 字節)
            
            文件格式 BinExecute/Microsoft.EXE[:X86]
            
            時間戳 2009-05-10 07:02:12
            
            數字簽名 NO
            
            加殼類型 未知
            
            編譯語言 Microsoft Visual C++
            

            該PE樣本中嵌入的腳本,與安天獲取到的Shellcode腳本功能代碼完全相同,但加密數據存在差異,該PE樣本曾在2015年5月2日被首次上傳到Virustotal。

            enter image description here

            圖1 PE文件內嵌的使用powershell.exe加載加密數據

            該PE樣本使用WinExec運行嵌入的惡意代碼:

            enter image description here

            圖2使用WinExec函數調用powershell.exe加載加密數據

            由此可以初步看到,這一"前導文件"可以被作為類似攻擊的前導,依托系統和應用漏洞,不依賴類似文件,依然可以實現腳本的執行與最終的控制。 從目前來看,并不能確定這一前導樣本與本起APT事件具有關聯關系。

            2.2 關鍵機理


            APT-TOCS攻擊遠控的核心部分是依托PowerShell加載的加密數據腳本(以下簡稱Sample_B),圖1為腳本各模塊之間的衍生關系和模塊主要功能:

            enter image description here

            2.3 APT-TOCS的主樣本(SampleB)分析


            Sample B文件的內容(base64的內容已經省略)如下:

            enter image description here

            圖4 Sample B的內容

            該部分腳本的功能是:將base64加密過的內容進行解密,再使用Gzip進行解壓縮,得到模塊1,并使用PowerShell來加載執行。

            2.4 腳本1分析


            腳本1的內容(base64的內容已經省略)如下:

            enter image description here

            圖5腳本1的內容

            此部分內容的功能是將經過base64加密的數據解密,得到模塊1,寫入到powershell.exe進程內,然后調用執行。

            2.5 模塊1分析


            該模塊的主要功能是調用wininet模塊的函數,進行連接網絡,下載模塊2的操作;并加載到內存中執行。

            enter image description here

            圖6HTTP GET請求

            上圖為使用HTTPGET請求,獲取文件:http://146.0../hfYn。

            2.6 模塊2分析


            模塊2創建并掛起系統進程rundll32.exe:

            enter image description here

            圖7創建掛起系統進程rundll32.exe

            寫入模塊3的數據:

            enter image description here

            圖8寫入模塊3的數據

            模塊3的數據雖然是以"MZ"開頭,但并非為PE文件,而是具有后門功能的Shellcode。

            enter image description here

            圖9以MZ(4D 5A)開頭的Shellcode

            2.7 模塊3分析


            該模塊會連接兩個地址,端口號為80:

            146.0.***.***   (羅馬尼亞) 
            
            dc.******69.info (146.0.***.***)    (羅馬尼亞)
            

            發送請求數據,接收返回數據。

            enter image description here

            圖10發送請求數據

            上述IP、域名和訪問地址的解密方式是"異或0x69"。 從該模塊的字符串與所調用的系統函數來判斷,該模塊為后門程序,會主動向指定的地址發送GET請求,使用Cookie字段來發送心跳包,間隔時間為60秒。心跳包數據包括校驗碼、進程ID、系統版本、IP地址、計算機名、用戶名、是否為64位進程,并將該數據使用RSA、BASE64加密及編碼。

            enter image description here

            圖11心跳包原始數據

            由于進程ID與校驗碼的不同,導致每次傳輸的心跳包數據不相同。校驗碼是使用進程ID和系統開機啟動所經過的毫秒數進程計算得出的。算法如下:

            enter image description here

            圖12校驗碼算法

            加密后的心跳包使用Cookie字段進行傳輸:

            enter image description here

            圖13數據包內容

            0x03 攻擊技術來源的驗證分析


            安天CERT分析人員關聯的PE前導文件Sample_A和Sample B利用PowerShell的方法和完全相同,但正應為相關腳本高度的標準化,并不排除Sample_A與本次攻擊沒有必然聯系。而基于其他的情況綜合分析,我們依然判斷是一個系列化的攻擊事件,攻擊者可能采用了社工郵件、文件捆綁、系統和應用漏洞利用、內網橫向移動等方式實現對目標主機的控制。

            而在分析"模塊1"時,我們發現了"Beacon"等字符串,依托過往分析經驗,懷疑該Shellcode與自動化攻擊測試平臺Cobalt Strike密切相關。于是,分析人員對使用Cobalt Strike生成的Beacon進行對比分析,驗證兩者之間的關系。 Cobalt Strike 是一款以metasploit(一個滲透測試平臺)為基礎的GUI的框架式滲透工具,Cobalt Strike的商業版,集成了服務掃描、自動化溢出、多模式端口監聽、多種木馬生成方式(dll木馬、內存木馬、office宏病毒和Beacon通信木馬等)、釣魚攻擊、站點克隆、目標信息獲取,瀏覽器自動攻擊等。

            3.1 模塊1比較


            我們將模塊1與使用Beacon生成的Payload進行比較,發現只有三處數據不同,分別為:Get請求時所發送的Head數據、請求的文件名稱和IP地址。

            enter image description here

            圖14模塊1對比

            左側為樣本模塊1,右側為由Beacon所生成的模塊,從圖中對比來看,可以得出結論,模塊1是由Beacon所生成。 在請求時的數據包截圖如下:

            enter image description here

            圖15模塊1發包數據對比

            3.2 模塊2反匯編指令比較


            分析人員將樣本的模塊2與Beacon相關的文件進行比較,發現兩者的反匯編指令除了功能代碼不同之外,其它指令完全一致,包括入口處的異或解密、加載系統DLL、獲取函數地址、函數調用方式等,下面列舉三處:

            樣本模塊2

            enter image description here

            Beacon相關文件

            enter image description here

            入口處異或解密(使用x86/shikata_ga_nai變形)

            enter image description here

            enter image description here

            解密后入口處代碼

            enter image description here

            enter image description here

            函數調用

            3.3 模塊3數據包對比分析


            下面是樣本模塊3與Beacon所生成模塊的Get請求比較,可以看出,兩者都是使用Cookie來傳輸信息,該信息進行了加密,每間隔60秒主動發送請求,該數據為上線包/心跳包。

            enter image description here

            圖16模塊3數據包對比

            3.4 Cobalt Strike特點


            利用Cobalt Strike的攻擊可以在目標系統中執行多種操作,如:下載文件、上傳文件、執行指定程序、注入鍵盤記錄器、通過PowerShell執行命令、導入PowerShell腳本、通過CMD執行命令、利用mimikatz抓取系統密碼等。 Cobalt Strike具有以下特點:

            0x04 總結


            使用自動化攻擊測試平臺Cobalt Strike進行攻擊滲透方式具有穿透防火墻的能力,其控制目標主機的方式非常隱蔽,難以被發現;同時具備攻擊多種平臺,如Windows、Linux、Mac等;同時與可信計算環境、云檢測、沙箱檢測等安全環節和手段均有對抗能力。從安天過去的跟蹤來看,這種威脅已經存在近五年之久,但依然卻缺乏有效檢測類似威脅的產品和手段。

            安天CERT分析小組之所以將APT-TOCS事件定位為準APT事件,是因為該攻擊事件一方面符合APT攻擊針對高度定向目標作業的特點,同時隱蔽性較強、具有多種反偵測手段。但同時,與我們過去所熟悉的很多APT事件中,進攻方具備極高的成本承擔能力與巨大的能力儲備不同,其成本門檻并不高,事件的惡意代碼并非由攻擊者自身進行編寫構造,商業攻擊平臺使事件的攻擊者不再需要高昂的惡意代碼的開發成本,相關攻擊平臺亦為攻擊者提供了大量可選注入手段,為惡意代碼的加載和持久化提供了配套方法,這種方式降低了攻擊的成本,使得缺少雄厚資金、也沒有精英黑客的國家和組織依托現即有商業攻擊平臺提供的服務即可進行接近APT級攻擊水準,而這種高度"模式化"攻擊也會讓攻擊缺少鮮明的基因特點,從而更難追溯。

            我們不僅要再次引用信息安全前輩Bruce Schiner的觀點"一些重大的信息安全攻擊事件時,都認為它們是網絡戰的例子。我認為這是無稽之談。我認為目前正在發生而且真正重要的趨勢是:越來越多戰爭中的戰術行為擴散到更廣泛的網絡空間環境中。這一點非常重要。通過技術可以實現能力的傳播,特別是計算機技術可以使攻擊行為和攻擊能力變得自動化。"顯然,高度自動化的商業攻擊平臺使這種能力擴散速度已經超出了我們的預測。

            我們需要提醒各方關注的是,鑒于網絡攻擊技術具有極低的復制成本的特點,當前已經存在嚴峻的網絡軍備擴散風險。商業滲透攻擊測試平臺的出現,一方面成為高效檢驗系統安全的有利工具,但對于缺少足夠的安全預算、難以承擔更多安全成本的國家、行業和機構來說,會成為一場噩夢。在這個問題上,一方面需要各方面建立更多的溝通和共識;而另一方面毫無疑問的是當前在攻防兩端均擁有全球最頂級能力的超級大國,對于有效控制這種武器級攻擊手段的擴散,應該負起更多的責任。

            同時,APT-TOCS與我們之前所發現的諸多事件一樣,體現了一個擁有十三億人口、正在進行大規模信息化建設的國家,所面對的嚴峻的網絡安全挑戰;當然,也見證著中國用戶與安全企業為應對這種挑戰所做的努力。

            附錄一:關于Cobalt Strike及其作者的參考資料


            Cobalt Strike是Armitage的商業版本。Armitage是一款Java寫的Metasploit圖形界面的滲透測試軟件,可以用它結合Metasploit已知的exploit來針對存在的漏洞自動化攻擊。bt5、kali linx下集成免費版本Armitage,最強大的功能是多了個Beacon的Payload。

            enter image description here

            Cobalt Strike作者:Raphael Mudge(美國),他是Strategic Cyber LLC(戰略網絡有限責任公司)創始人,基于華盛頓的公司為RED TEAM開發軟件,他為Metaslpoit創造了Armitage,sleep程序語言和IRC客戶端jIRCii。此前作為美國空軍的安全研究員,滲透實驗的測試者。他設置發明了一個語法檢測器賣給了Automattic。發表多篇文章,定期進行安全話題的演講。給許多網絡防御競賽提供RED TEAM,參加2012-2014年黑客大會。

            enter image description here

            教育背景:Syracuse University 美國雪城大學,密歇根科技大學

            目前就職:Strategic Cyber LLC(戰略網絡有限責任公司);特拉華州空軍國民警衛隊

            技能:軟件開發信息安全面向對象的設計分布式系統圖形界面計算機網絡設計博客系統社會工程學安全研究等等

            enter image description here

            支持的組織機構:

            大學網絡防御競賽(CCDC)
            東北North East CCDC 2008-2015
            東部地區Mid Atlantic CCDC 2011-2015
            環太平洋Pacific Rim CCDC 2012, 2014
            東南South East CCDC - 2014
            西部Western Regional CCDC - 2013
            國家National CCDC 2012-2014
            

            所做項目:

            Sleep腳本語言(可擴展的通用語言,使用受JAVA平臺啟發的Perl語言)sleep是開源的,受LGPL許可。
            jIRCii(可編寫腳本的多人在線聊天系統客戶端,Windows, MacOS X, and Linux平臺,開源)
            

            出版作品:

            《使用Armitage 和Metasploit的實彈安全測試(Live-fire Security Testing with Armitage and Metasploit)》linux雜志
            《通過后門入侵:使用Armitage的實施漏洞利用》(Get in through the backdoor: Post exploitation with Armitage)Hakin9雜志
            《教程:用Armitage進行黑客攻擊Linux》(Tutorial: Hacking Linux with Armitage)ethicalhacker.net
            《校對軟件服務設計》(The Design of a Proofreading Software Service)NAACL HLT2010計算機的語言學和寫作研討會
            《基于代理的流量生成》(Agent-based Traffic Generation)Hakin9雜志等
            

            貢獻:

            cortana-scripts
            metasploit-loader
            malleable-c2-profiles
            layer2-privoting-client
            armitage
            項目:
            商業合資企業類
            After the Deadline 
            Feedback Army 
            Cobalt Strike
            開源軟件
            Armitage
            Far East 
            jIRCii
            Moconti
            One Hand Army Man s
            phPERL Same Game
            Sleep
            

            信息參考鏈接:

            https://plus.google.com/116899857642591292745/posts (google+)
            https://github.com/rsmudge (GitHub)
            https://www.youtube.com/channel/UCJU2r634VNPeCRug7Y7qdcw (youtube)
            http://www.oldschoolirc.com/
            https://twitter.com/rsmudge
            http://www.hick.org/~raffi/index.html 
            http://www.blackhat.com/html/bh-us-12/speakers/Raphael-Mudge.html
            http://www.linkedin.com/in/rsmudge
            

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线