作者:啟明星辰ADLab
原文鏈接:https://mp.weixin.qq.com/s/o_EVjBVN2sQ1q7cl4rUXoQ
一、概述
2021年以來,啟明星辰ADLab追蹤到多起以軍隊事務和移動運營商業務為話題的定向攻擊活動。攻擊者偽裝成為軍事部門以軍隊內部事務如海軍戰艦就緒清單、某軍官解雇令為誘餌對目標發起定向攻擊并植入木馬,同時也常常偽裝成為一些國家的重要企業以招聘人員為由攻擊目標。我們通過對攻擊目標、入侵技術特點、代碼同源性等因素進行比對分析后,確認此批攻擊來源于APT34組織。APT34組織2019年的武器庫泄露事件中曾暴露出其控制的Exchange服務器的webshell列表,這些列表中包含了十多家被黑客成功滲透過的中國企業和機構。
APT34首次被披露于2016年,是一個來自于伊朗的APT組織,其最早活躍時間可追溯到2014年,攻擊目標主要集中在中東及亞洲地區,涉及金融、政府、能源、化工、電信等行業。APT34善于采用通信隱匿技術來規避檢測和追蹤,比如:通過Exchange Web Services (EWS) API實現高可信度、高隱匿性的“EWS隧道技術”。
APT34在此次活動中做了大量的技術改進和升級,其中大部分都是以提高攻擊的匿名性、隱蔽性、可控性和安全性為目的,防止被檢測和追蹤。比如APT34在本次攻擊中,首次利用預攻擊誘餌文檔關閉宏提示;首次使用“匿名DNS隧道技術”,借助公共服務商RequestBin提供的匿名DNS服務,隱匿的上報設備指紋信息和感染進度;升級Karkoff后門,優化了“EWS隧道技術”,提高了基于EWS通信的內容安全,如基于EWS隧道利用RSA和AES算法對控制指令進行加密、提高了郵件載體的迷惑性以及利用竊取的EWS賬號作為控制命令服務器等等手段以掩人耳目;首次使用JS代碼注釋作為控制通道,將控制指令加密隱藏于Javascript的注釋中,使得控制命令的下發難以檢測等等。
此外,本次攻擊活動中,黑客還將竊取的黎巴嫩軍方和移動運營商賬戶作為本次攻擊的控制命令服務器,而APT34為了進一步的隱蔽自身,長期對Exchange服務進行攻擊掃描,控制大量國家重要機構和企業的Exchange服務器,同時從這些服務器上竊取了相關的登錄憑證,進而利用Exchange服務作為控制端服務器從事間諜活動。
本文將對APT34的本次攻擊活動進行深入的分析和探討,首先簡要介紹該組織的歷史活動,然后對其攻擊手法,所使用的新的基礎設施,以及本次攻擊所采用的新技術進行分析,最后對攻擊過程中所使用的后門以及相關的技術細節進行深入分析。
二、組織分析
長期以來,APT34廣泛地在全球進行網絡攻擊,收集重要的網絡攻擊資源,包括各種登錄憑證,匿名資源,隱蔽通道,然后整合這些資源對某些特定的目標發起定向攻擊,本節將重點分析該組織在本次攻擊活動中所使用的技術和資源。
2.1 歷史攻擊活動
為了對APT34在此次攻擊活動中使用的策略和技術進行全面了解,啟明星辰ADLab結合該組織近期和歷史主要活動進行梳理總結,繪制了APT34活動時間線(如圖2-1)。從時間線可以看出,APT34的攻擊目標主要集中在中東地區,其定制了大量的網絡武器,且攻擊武器持續升級,攻擊手法也在不斷推陳出新。從攻擊入口來看,主要采用魚叉式釣魚郵件、社工釣魚、NDAY漏洞等方式實施組合攻擊。在隱匿通信技術使用上,APT34歷次的攻擊活動普遍具有一致性——通用手段是借助HTTP隧道和DNS隧道進行流量隱匿。近期則更多的采用了高可信度、高隱匿性的EWS隧道技術來繞過安全檢測。
APT34(OilRig)于2016年首次被Palo Alto Networks發現,其最早的攻擊活動可追溯到2014年。自該黑客組織活躍開始,其每年都會針對中東地區的金融、政府、能源、化工、電信等重要行業實施網絡攻擊。2016年5月,首次被發現通過魚叉式釣魚郵件針對沙特阿拉伯金融機構發動攻擊,使用了基于HTTP和DNS通信的木馬Helminth。2017年8月開始利用最新的Office Nday漏洞CVE-2017-0199和CVE-2017-11882針對中東地區的政府機構實施釣魚攻擊,涉及木馬POWRUNER 和BONDUPDATE。2018年則持續針對中東各國的政府機構進行攻擊,后門為基于Powershell的變種木馬BONDUPDATE。2019年6月開始,疑似由APT34與Hive0081組織協作開發的新型惡意數據擦除軟件ZeroCleare被用于執行破壞性攻擊,影響到中東地區多個能源和工業部門的組織,約1400臺設備遭感染。2019年7月,偽裝成劍橋大學“研究人員”,通過LinkedIn(領英)分發惡意文件并進行網絡釣魚,使用了三類新型惡意軟件TONEDEAF、VALUEVAULT和LONGWATCH。2020年4月,在針對中東電信組織的攻擊中新穎的使用了基于EWS API的隧道通信技術(郵箱作為C&C),可將控制指令隱寫在電子郵件的圖像附件中傳輸,關聯木馬RDAT、Karkoff。2020年5月,在網絡攻擊中使用DNS-over-HTTPS(DoH)協議,也是首批部署DoH的APT組織之一。2021年1月至4月,繼續針對中東地區實施攻擊,通過公共服務商RequestBin提供的DNS隧道服務上傳信息,同時采用EWS API隧道和HTTP隧道的方式隱匿通信,本文也將重點分析最新攻擊活動中涉及的木馬變種KarkoffDll和SideTwist。
2.2 攻擊手法
在此次攻擊活動中,APT34主要采用Word誘餌文檔作為攻擊入口,結合竊取的Exchange賬號完成組合入侵。基于文檔內容、語言、C&C(黑客竊取的郵件賬戶)所屬區域,可以判斷是針對中東地區的定向攻擊(主要目標為黎巴嫩,還可能包括沙特阿拉伯、科威特和阿聯酋等)。攻擊文檔偽裝成“黎巴嫩海軍戰艦就緒清單”、“Ntiva公司的招聘信息”(美國IT服務商)、“解雇令”等內容,并在文檔正文中添加誘導性描述以誘使目標啟用惡意宏代碼,從而植入后門程序。值得注意的是,一些攻擊樣本內置了黎巴嫩政府、移動運營商的Exchange郵箱賬戶登陸憑證。相關賬戶在遭到攻擊者的入侵后,被用于以EWS API協議的方式傳輸惡意流量。可以推測攻擊者在先期準備階段已成功入侵了有關組織或與其具有信任關系的郵件賬戶,并借高可信Exchange服務器為信任節點中轉通信,隱藏惡意行為。我們將此次攻擊的手法總結如圖2-2所示。
攻擊活動中使用的誘餌文檔如下:



2.3 基礎設施分析
在本攻擊事件中,黑客使用了更多類型的基礎設施。通過對該批攻擊樣本回連的數據進行收集和分析,我們將本次攻擊的基礎上設施分為三類,包含基于DNS協議的攻擊活動上報設施、基于EWS的控制命令設施和基于HTTP/HTTPS協議的控制命令設施。
- 1)DNS隱匿通信設施
這一部分設施是基于公開的DNSBin服務部署的子域服務,主要用于通知黑客目標已經中招以便進行下一步的攻擊。攻擊者利用公共服務商Requsetbin提供的DNS隧道服務,接收從受害者設備上傳的相關信息。表2-1為該組織在此次攻擊活動中所使用的部分DNS信息。

上表中藍色部分為黑客申請的DNSbin服務域名,攻擊代碼在目標設備上成功執行后會基于目標設備信息和簡單隨機化數據構造子域,最后將這兩部分組合起來作為上線請求通知黑客。通過子域信息可以反推出受害設備的一些簡單信息。相關受害者DNS請求數據如下表所示:

從上表可以看出,子域數據中包含了被截斷的主機名、主機用戶名、隨機信息以及攻擊階段信息(技術細節請參見攻擊案例分析部分)。
- 2)EWS通信設施(KarkoffDll)
該設施主要用于控制命令服務器,當誘餌文檔在受害者主機上成功地植入KarkoffDll后,將通過EWS與這部分設施通信。這期間交互數據主要以控制命令和任務執行反饋信息為主。EWS (Exchange Web Services) 是微軟實現的一種客戶端和服務器之間的交換信息的協議,該協議是基于標準的web service工作的,通過使用HTTP+XML+SOAP來傳輸消息。黑客基于該協議則可利用郵箱來對目標實施遠程管理,依附于高信任度的合法郵件服務器作為跳板,既能有效的對抗監管審查和流量分析,又能有效的隱藏其真實地址。
因此這里我們將一個被黑客控制的郵箱賬戶直接稱為控制命令服務器C&C。其中在攻擊樣本中內置了多個郵件賬戶信息sig.dir.logistic,ahabib和masters.michelle,其中前兩個賬戶位于服務器mail.army.gov.lb和mail.touch.com.lb,分別屬于黎巴嫩軍方和黎巴嫩移動絡運營商的郵件服務器,而后一個屬于比較普通公共郵箱服務器mail.protonmail.com。默認情況下攻擊樣本回連到sig.dir.logistic或ahabib,當然黑客可以遠程指定由masters.michelle郵箱賬戶接管控制。
通過相關情報分析,黎巴嫩軍方和移動運營商的郵箱賬戶極有可能為該黑客組織前期通過釣魚或Exchange爆破工具竊取。該組織在2019年曾發生過數據泄露事件,其通過漏洞、釣魚攻擊、Exchange爆破工具攻陷了大量Exchange賬戶。下表梳理了APT34使用的部分釣魚鏈接:

攻擊者通過釣魚頁面可以直接竊取到目標的電子郵件信息并應用于下一階段的攻擊活動。

對于APT34爆破Exchange郵件賬戶的手段,我們復盤了該組織被曝光的各類攻擊武器,其中Jason能夠用于竊取郵件賬戶信息,并可以針對Exchange服務器(07到17版本)的郵件賬戶進行爆破。
APT34在2019年曾泄露出大量已被攻陷的Exchange賬戶,其中涉及到不少黎巴嫩和中東的受害者,甚至還包括了我國的十多家企業和機構。而此次暴露的郵箱賬戶表明APT34仍然在持續開展針對Exchange服務器及郵件系統的攻擊,其同樣可能以類似的手段攻擊我國的機構、企業并實現隱蔽駐留(EWS API隱匿通信),需要引起足夠的重視。
- 3)HTTP/HTTPS通信設施(SideTwist) 除此之外,在對SideTwist進行逆向分析后,我們發現該后門將通信數據隱藏于html文本的javascript中,這些被隱藏的數據以注釋的形式存在于javascript標簽中。這是APT34采用的最新方法,這種方法非常隱蔽且極難被檢測。我們基于分析得到信息指紋并結合一些情報數據,最終獲得了一批與該組織有關的網絡基礎設施(表2-5)。
| 域名 | 創建時間 | 注冊郵箱 | IP 地址 | ISP |
| pluginmain.com | 2021/2/9 | runminer@yandex.com | 96.9.255.246(N/A) | NEXEON |
| severalfissures.com | 2020/12/22 | vince.gould@yandex.com | 193.239.84.207 | M247 Ltd |
| endlesspromises.com | 2020/12/15 | REDACTED FORPRIVACY | 23.19.58.17/18 | Leaseweb Uk Limited |
| metroupload.com | 2020/12/15 | karenangell@yandex.com | 23.19.58.17(N/A) | Leaseweb Uk Limited |
| forecasterman.com | 2020/12/15 | cortholahan@yandex.com | 23.19.58.17/18 | Leaseweb Uk Limited |
| crucialanswer.com | 2020/12/13 | REDACTED FORPRIVACY | 23.19.58.17/18 | Leaseweb Uk Limited |
| confusedtown.com | 2020/12/13 | wendy.kely@yandex.com | 0.0.0.0 | N/A |
| donotfollowmeass.com | 2020/12/13 | lukasvoll@yandex.com | 23.19.58.17 | Leaseweb Uk Limited |
| cannibalwoman.com | 2020/12/12 | REDACTED FORPRIVACY | 23.19.58.17 | Leaseweb Uk Limited |
| unsecuredstorage.com | 2020/12/8 | domenicrey@yandex.com | 23.19.58.17/18 | Leaseweb Uk Limited |
| hopeisstamina.com | 2020/12/8 | REDACTED FORPRIVACY | 23.19.58.17/18 | Leaseweb Uk Limited |
| Importantgate.com | 2020/12/8 | pinerfox@yandex.com | 0.0.0.0 | N/A |
| flexiblepaper.com | 2020/12/7 | jon-reynol@yandex.com | 23.19.58.17 | Leaseweb Uk Limited |
| acceptplan.com | 2020/12/6 | yumiwellen@yandex.com | N/A | N/A |
| klwebsrv.com | 2020/11/26 | avupdater@yandex.com | 23.19.58.17 | Leaseweb Uk Limited |
2.4 技術演進
APT34的本次攻擊活動與早期相比,有著一些改變,其中從誘餌文檔到后門程序上都存在較多改進。比如增加了用于關閉宏提示的誘餌文檔,基于DNS的感染上報,以及以JavaScript為載體的流量隱藏等等。
- 1)關閉宏提示誘餌文檔
本次攻擊中,我們第一次發現
APT34采用了一種預攻擊誘餌的手法,黑客首先向目標發送一個沒有任務惡意行為的誘餌文檔,該誘餌文檔會偷偷地在目標主機上關閉excel和word兩種文件的宏提示功能。并在此后攻擊中,黑客會再次利用其它誘餌文檔來下發后門。
- 2)基于DNS隧道的感染上報 相比于APT34以往的攻擊活動,本次添加一個利用DNS協議進行攻擊活動的上報,上報的服務器是公共的網絡設施。這種上報最主要的特點是階段化以及匿名化,同時流量是難以發現和檢測的。通過分析發現,上報信息中包括受害者的一些列的可識別信息(如感染時間、用戶名、主機名,IP地址等)。攻擊者采用這種新的技術手法,能夠及時掌握入侵執行進度(偵察階段),以便進一步調整技戰術策略來提高攻擊的成功率。
- 3)以JavaScript為載體的流量隱藏
根據目前掌握的信息可知,SideTwist是APT34在本次攻擊活動使用的一款新后門。該后門在與C&C交互時,采用了較隱匿的通信機制。攻擊者將加密后的控制指令數據隱藏在html頁面的<script>標簽中,并以注釋的形式存儲。當后門獲取指令時,則使用HTTP請求從偽造的虛假頁面中提取控制指令數據。這能非常有效地逃避流量監視和檢測。
- 4)KarkoffDll后門改進
在以往的攻擊中,APT使用的Karkoff后門是以獨立的EXE可執行文件存在,文件名類似out.exe之類的文件,通過計劃任務啟動執行;而本次攻擊中黑客將該后門分離成兩部分,分別為白文件Mircroft.Exchange.WebServices.dll和后門程序System Exchange Service.dll(提高了免殺能力),我們將新變種命名為KarkoffDll。該變種通過VBS腳本啟動,而VBS以計劃任務啟動。
- 5)EWS郵件模本改進
在本次攻擊中,黑客著重針對EWS通信過程中的郵件模板進行了精心設計和偽裝。從先前的攻擊案例來看,用于傳輸數據的郵件任務模板設計簡單,無論是郵件主題前綴(“Great!”),還是郵件內容(“This is our reusme”)都略顯簡易,容易引人生疑。而在此次行動中,攻擊者通過精心仿造Dropbox平臺(網絡存儲服務提供商)的服務更新郵件來混淆視聽,郵箱用戶即使關注到惡意郵件內容(存儲于已刪除郵件),也很可能會誤認為是Dropbox平臺正常的服務郵件而忽略。另外,在前期攻擊活動中通信數據被加密隱寫在圖像附件(RDAT)或TXT文本附件(Karkoff)中,此次攻擊則隱藏在郵件Emailbody正文尾部,一方面可以起到不錯的視覺混淆效果,另一方面也能避開部分針對郵件附件的文件檢測。

此外,在前期攻擊活動中使用的EWS API郵件通信只支持2種郵件任務:“CMD”郵件任務和“結果”郵件任務,分別用于接收和發送指令,但這兩種任務無法及時提供受控機器的連接情況。APT34在此次攻擊中進行了升級——新增了“心跳包”郵件任務,當“已刪除郵件”中不存在“CMD”郵件時,則更新“心跳包”郵件,攻擊者即可掌握受控機器的上線連接情況。

三、攻擊案例剖析
APT34的這次攻擊涉及到多種形式的誘餌文檔和樣本形態,在分析完這批攻擊樣本和攻擊策略后,我們將此次攻擊活動劃分為三個階段:初期偵察、后門植入和隱匿駐留。整套攻擊流程經過了攻擊者的精心策劃和部署。
初期偵察階段,APT34首先投遞“無害”的惡意文檔誘導受害者點擊執行宏代碼,并利用繞過技術“關閉”Office的宏安全警告。默認允許宏代碼執行就如同打開了“潘多拉魔盒”,攻擊者后續所有基于宏的惡意行為將會悄無聲息的執行,這給攻擊者后續的入侵活動提供了便利。同時,由于文檔不存在明顯的惡意行為,該階段也很難被受害者察覺。在該誘餌文檔的宏執行過程中,其借助了公共服務商RequestBin提供的DNS服務來傳輸受害設備的指紋信息和宏感染進度,由于RequestBin的DNS匿名使用特性,所以我們稱這種技術為“匿名DNS隧道技術”,黑客巧妙地利用了這一點,并在此次攻擊活動中廣泛應用于誘餌文檔中。
后門植入階段,攻擊者繼續投遞誘餌文檔并通過宏代碼植入后門KarkoffDll或SideTwist。植入過程包含解密釋放后門和安裝計劃任務兩部分工作,同時其也會借助公共服務商RequestBin提供的DNS服務來傳輸受害設備的指紋信息和宏感染進度。
隱匿駐留階段,植入的兩類后門通過不同的隧道通信技術實現敏感數據傳輸。后門KarkoffDll通過EWS API與Exchange郵箱賬戶(可信服務器)通信,將數據加密隱匿在EWS協議中傳輸,我們稱之為“EWS隧道技術”。后門SideTwist采用“HTTP隧道”來實現與控制命令服務器的通信,在通信過程中,該后門還采用了基于HTTP協議的“JS控制通道”來隱秘下發控制指令。我們將在3.3章節做相關的技術分析,攻擊活動的整體流程參考圖3-1。
3.1 階段一:初期偵察
在初期偵察階段,攻擊者通過投遞“無害”的惡意文檔誘導受害者點擊執行宏代碼。宏代碼的主要功能是繞過Office宏安全警告,同時會將宏感染情況通過DNS上報給攻擊者(DNS上報信息是此次攻擊活動中誘餌文檔的共性特點,將在階段二中具體分析)。文檔宏的核心代碼如下:

在檢測Office版本時,首先查找注冊表中excel.exe的程序路徑,之后結合GetFileVersion函數獲取Office的所屬版本。

然后,分別針對Excel和Word程序添加Office安全可信路徑的注冊表項(可信路徑為”C:\”),并設置為支持子目錄可信。最終,攻擊者通過增加Office可信目錄可以達到自動執行C盤下Office惡意宏的目的,為后續的入侵活動提供支持。

3.2 階段二:后門植入
在完成第一階段的偵察并繞過宏安全警告后,攻擊者繼續投遞惡意宏文檔以植入后門。其中,攻擊者巧妙的借助了公共服務商RequestBin提供的DNS隧道服務進行宏感染情況的上報。使用公共DNS隧道服務可以充分保證通信的隱匿性,攻擊者根據上報的DNS信息能夠及時掌握后門植入的進度,并及時調整技戰術策略。
誘餌文檔誘導受害者 “啟用宏”來執行惡意VBA腳本(如受害者已執行階段一的誘餌文檔則會默認執行宏)。以釋放后門KarkoffDll的惡意文檔為例,VBA宏通過Document_Open和Document_Close兩類事件來觸發惡意行為。

Document_Open(文檔打開時): DNS上報感染進度(第一次) Base64解碼提取后續的惡意代碼并釋放至新創建的目錄“\appdata\local\Google_Corporation\” 檢查環境是否有鼠標可用(反沙箱) DNS上報感染進度(第二次)
Document_Close(文檔關閉時): 檢查環境是否有鼠標可用(反沙箱) DNS上報感染進度(第三次) 注冊windows任務計劃(偽裝名稱:Google Update),每5分鐘運行腳本(exchange.vbs執行后續惡意代碼), 持續20天 DNS上報感染進度(第四次)
3.2.1 DNS上報信息
在DNS上報信息的過程中,需上報內容將以DNS子域的形式傳遞,包括受害者的可識別信息(用戶名、主機名、宏代碼執行階段)。除此之外,黑客在RequestBin端還可以識別到受害者的IP地址及感染時間。

當惡意文檔在以下設備環境中執行時,DNS上報流量參考圖3-7所示。 Hostname : WIN-36F2EAP UserName : jayer DNS上報信息示例(子域“2eapjayv9u2”為傳輸信息): 2eapjayv9u2.53a91f99cdc251934931.d.requestbin.net
requestbin.net端接收到的完整感染上報情況參考圖3-8所示。
在此次攻擊活動中,誘餌文檔的共性技戰術特點是均通過RequestBin提供的DNS隧道服務進行宏感染情況的上報。我們針對3種不同類型的誘餌文檔進行了比對分析,發現文檔基于功能的不同上報次數也有所差異。初期偵查階段(繞過宏安全警告)的誘餌文檔共2次上報感染階段,而后門植入階段涉及的兩類誘餌文檔分別進行了4次和6次上報,對比情況參考下圖所示。
3.2.2 注冊任務計劃
當受害者打開文檔時(Document_Open),宏代碼通過Base64解碼并釋放后續的惡意代碼。此階段包含兩類不同的后門KarkoffDll和SideTwist,其釋放路徑和加載方式也有所不同,相關路徑如下所示: “……\ appdata\local\Google_Corporation\”(KarkoffDll) "……\public\documents\SystemFailureReporter\"(SideTwist)
當受害者關閉文檔時(Document_Close),宏代碼將注冊Windows任務計劃以循環加載執行后續的惡意代碼。以釋放后門KarkoffDll的文檔為例,當文檔關閉時,其會創建任務名為Google Update的任務計劃。
該任務計劃每5分鐘執行一次exchange.vbs腳本,從而加載后續惡意代碼MicrosoftExchangeModule.dll和依賴庫Microsoft.Exchange.WebServices.dll。后門的持久性高度依賴于此任務計劃,其生命周期也與任務計劃時間相同(任務計劃持續20天)。
3.3 階段三:隱匿駐留
攻擊者最終可能植入兩類后門木馬,分別使用了不同的隱匿隧道通信技術來實現敏感信息的傳輸:EWS隧道技術(KarkoffDll)和HTTP隧道技術(SideTwist),下文分別對這兩類樣本及其使用的通信技術進行深入分析。
3.3.1 EWS隧道通信
后門KarkoffDll利用了EWS API協議實現受控機與C&C間的隱匿隧道通信。EWS(全稱Microsoft Exchange Web service)是Exchange 2007之后推出的基于SOAP (Simple Object Access Protocol) 協議的 web service,提供了訪問Exchange資源的接口。微軟Exchange團隊后續又推出了Microsoft Exchange Web Service(EWS) Managed API,開發者可以根據此接口發送和接收信息,實現操作Exchange服務器郵箱的各類功能。
攻擊者在成功竊取到受害目標或與目標具有信任關系的Exchange服務器郵箱賬戶后,將該賬號作為C&C跳板,通過EWS API隱匿的傳輸數據。由于EWS API本身基于SOAP協議和HTTPS加密,且惡意數據被組合加密(自定義Base64+RSA+AES)后隱藏嵌入在郵件內容中傳輸,在對抗流量檢測方面可以起到很好的效果。我們搭建了EWS環境來模擬被入侵郵件賬戶的受控情況:
攻擊者將惡意EWS模塊封裝在DLL(MicrosoftExchangeModule.dll)中,并結合Windows任務計劃和exchange.vbs腳本定時加載。
MicrosoftExchangeModule.dll的執行流程如圖3-14所示,我們將分別從初始化、EWS API通信、控制指令三個部分進行介紹。
- 1)初始化 首先,后門執行的初始階段會隨機休眠30秒至120秒以嘗試繞過沙箱檢測。
由于后門循環啟動,黑客可以通過更改配置文件中”KMAV”對應的模式值來實現不同的功能分支。配置文件字段及相關信息如下:
- 2)EWS API通信 初始化后,后門在CheckEWSConnection()函數內根據從配置文件中讀取到的模式值(credential.mode)選擇執行分支。當模式值為0-2時程序會在當前登陸連接的Exchange郵件賬戶中創建郵件任務;當值為3-7時則會將郵件任務發送至黑客指定的郵箱(如:masters.michelle@protonmail.com)。
各分支根據傳入參數創建EWSCommunication對象、EWSManager對象以及進行EWS服務器連接建立的初始化工作。
進一步在Initialize()函數中將設置EWS請求的UserAgent、操作文件夾位置(默認為已刪除郵件)。
如果是首次執行后門(模式值為0),還將添加以下郵件收件箱規則: (1)DefaultExchangeRule1:若郵件主題中包含“Important Dropbox Updates”字符串,刪除郵件并且將郵件標記為“已讀” (2)DefaultExchangeRule:若郵件主題中包含“Important Dropbox API Updates”字符串,刪除郵件并且將郵件標記為“已讀”
創建收件箱規則的目的是將包含指定字符串的郵件移至“已刪除郵件”,降低被郵箱用戶發現的機率。攻擊者采用了3種郵件任務實現數據傳輸,分別為“心跳包”郵件(aliveSubject)、“CMD”郵件(cmdSubject)、“結果”郵件(resultSubject):
| 資源名稱 | 值(郵件主題名前綴) | 功能解釋 |
| aliveSubject | Dropbox and Paper, together | “心跳包”郵件任務(更新執行時間) |
| cmdSubject | Important Dropbox API Updates | “CMD”郵件任務(接收C&C指令信息) |
| resultSubject | Important Dropbox Updates | “結果”郵件任務(上報指令執行結果) |
首次執行后門時受控機器會創建默認的“心跳包”郵件和“結果”郵件,“CMD”郵件則會由攻擊者在下發控制指令時創建。 “心跳包”郵件主題名結構:aliveSubject + Program.id(自定義Base64) 示例:" Dropbox and Paper, together CoFD!o4^}-F?CuF0}dNN"
加解密算法:
EWS API基于SOAP協議和HTTPS加密通信,其本身已具有較強的安全性。攻擊者進一步還將傳輸數據組合加密后嵌入在Emailbody中對抗流量檢測,并通過前后字符串定位加密數據內容:
startString: “These don’t require action, but they may”
endString: “enrich your application and increase the value”
默認“結果”郵件的數據結構如下(初次創建):
mid | cid | data | UserDomainName | MachineName | UserName
郵件標題和內容均通過偽造Dropbox平臺(網絡存儲服務提供商)的服務更新內容來混淆視聽。在通信安全方面,黑客采用了RSA(非對稱加密算法)、AES(對稱加密算法)、自定義碼表Base64的組合加密策略。通信共使用了兩對RSA密鑰對A和B,其中受控端內置了A密鑰對的公鑰和B密鑰對的公鑰、私鑰。受控端上傳信息時先由AES加密內容,再通過RSA_PublicKey_A加密AES 密鑰,由于本地不存在A的私鑰,那么即使捕獲到加密流量也不具備解密條件。而接收黑客指令時由于本地有密鑰對B的私鑰,則可以解密識別控制指令。兩類加密的指令數據格式如圖3-25所示:
GetCommands()函數負責指令的獲取和初次解碼,后門通過GetList() API查找已刪除郵件列表并過濾 “CMD”郵件,通過HTTPS解密捕獲到的流量如下:
如果從郵件列表中過濾到cmdSubject任務(Important Dropbox API Updates + Program.id),則進一步讀取郵件內容并通過自定義Base64算法解碼提取加密指令。此外,黑客在痕跡清理方面也表現出較強的專業性,在提取指令后會立即清除該CMD郵件以隱藏痕跡。
如果未能從“已刪除郵件”中獲取到指令,則記錄當前時間并更新至心跳包郵件(aliveSubject任務),之后關閉程序。
- 3) 控制指令
加密指令經過GetCommands()函數解碼后,進入ParseCommand()函數進一步解析密文,依照RSA私鑰解密(得到AES密鑰)、AES密鑰+IV解密(得到明文)的順序提取出指令內容。
圖3-29 解析密文
指令解析后對應5種類型,以指令值101(功能:執行CMD命令)為例: “101|1|3|13|mkdir malware”,其控制指令結構示意如下:
當受控機器接收到“CMD”郵件任務(cmdSubject)時,程序解密并執行指令,然后創建”結果“郵件(resultSubject)上報指令執行結果。如果指令未匹配,則返回”Done:D”。執行CMD命令“mkdir malware”后的返回數據如下:
控制指令功能參考下表所示:
| 指令值(mid) | 指令名稱 | 指令功能 |
| 101 | Execute | Cmd執行命令 |
| 102 | Download | 將控制端的傳遞數據保存至指令目錄 |
| 103 | Upload | 將需上傳文件路徑保存至cmd.result并準備上傳 |
| 104 | Shred | 清除指定文件(移動該文件至隨機位置后再進行刪除操作) |
| 105 | Send_Log | 讀取ExceptionHandling運動cmd.result并準備上傳 |
3.3.2 HTTP隧道通信
SideTwist后門是由第一階段宏代碼添加的計劃任務啟動執行。其首先通過sleep延遲執行惡意行為以嘗試繞過沙箱檢測,休眠時間為計算出的隨機數的10倍。
接著獲取主機用戶名、計算機名以及域名等信息,并通過簡單的異或計算出用以標識的唯一值。此外,后門還會檢查“update.xml”文件是否存在于上級目錄中,不存在則輸出調試信息并結束進程。
如該文件存在,后門則發送HTTP GET請求到C&C服務器 (sarmsoftware.com/search/[identifier]),使用的端口號為443,并將80作為備用的端口號。
發送給服務器的GET請求流量內容如下圖所示:
在分析此樣本時,該域名已無法訪問,我們通過其它途徑找到了與其關聯的頁面源代碼。后門將加密后的控制指令字符串以特定格式隱藏在HTML特定javascript標記內,并在字串首尾以“/“”/”作為提取指令時的分隔符,我們稱這種利用javascript作為控制命令下發的通道為為“JS控制通道”。具體如圖3-37所示(該例的控制指令編號為-1)。
后門所有通信流量的加解密均采用Base64和梅森旋轉算法(Mersenne twister)。解密控制指令數據時,其先使用Base64對字串進行解碼,之后再將加密數據的前4個字節作為種子,通過Mersenne twister進行解密,解密后的數據使用‘|’作為分隔符。如果數據中包含參數,則參數部分還需再進行一次Base64解碼。解密后的數據格式如圖3-38所示。
解密流程部分代碼如下圖所示:
成功解密后,后門首先會提取出控制指令編號,判斷該值是否為-1。如果是,則獲取受感染主機的用戶名以及主機名等信息,并將信息拼接成 “用戶名|主機名|WORKGROUP”(‘|’作為分隔符)格式。之后再使用Mersenne twister和Base64對數據進行加密。
最后,后門使用HTTP POST方法,將加密后的數據發送給C&C服務器。數據采用簡單的JSON格式,具體如圖3-41所示。
最終發送給服務器的返回數據格式如下圖所示:
SideTwist后門的功能比較簡單,在分析中并沒有發現如屏幕監控或鍵盤記錄之類的監視功能,猜測其主要用于前期的偵查階段。具體的控制指令功能如下表所示。
| 控制指令標識符 | 控制指令 | 參數 | 功能 |
| -1 | 101(未使用) | 無參數(參數1) | 上傳主機相關信息 |
| 非-1值 | 101 | shell 命令(參數1) | 運行shell命令 |
| 非-1值 | 102 | 文件名(參數1)/ 下載路徑(參數2) | 下載指定文件 |
| 非-1值 | 103 | 文件(參數1) | 上傳指定文件 |
| 非-1值 | 104 | shell 命令(參數1) | 運行shell命令 |
四、總結
通過以上的分析可以看出,APT34組織的攻擊手法隱秘高明,且在不斷地改進升級其攻擊技術,擴充其匿名性的基礎設施和增加其獨具一格的TTP。同時其還擅長于巧妙地利用低成本公共服務來隱藏其攻擊痕跡,提高其攻擊的成功率。此外,該組織為了逃避檢測機制,常常會更換攻擊策略和戰術。
APT34偏向于使用更容易做免殺的腳本或更具欺騙性的word文檔作為初期階段的載荷投遞,接著通過定制加強的后門來執行攻擊任務,同時利用各種隱匿通信隧道與黑客方交換數據,例如其長期使用的“EWS隧道技術”作為控制通道以及本次攻擊中新使用的“匿名DNS隧道技術”作為預攻擊活動上報,使用“JS控制通道”作為控制命令下發的管道。“EWS隧道技術”通過依附高可信組織的Exchange郵件賬戶作為C&C(失陷郵件賬戶),極大的提高了安全檢測的難度,可以說是一種較為高明且保險的攻擊策略。而“匿名DNS隧道技術”不同于一般的DNS隧道技術,其采用了成本低且完全匿名的形式,極難檢測和追蹤。“JS控制通道”的使用也是該組織在HTTP通信過程中首次使用的,難以檢測和發現。
當我們面臨這種攻擊時,常常很難在攻擊未發現的情況下檢測出此類攻擊,無論是基于規則、算法,還是基于機器學習算法的檢測,其在流量規避上一直在尋求新的手段和方法,不斷地利用公共設施和竊取的賬戶做為控制命令服務器。攻擊隱藏和攻擊發現這是一個長期的對抗過程,只有提高我們的發現能力和威脅情報反應能力才能夠將這種攻擊的威脅降低到最小,這其中需要我們具備較強的分析能力,較快的反應能力外,還需要結合新的防御思路和先進的檢測技術來平衡攻防不對等的狀態。
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1614/
暫無評論