新攻擊新武器:盲眼鷹APT組織最新攻擊活動完全分析

發布時間 2020-08-14

一、概述


啟明星辰ADLab實驗室在近幾個月內,接連捕獲到多起針對哥倫比亞國家的政府部門,金融、銀行、保險等行業及衛生和制藥機構發起的釣魚郵件定向攻擊。攻擊者以“冠狀病毒檢測緊急告知單”或“刑事訴訟通知單”等命名的誘餌文檔作為郵件附件,并配合魚叉郵件向攻擊目標電腦植入遠控木馬。從郵件分析結果來看,攻擊者會將郵件的來源偽裝成哥倫比亞國家衛生部、國家稅務和海關總署、民事身份登記處、檢察院以及移民局等政府部門,以加強其郵件的真實性。我們通過對攻擊者偽裝的來源信息、域名使用偏好、IP地址關聯及地理位置等特性進行對比分析,發現該系列攻擊來源于盲眼鷹組織,但采用的攻擊武器較以往完全不同。盲眼鷹首次被披露于2019年初,是一個疑似來自南美洲的APT組織,其最早活躍時間可追溯到2018年,主要針對哥倫比亞政府和大型公司進行攻擊。

在對攻擊活動深入分析后,我們發現該組織在我們發現的這批攻擊中采用了更為先進攻擊技術和反追蹤技術。在以往的攻擊中,該組織多使用MHTML格式的惡意文檔作為攻擊附件,而在本次攻擊過程中,該黑客組織使用一個無惡意的文檔作為媒介,誘使目標下載文檔中提供的惡意短鏈接(該短鏈接指向一個加密過MHTML的惡意文檔),這大大提高攻擊的有效性,其不僅能夠繞過郵件安全防護系統和入侵檢測系統,而且大大的降低了被殺毒軟件查殺的概率(我們捕獲的許多樣本在VT上的查殺率均0,部分樣本也長期保持著低于5%的極低查殺率);我們發現的這批攻擊中,該黑客組織放棄了以往常用的ImminentMonitor RAT,采用了一款隱蔽能力和免殺能力更強的RAT--AsyncRAT,同時結合復雜多層加密與代碼嵌套手段來提供反分析能力和反檢測能力。      

AsyncRAT是來源于國外的一款遠控木馬,其除了能夠對目標進行最基本的遠程間諜活動外,還可使用USB設備突破物理隔離、使用bot killer清除目標上的競爭對手等。該木馬最具特點的是采用不落地的無害模塊作為目標的僵尸進程, 并采用“propelling in use,destroy after use”的工作模式,即分解攻擊任務為子任務,每個子任務以一個單獨的DLL模塊來實現,黑客執行任務時由多個子任務DLL模塊按照一定的執行序列來實現,同時對完成任務的模塊進行及時銷毀。這種工作模式將一個完整惡意任務分解成多個無害的子任務,能夠有效地躲避一些復雜安全防護策略,同時也能有效地防止取證分析人員獲取其核心攻擊模塊。

此外,該黑客組織還采用了“DoubleFlux+Fast VPN”技術來達到反追蹤和反偵測的目的。我們通過對攻擊者使用的C&C基礎設施進行分析發現,這批攻擊的C&C域名是通過DNSExit.com來動態分派IP地址(IP地址是動態變化的,幾乎都歸屬于哥倫比亞的ISP)。實際上,DNSExit不僅是一個“1(dns)對n(IP)”的服務,更是一個“m(dns)對n(IP)”,因此其應該采用了“double flux”技術來規避溯源與追蹤。不僅如此,黑客組織使用這種服務的背后還加了一層VPN,也就是說通過“Double Flux”得到的IP地址并不是黑客真正的IP地址,其只是一系列的VPN節點(節點的IP地址由Unus.Ins服務商提供),因此借用”fastflux”命名法我們將這種反追蹤技術稱為”Fast VPN”。攻擊者利用“Double Flux+Fast VPN”技術來作為攻擊載荷和木馬回連的通道,使得黑客的攻擊變得非常難以追蹤和溯源。


二、攻擊活動分析


本章總結了黑客組織近期的攻擊活動事件以及本次活動中使用的攻擊手法。


2.1近期攻擊活動


啟明星辰ADLab實驗室基于原始線索對黑客組織本次的攻擊活動進行了全面追蹤、關聯和分析,發現此次活動最早可追溯到2019年9月,且近期活動主要以COVID-19相關內容作為釣魚誘餌。我們綜合所有的威脅情報數據,梳理了本次該組織發起的所有攻擊事件,并繪制出以下攻擊事件時間線。


圖2-1 APT組織近期攻擊事件時間線

2.2攻擊手法


在本次攻擊活動中,我們發現盲眼鷹APT組織主要采用魚叉郵件作為初期攻擊方式。攻擊者偽裝成來自哥倫比亞衛生部、哥倫比亞國家總檢察院、哥倫比亞移民局、哥倫比亞國家稅務和海關總署以及哥倫比亞民事身份登記處等部門,向使用西班牙語言的南美地區(特別是哥倫比亞國家)的政府部門,金融、銀行、保險等公司,以及衛生和制藥機構的相關人員投遞惡意攻擊郵件。郵件主題均與攻擊者所仿冒的政府部門文件題材相關,并在郵件正文添加針對附件文件的誘導性描述和附件查看密碼等信息,更有利于加強郵件的真實性,誘使受害者啟用惡意宏代碼,進而向攻擊目標機器上植入木馬程序,以實施對入侵設備的遠程控制、竊取機密數據、系統破壞等惡意行為。


啟明星辰ADLab實驗室通過對該組織近期攻擊的監測和關聯分析,發現了多個與其相關的郵件,下面我們列舉出部分郵件內容以及針對性的誘餌文檔。


2.2.1 釣魚郵件詳情


偽裝成哥倫比亞衛生部:


(1)圖2-2是攻擊者偽裝成哥倫比亞衛生部的攻擊郵件之一。郵件主題為“Ustedha sido citado para una prueba obligatoria de (COVID-19)”(翻譯后為:“您被要求參加強制性檢測(COVID-19)”)。


2-2.jpg

圖2-2 偽裝成哥倫比亞衛生部郵件之一


(2)圖2-3是攻擊者偽裝成哥倫比亞衛生部的攻擊郵件之二。郵件主題為“Lehemos llamado en repetidas ocaciones y no ha sido posible contactarle por favorleer comunicado urgente”(翻譯后為:“我們已經多次致電給您,無法聯系到您,請閱讀緊急通知”)。



圖2-3 偽裝成哥倫比亞衛生部郵件之二


(3)圖2-4是攻擊者偽裝成哥倫比亞衛生部的攻擊郵件之三。郵件主題為“Detectamos  en su sector la presencia de COVID-19 ( Corona virus ) intentamos comunicarnos  via telefonica con usted”(翻譯后為:“我們在您的部門發現了COVID-19( Corona virus ),并嘗試通過電話與您聯系”)。



圖2-4 偽裝成哥倫比亞衛生部郵件之三


偽裝成哥倫比亞國家稅務和海關總署:


圖2-5是攻擊者偽裝成哥倫比亞國家稅務和海關總署的攻擊郵件。郵件主題為“Procederemos con una orden de embargo a las cuentas bancariasencontradas a su nombre”(翻譯后為:“我們將對以您名義發現的銀行賬戶發出凍結令”)。


圖2-5 偽裝成哥倫比亞國家稅務和海關總署的郵件


偽裝成哥倫比亞民事身份登記處:


圖2-6是攻擊者偽裝成哥倫比亞民事身份登記處的攻擊郵件。郵件主題為“Sucedula de ciudadania ha sido reportada como robada en nuestro sistema”(翻譯后為:“您的公民證已在我們的系統報失”)。


2-6.jpg

圖2-6 偽裝成哥倫比亞民事身份登記處的郵件


偽裝成哥倫比亞檢察院:


圖2-7是攻擊者偽裝成哥倫比亞檢察院的攻擊郵件。郵件主題為“El presentees el requerimiento enviado a declarar por el proceso iniciado en su contra(ultimo aviso)”(翻譯后為:“這是針對您發起的處理流程聲明(最后通知)”)。



2-7.jpg

圖2-7 偽裝成哥倫比亞檢察院的郵件


偽裝成哥倫比亞移民局:


圖2-8是攻擊者偽裝成哥倫比亞移民局的攻擊郵件。郵件主題為“Comunicado710297647: Proceso Penal Pendiente”(翻譯后為:“聲明710297647:待定刑事訴訟法”)。



2-8.jpg

圖2-8 偽裝成哥倫比亞移民局的郵件


2.2.2 誘餌文檔


根據現有的情報分析表明,該組織以往最常用的郵件附件是帶有惡意宏的MHTML格式的DOC文檔。我們對近期捕獲到的相關攻擊樣本進行分析后,發現在大多數情況下,攻擊者開始使用帶有短鏈接的RTF或PDF文檔來作為惡意附件,以繞過郵箱網關的檢測。表2-1列出了黑客組織在此次攻擊活動中使用的惡意文檔信息。


文件名

時間戳

citacion  prueba covid.pdf

2020-07-09  11:06:40

citacion  prueba covid.pdf

2020-06-19  14:11:05

Comunicado.pdf

2020-04-25  13:11:38

minsaludcomunicado.pdf

2020-03-04  22:17:40

estado  de cuenta.pdf

2020-02-25  21:58:29

reactivar  mi cedula.pdf

2020-02-03  23:18:38

DIAN  estado de cuenta.rtf

2019-11-04  15:01:00

pdfproceso.rtf

2019-10-25  14:09:00

Proceso.rtf

2019-08-26  21:00:00

表2-1 相關惡意文檔信息


(1)案例1


附件RTF文檔中內嵌一個名為“VER PROCESO”的跳轉鏈接,其指向的惡意鏈接使用的是IP Logger短鏈接服務。

2-9.jpg

圖2-9 RTF文檔內容


2-10.jpg

圖2-10 IP Logger短鏈接平臺


(2)案例2


附件PDF文檔中內嵌一個名為“Ver comunicado”的跳轉鏈接和一行文本信息(僅用于提升文檔的可信度)。其指向的惡意鏈接使用的是Acortarurl短鏈接服務。

2-11.jpg

圖2-11 PDF文檔內容

 

三、溯源與關聯分析


在對本次攻擊樣本的IOC進行深入追蹤溯源后,我們挖掘出黑客組織更多的C2服務器信息。后文,我們將結合目前掌握的情報數據和公開的研究報告資料信息,來對此次攻擊事件進行詳細的組織關聯分析。


3.1C&C基礎設施分析


通過提取和關聯所有樣本中的C&C服務器相關信息,我們發現黑客組織所使用的基礎設施都位于哥倫比亞、哥斯達黎加和巴拿馬,所有IP都歸屬于哥倫比亞的ISP。查看這些IP的具體信息(如圖3-1)可以看到,此IP段的網絡服務提供商是Unus.Ins公司,該公司操控著26209個IP地址,且幾乎所有這些IP地址都是提供給匿名VPN服務使用,例如Powerhouse Management.Inc(phmgmt.com)。由于該ISP在網絡中的流量大多數具有欺詐性,因此美國反欺詐安全公司Scamalytics將其標注為高欺詐風險ISP(如圖3-2)。

3-1.jpg

圖3-1 相關IP具體信息


3-2.jpg

圖3-2 Scamalytics公司標注信息


圖3-3為該組織在此次攻擊活動中使用的部分域名、IP、PE文件和Office文件的對應關系。


3-3.jpg

圖3-3 對應關系圖


該組織使用的域名是在國外DNSExit.com平臺上免費注冊的三級子域(該平臺提供的免費域實際上是二級域,如圖3-4),且這些子域所指向的IP地址被頻繁的更換(如圖3-5)。如果一個C2服務器被關閉,攻擊者則可以快速地更新DNS記錄指向新服務器,恢復連接。攻擊者利用域名注冊商提供的DNS服務(double flux),再配合使用VPN服務(fast VPN)作為攻擊載荷和木馬回連的通道,以達到反追蹤和反偵測的目的。


圖3-4 DNSExit.com平臺



圖3-5 域名指向的IP


3.2關聯和技術演進分析


我們從本次事件中黑客組織所使用的樣本、C&C服務器等層面進行了關聯分析,并結合該組織早期攻擊活動中的相關特性,得出以下幾處重要的關聯點。


3.2.1 偽裝來源信息


在早期的攻擊活動中,盲眼鷹組織慣于將自身偽裝成哥倫比亞國家民事登記處、哥倫比亞國家稅務和海關總署等部門來對哥倫比亞的政府和金融機構進行攻擊。而在本次攻擊事件中,攻擊者所使用郵件的偽裝來源信息除了同該組織具有一定的重疊以外,還新增了一些哥倫比亞其他政府部門信息。具體詳見表3-1。



誘餌偽裝來源(2018年4月-2019年2月

誘餌偽裝來源(2019年9月-2020年7月

哥倫比亞民事登記處

哥倫比亞民事登記處

哥倫比亞國家稅務和海關總署

哥倫比亞國家稅務和海關總署

哥倫比亞國家司法部門

哥倫比亞國家總檢察院

哥倫比亞國家統計局

哥倫比亞移民局

哥倫比亞國家網絡警察局

哥倫比亞衛生部

表3-1 來源信息


3.2.2 惡意附件文檔


該組織擅于使用攜帶惡意宏的MHTML格式的word文檔作為攻擊載荷。在此次攻擊活動中,我們觀察到攻擊者更改了初期的攻擊策略,其先將帶有短鏈接內容的PDF或RTF格式的惡意附件作為第一階段的誘餌文檔,再通過誘導受害者點擊鏈接后,跳轉到指定的服務器上下載惡意文檔,該惡意文檔是包含宏代碼的word文檔。從這些PDF/RTF格式的惡意附件在VT上的掃描結果(如圖3-6)可以看到,它們的查殺率普遍偏低甚至為0。攻擊者將這類低查殺率的惡意文檔作為郵件附件,能在一定程度上達到繞過郵件網關的目的。



3-6.jpg

圖3-6 VT查殺結果


3.2.3 域名使用偏好


我們將該組織在早期行動中使用的動態域名,與本次行動所使用的域名做對比分析,可以很清晰的看出,這些域名都是通過同一個動態域名商DNSEXIT注冊的。此外,在本次事件中的域名“medicosta.linkpc.net”與2018年事件中的域名“medicosco.publicvm.com”相似度極高,由此猜測它們極有可能是由同一組織注冊。


3.2.4 IP地址關聯


根據我們在3.1小節中所分析的結果顯示,攻擊者所有關聯域名的曾綁定和現綁定的IP地址,均由互聯網運營商Unus.Ins公司提供,且大多數用作VPN服務。這與該組織在2018年的攻擊事件中發送郵件時使用的VPN相關IP地址128.90.xxx.xxx網段完全相同,由此可以看出這極有可能是出自同一組織。


3.2.5 地理位置特性


從攻擊者所使用的C&C基礎設施來看,其所使用的所有IP地址(包括128.90.xxx.xxx、191.95.xxx.xxx、190.253.xxx.xxx及179.33.xxx.xxx等網段)均歸屬于哥倫比亞的ISP(如圖3-7)。而這些IP地理位置也與該組織早期活動涉及的地理位置相同。



3-7.jpg

圖3-7 IP地址的地理位置


基于該組織從偽裝來源信息、誘餌文檔、域名使用偏好、IP地址關聯以及地理位置特性等方面的對比分析,我們初步推斷本次的攻擊行動來自“APT-C-36盲眼鷹”組織。


四、攻擊載荷分析


圖4-1顯示了黑客組織在此次攻擊活動中的整個流程。


4-1.jpg

圖4-1 黑客攻擊流程圖


在初期階段,該組織首先利用與其偽裝來源有關的主題郵件,附加惡意文檔一并發送給攻擊目標。當受害者點擊文檔中的短鏈接時,其實際上是被重定向到下一階段DOC文檔的托管平臺,從而執行下載流程。該DOC文檔運行后會啟動惡意宏代碼,訪問并解析執行指定的頁面(html文件),隨后從C&C服務器上下載payload文件,成功下載后立即執行。此payload會在內存中加載執行其解密后的DLL模塊來實現第一階段的功能,接著第二階段的DLL模塊再執行其解密后的EXE模塊,為了隱藏惡意下發功能,第三階段的EXE模塊會將解密后的可執行PE文件(AsyncRAT遠控木馬)映射到傀儡進程中執行。最后,AsyncRAT木馬程序與C&C服務器建立SSL通信,接收控制指令以實現其間諜活動。


攻擊者為了隱藏其真實企圖,采用多層模塊嵌套和以不落地形式在內存中加載執行木馬程序的手法,再結合該木馬針對自身運行環境檢測(如虛擬機、沙箱、反調試等)的功能,以避免其在自動化系統分析中暴露惡意行為。下文,我們從黑客組織近期攻擊事件的案例中,選取一例進行詳細的剖析。


4.1釣魚郵件


圖4-2展示了攻擊者仿冒來自哥倫比亞國家衛生部的釣魚郵件,郵件標題為“Usted hasido citado para una prueba obligatoria de (COVID-19)”(翻譯后為:“您被要求參加強制性檢測(COVID-19)”),正文內容是關于檢測的相關問題(如圖4-3),并聲稱郵件附件是檢測時間和地點,以誘導受害者打開附件文檔。

4-2.jpg

圖4-2 仿冒來自哥倫比亞國家衛生部的釣魚郵件


4-3.jpg

圖4-3 郵件翻譯后的內容


4.2惡意文檔


黑客組織所使用的惡意文檔包括PDF、RTF以及MHTML格式的DOC文檔。其并未使用漏洞,而是通過嵌入的惡意宏代碼來觸發后續惡意行為。與該組織以往攻擊手法不同的是,本次并未直接通過郵件傳播MHTML格式的惡意文檔,而是將包含一個跳轉鏈接(該鏈接指向MHTML格式的惡意文檔)的正常文檔作為郵件附件來進行投遞,以繞過郵箱網關的安全檢測。


圖4-4是4.1小節中的郵件附件,該pdf文件包含哥倫比亞國家衛生部的標志、一行文本信息(標注文檔密碼,實則無用)和一個名為“Ver comunicado”的跳轉鏈接(如圖X)。


4-4.jpg

圖4-4 PDF文檔跳轉鏈接內容


當用戶點擊文檔鏈接時,實際上攻擊者是利用Acortarurl短鏈接服務平臺將受害者重定向到其指定的服務器上,下載MHTML格式的word文檔。圖4-5為訪問Acortarurl的流量內容。

4-5.jpg

圖4-5 Acortarurl的流量內容


雖然此案例中的惡意文檔鏈接已失效,不過通過關聯分析后,我們發現了其他相關的惡意文檔。該文檔同樣是偽裝成來自哥倫比亞國家衛生部,攻擊者在文檔正文利用西班牙語誘導用戶點擊“啟用內容”按鈕來查看檢測時間和地點。具體內容如圖4-6所示。


圖4-6 內嵌VBA的DOC惡意文檔內容


當我們查看該文檔的VBA工程時,提示需要輸入密碼。解密后從宏代碼的內容可以看到,當受害者啟用宏功能后,惡意代碼將自動執行Document_Open函數。具體內容如圖4-7所示。


圖4-7 惡意宏代碼內容


該函數會利用Microsoft工具mshta.exe來解析“http://pastebin.com/raw/Xrp7W0V3”(放置在pastebin網址上的html惡意腳本文件)。具體內容如圖4-8所示。


圖4-8 加密的HTML腳本文件內容


解密后的惡意腳本文件主要功能是利用Windows內置程序certutil.exe遠程下載指定的EXE文件,然后將其保存至“%appdata%msts.exe”并執行該程序。


圖4-9 解密后的HTML腳本文件內容


4.3 Payload


如上文所示,通過html惡意腳本下載并執行的“msts.exe”(C#編寫并加入了大量的混淆)實際上是一個Dropper文件?!癿sts.exe”會從資源中解密出“DriverUpdate.dll”(C#編寫)并在內存中反射加載該DLL模塊來實現第一階段的功能;接著第二階段的“DriverUpdate.dll”再解密出其原始文件“msts.exe”中的另一個資源數據,然后執行解密后的“Cyrus.exe”模塊;第三階段的“Cyrus.exe”從自身資源中解密出Async RAT遠控木馬,并將其整個文件覆蓋映射到當前進程中執行。最后,Async RAT木馬程序與C&C服務器進行通信連接,連接成功則發送上線包請求上線,并等待接收控制指令。


4.3.1 第一階段模塊


“msts.exe”主要用于解密并在內存中加載下一階段的功能模塊。其將自身偽裝成Intel無線驅動應用程序,并附有詳細的文件說明和版本號(如圖4-10),以此迷惑攻擊目標。


圖4-10 “msts.exe”文件屬性詳細信息


該Dropper模塊的入口點在WindowsFormsApplication1處(如圖4-11),其首先通過調用SelectedCard類中的D_D_D_D函數對名為“xor4”的資源數據進行解密。


圖4-11 Dropper模塊的入口函數


解密算法是循環異或運算,其固定密鑰為“RR5IRBNF5F4GN7997QFBYY”,解密代碼如圖4-12所示。


4-12.jpg

圖4-12 解密代碼具體內容


在解密出PE文件后,Dropper模塊則附加三個啟動參數(“AcBRmi、S8epuew和IntelWireless”)來加載執行第二階段的功能模塊。


圖4-13 加載執行功能代碼


4.3.2 第二階段模塊


該階段模塊的文件名為“DriverUpdater.dll”,當此模塊運行后,會提取和解密第一階段Dropper模塊中另一個資源文件“AcBRmi”,之后在內存中加載執行解密出的第三階段的PE文件。


圖4-14 解密和執行PE文件的功能代碼


解密算法依然是循環異或運算,其密鑰為“CZysHnTTIiop”,解密代碼如圖4-15所示。

4-15.jpg

圖4-15 異或解密算法代碼


4.3.3 第三階段模塊


此功能模塊的文件名稱是“Cyrus.exe”,其主要任務為解密和執行最終的遠控木馬。
(1)初始化階段


在執行入口函數之前,該模塊會在初始化Class3的私有成員變量byte_Data時,先調用Class1類的方法解密自身資源文件Kdgv。具體如圖4-16所示。


圖4-16 解密資源文件


資源數據的首次解密采用簡單的異或加密算法,固定密鑰為"dXhhaxrqDcQ",通過對資源數據的每個字節做簡單的XOR運算完成第一次解密。解密函數的代碼如圖4-17所示。


圖4-17 解密函數代碼內容


第一次解密前和解密后的資源數據如圖4-18所示。


4-18.jpg

圖4-18 首次解密前后的數據內容


之后再對第一次解密后的數據進行二次解密,前16位為解密密鑰“0x19 0xEF 0xB6 0xB6 0xE7 0x7E 0x920x92 0x0D 0xA0 0xE0 0x95 0xAD 0x8F 0x6B 0x14”,后面緊跟著的是待解密密文。解密前后的數據內容如圖4-19所示。


圖4-19 二次解密前后的數據內容


函數以16字節為循環,將密鑰同密文依次進行按位異或,最終解密得到“Stub.exe”文件。解密函數代碼如圖4-29所示。

4-20.jpg

圖4-20 解密函數代碼內容


除此之外,該模塊還會將提取出的配置信息數據,分別賦值給它們所對應的私有成員變量,在我們分析的此案例中,其配置數據大部分的值都為0。具體內容如圖4-21所示。


圖4-21 配置信息數據內容


(2)執行主功能代碼


該模塊首先使用Assembly.GetEntryAssembly().Location獲取當前進程的全路徑。接著通過判斷上文提到的部分私有成員變量值來決定要執行的流程分支,其中包括互斥體的創建、虛擬機和沙箱的檢測、文件下載、拷貝自身等。在本案例樣本中,根據其配置信息來看,此模塊僅執行最后一項流程,調用smethod_11函數。代碼如圖4-22所示。


圖4-22 代碼執行流程


進入到smethod_11函數后,該模塊先調用Class3.SelectPuppetProcess來選擇后續執行的RAT載體。由于參數int_13的值為0,所以返回值為string_10(當前模塊的全路徑)。


圖4-23 代碼內容


在選擇完RAT的傀儡進程后,該模塊再調用smethod_9函數,其中參數1為自身進程的全路徑,參數2為之前解密出的PE文件數據。首先,該模塊重新創建一個自身新進程,然后卸載此進程映像,并把之前解密出的新PE頭部,以及節數據依次寫入到新進程模塊中,最后修改OEP并啟動運行(“Stub.exe”)。

4-24.jpg

圖4-24 寫入和執行新PE文件


4.3.4 RAT模塊


如上文所述,被執行的名為“Stub.exe”的PE文件則是最終的RAT模塊。通過分析和溯源后發現,該PE文件是用C#語言編寫的AsyncRAT遠控木馬。除了遠程桌面監控、鍵盤記錄、進程管理、遠程WebCam、遠程Shell等功能以外,其還包括加密、反沙盒、反虛擬機、反分析和反調試等對抗模塊。下面我們會對RAT中的核心部分做深入的分析。


4-25.jpg

圖4-25遠程程序AsyncRAT控制端


(1)初始化配置信息


木馬程序通過調用Settings.InitializeSettings函數來初始化配置信息。從圖4-26中的函數實現代碼可以看到,其會提取出固定的密鑰并使用AES256算法解密出所有的配置數據信息。包含端口號、Host信息、版本號、Pastebin信息、解密秘鑰、SSL通信證書及證書簽名等信息,之后調用Settings.VerifyHash函數對證書進行驗證。


4-26.jpg

圖4-26 初始化配置信息


解密之后的配置信息如圖4-27所示。


4-27.jpg

圖4-27 配置信息詳細內容


(2)檢測運行環境


為了逃避沙箱/安全人員的檢測,木馬程序使用了各種識別沙箱/虛擬機的技術,用于判斷自身程序所在的運行環境,如果發現是在虛擬環境,或是被調試狀態,程序則直接退出。從而達到隱藏自身,規避檢測的目的。下面是該木馬使用到的技術。


  • VMWARE和VirtualBox虛擬機的檢測。

圖4-28 虛擬機的檢測


  • SandBox的檢測。


4-29.jpg

圖4-29 沙盒的檢測


  • 判斷程序自身是否被調試。

4-30.jpg

圖4-30 調試環境的檢測


  • 通過判斷獲取的硬盤容量是否大于6100000000L(56.81G),來檢測是否為真實機器或虛擬環境。


4-31.jpg

圖4-31 判斷硬盤容量


(3)安裝機制


木馬程序的安裝機制包括進程唯一性判斷、在宿主機的持久化設置和守護進程設置。該木馬以解密配置信息中的MTX字串"AsyncMutex_s8H9OlmYu”為名來創建互斥體,以保證運行進程的唯一性。



4-32.jpg

圖4-32 創建互斥體


其還會判斷當前執行文件路徑與安裝目錄是否一致,如果相同,則代表該模塊已安裝過,安裝功能便不再執行。如不相同,該木馬則會通過對比系統中運行的進程名來確保運行進程的唯一性。具體代碼如圖4-33所示。


4-33.jpg

圖4-33 判斷安裝路徑


之后,木馬程序根據當前是否為管理員執行權限,來選擇是通過安裝計劃任務還是寫入開機自啟動命令實現持久化。具體代碼如圖4-34所示。


4-34.jpg

圖4-34 安裝計劃任務或添加自啟動


在完成持久化操作后,木馬程序將自身重新寫入到安裝目錄下并命名為指定文件名(chromgoogle.exe)。然后再在臨時目錄下生成和執行.bat批處理腳本文件。該bat文件用于運行“chromgoogle.exe”可執行文件及自身刪除。具體內容如圖4-35所示。

4-35.jpg

圖4-35 腳本文件內容


最后,木馬程序通過提升當前進程權限及設置線程始終處于執行狀態方式,來實現守護進程。


4-36.jpg

圖4-36 進程守護實現代碼


(4)上線機制


在安裝機制設置完成后,木馬程序則通過配置信息中的IP和端口與控制端服務器建立SSL協議連接。此時該木馬會收集受感染主機的系統信息,并把這些信息壓縮后作為上線包發送到C&C服務器。上線包的內容包含主機設備的用戶名、系統版本號、管理員賬號和木馬程序當前執行路徑、版本號、安裝時間等相關信息。通過對木馬程序的分析,我們發現上線包的長度是不固定的。啟明星辰ADLab研究員在對上線包格式做解析、提取后,整理歸納出木馬程序上線數據包格式和上線數據包內容格式。具體如表4-1和圖4-37(其中“綠色橫格”作為一組數據的分割線)所示。



數據大小

數據說明

數據內容

0x01

子包數量  (以組為單位)

0x8D(HEX值固定)

0x01

名稱長度

0xA6(HEX值固定)

0x06

名稱

“Packet”(字符串值固定)

0x01

包名長度

0xAA(HEX值固定)

0x0A

上線包名

“ClientInfo”(字符串值固定)




0x01

名稱長度

0xA4(HEX值固定)

0x04

名稱

“HWID”(字符串值固定)

不固定

標識碼長度

不固定(如0xB4)

不固定

唯一機器標識碼

不固定(如“F40DD340EC6FDDB01847140”)




0x01

名稱長度

0xA4(HEX值固定)

0x04

名稱

“User”(字符串值固定)

不固定

用戶名長度

不固定(如0xAA)

不固定

用戶名

不固定(如“xxx”)




0x01

名稱長度

0xA4(HEX值固定)

0x04

名稱

“Path”(字符串值固定)

不固定

路徑長度

不固定

不固定

惡意代碼當前執行路徑

不固定




0x01

名稱長度

0xA7(HEX值固定)

0x07

名稱

“Version”(字符串值固定)

不固定

版本號長度

不固定(如0xA7)

不固定

惡意代碼版本號

不固定




0x01

名稱長度

0xA5(HEX值固定)

0x05

名稱

“Admin”(字符串值固定)

不固定

管理員賬號名長度

不固定(如0xA5)

不固定

管理員賬號名

不固定(如“Admin”)




0x01

名稱長度

0xAB(HEX值固定)

0x0B

名稱

“Performance”(字符串值固定)

不固定

窗口信息長度

不固定

不固定

用戶前臺窗口信息

不固定




0x01

名稱長度

0xA8(HEX值固定)

0x08

名稱

“Pastebin”(字符串值固定)

不固定

Pastebin值長度

不固定(0xA4)

不固定

配置中Pastebin的值

不固定(如“null”)




0x01

名稱長度

0xA9(HEX值固定)

0x09

名稱

“Antivirus”(字符串值固定)

不固定

信息長度

不固定

不固定

殺毒軟件信息

不固定(如“N/A”)




0x01

名稱長度

0xA9(HEX值固定)

0x09

名稱

“Install”(字符串值固定)

不固定

信息長度

不固定(如0xB1)

不固定

惡意代碼安裝時間信息

不固定




0x01

名稱長度

0xA4(HEX值固定)

0x04

名稱

“Pong”(字符串值固定)




0x01

名稱長度

0xA5(HEX值固定)

0x05

名稱

“Group”(字符串值固定)

不固定

Group值長度

不固定(如0xA7)

不固定

配置中Group的值

不固定(如“Default”)


表4-1 上線數據包格式


圖4-37 上線數據包內容格式


下面是木馬程序發送上線請求的具體操作步驟:


  • 步驟1

其首先會對配置信息中“Pastebin”的值做判斷,如果不為NULL,則使用webClient.DownloadString方法獲取服務端的上線域名/IP和端口號(從“Pastebin”上提?。?。部分代碼如圖4-38所示。


圖4-38 從“Pastebin”上提取上線域名和端口號


如果為NULL,則直接從配置信息中提取出對應的上線域名/IP和端口號(以逗號作為分隔符),這表明該木馬程序是具有配置多個C2的功能,攻擊者能夠靈活地添加多個備用C2,即使其中一部分被阻斷,也能夠重獲控制權。具體代碼如圖4-39所示。


4-39.jpg

圖4-39 從配置信息中提取上線域名和端口號


  • 步驟2

木馬程序在與控制端連接成功后,便開始調用自定義類方法IdSender.SendInfo方法,收集受感染主機和木馬自身版本等相關信息,這些信息會被逐個的儲存在MsgPack類中。獲取設備信息代碼如圖4-40所示。


圖4-40 獲取設備信息


  • 步驟3

在此之后,木馬程序調用msgPack.Encode2Bytes函數對上線包數據進行封包。該函數首先會執行this.Encode2Stream方法,通過調試分析得知,由于該木馬是使用map類型來存儲上線數據,那么此處便會調用this.WriteMap方法來操作上線包。


圖4-41 調用this.WriteMap方法


木馬程序封包功能主要是在Encode2Stream方法中實現,為了能更直觀地將上線數據包處理流程展現給讀者,我們以本案例作為參考,繪制出整個封包的流程圖(如圖4-42)。


圖4-42 數據包封包流程圖


我們通過對封包函數的交叉引用進行詳細分析后,得出該木馬程序的上線包(以及后續的心跳包和控制指令包)均采用此方式進行處理。需要特別注意的是,代表其子包的數量值(value)、名稱和數據的長度值(value),實際上都是先對這些數據的真實值(num和len)做判斷,再將真實值與對應的固定值相加,最后得出value值。發送包格式如表4-2所示(可結合圖4-37理解)。


子包數量

(/組)

長度

(子包1name)

數據

(子包1name)

長度

(子包1data)

數據

(子包1data)

子包2

num

name_value

string_name

data_value

string_data

……

表4-2 數據包格式


  • 步驟4

在封包完畢后,木馬程序使用GZipStream類的方法對上線包進行壓縮處理。代碼如圖4-43所示。


4-43.png

圖4-43 數據包壓縮處理


  • 步驟5

最后,該木馬會將數據包包長和數據包(獲取的信息)分兩個包依次發送給控制端申請上線。


圖4-44 發送數據包

(5)心跳機制


木馬程序通過使用Timer類實現了自身的心跳機制。其主要功能是每10到15秒向控制端發送心跳包,心跳包內容包含包名和被感染主機系統用戶前臺窗口信息。


圖4-45 發送心跳包


由圖4-45中的代碼實現可見,該遠程木馬心跳包的數據是同樣使用MsgPack.Encode2Byte方法進行封包處理的。


(6)遠程控制


在針對木馬程序處理控制命令部分進行詳細分析時,我們發現在被控端木馬的惡意代碼中,并未包含任何遠程指令的具體實現功能代碼。于是我們針對控制端和被控端做進一步的調試和觀察后,發現所有跟遠程操作相關的功能代碼,都是根據其功能進行歸類且被封裝在不同的DLL模塊中。當控制端在執行遠程操作時,則首先與被控端發送特定的數據包進行交互,接著再將壓縮后的功能模塊附加到數據包中發送給被控端,由被控端以不落地形式在內存中加載執行,來完成控制端指定的控制命令。通過采用“propelling in use,destory after use”的工作模式,攻擊者既可以靈活地調整木馬程序的配置信息,又能較有效地防止取證分析人員獲取其核心攻擊模塊,且在一定程度上達到免殺和繞過安全機制的效果。圖4-46是木馬程序在執行控制命令時(以“遠程控制桌面”指令為例),兩端之間的具體操作流程圖。


圖4-46 遠程操作交互流程圖


該遠控木馬程序總共有十幾個可執行核心功能模塊,其中包含遠程桌面監控、Webcam監控、鍵盤記錄、文件查找、遠程shell、Bots Killer以及DDos攻擊等功能。表4-3列出了所有模塊的名稱以及其所對應的功能。


模塊名稱

模塊功能

Chat.dll

Chat

Extra.dll

Visit  Website /Send MessageBox /Get Admin Privileges / Disable Windows Defender  /Set Wallpaper

FileManager.dll

File  Manager

FileSearcher.dll

File  Searcher

LimeLogger.dll

Keylogger

Miscellaneous.dll

BotsKill  /USB Spread /Seed Torrent /Remote Shell /DOS Attack /Execute.NET Code

Options.dll

Report  Window

ProcessManager.dll

Process  Manager

Recovery.dll

Password  Recovery

RemoteCamera.dll

Webcam

RemoteDesktop.dll

Remote  Desktop

SendFile.dll

Send  File To Disk

SendMemory.dll

Send  File To Memory

表4-3 核心模塊功能解析


表4-4為部分攻擊指令數據包的內容。其中黃色標注部分為:當控制端要執行遠程控制操作時,其與被控端交互的通用數據包格式(除“string_SHA256”和“壓縮后的二進制數據”以外,其他內容都相同),其余都是其他相關操作的信息指令。


數據內容

數據說明

“Packet”“plugin”

“DLL”“string_SHR256”(由C&C服務器發起)

------------------------------------------------------

“Packet”“SendPlugin”

“DLL”“string_SHR256”(由RAT發起)

------------------------------------------------------

“Packet”“plugin”

“DLL”“壓縮后的二進制數據”

“Hash”“string_SHR256” (由C&C服務器發起)

動態回傳各類控制指令功能模塊數據包。

“Packet”“dos”

“Option”“postStart”

“Host”“string_host”

“Port”“string_port”

“Timeout”“string_timeout”

DDos攻擊相關配置信息

“Packet”“fileManager”

“Command”“getPath”

“Path”“string_path”

------------------------------------------------------

“Packet”“fileManager”

“Command”“getDriver”

遠程文件管理相關操作信息

“Packet”“keylogger”

“isON”“false”

鍵盤記錄相關操作信息

“Packet”“processManager”

“Option”“Kill”

“ID”“string_id”

------------------------------------------------------

“Packet”“processManager”

“Option”“List”

進程管理相關操作信息

“Packet”“ShellWriteInput”

“WriteInput”“string_txt”

------------------------------------------------------

“Packet”“ShellWriteInput”

“WriteInput”“exit”

遠程Shell執行相關操作信息

表4-4 攻擊指令數據包解析


 五、總 結


通過分析可以看出,“APT-C-36盲眼鷹”組織主要采用的手法是網絡釣魚攻擊,即以使用帶有社工偽裝的郵件(仿冒國家政府部門)作為攻擊入口,利用低查殺率的郵件附件(用于繞過郵箱網關)向目標主機投放后門程序。在侵入主機設備后,再通過多層嵌套加載、虛擬機沙箱檢測及功能模塊動態推送等技術手段,達到在目標主機上長期潛伏而不被發現的效果。同時,結合對該組織歷史攻擊武器的深入研究我們發現,為了應對不斷進步的安全防御和檢測,該黑客組織改進了其攻擊策略,所使用的后門木馬工具更復雜、對抗性更強,這表明該組織在持續地更新迭代惡意代碼的功能和形態,并呈現出功能模塊化的趨勢。


鑒于該黑客組織長期通過釣魚郵件以及OfficeVBA宏進行攻擊的慣用手段,我們建議相關用戶不要隨意打開和下載未知來源的郵件附件及鏈接,做好郵件系統的防護,如有需要可通過打開Office文檔中的:文件-選項-信任中心-信任中心設置-宏設置,來禁用一切宏代碼執行。一旦系統或服務器出現異常行為,及時報告并請專業人員進行排查,以消除安全隱患。

 


IOC

SHAR·1

612b7cd95eb317c2931d89acfb1c99506d799d26

ee42b8a4b53c8363828b9bc732045aa248e1d64a

e9e0871d37d1765756175e8931eedadb3f210b9b

e9e0871d37d1765756175e8931eedadb3f210b9b

c277bb8d01cb3e9d18d5378c6f518f4faca508fb

b586969a25aca22612ff59978d3a6062663baa86

79bf3730a7089b5c108bad883c1cc9a3779cb366

IP

128.90.112.142

128.90.112.231

128.90.105.72

URL

https://acortaurl.com/diangovocestadodecuentadeudaquotamp___P

https://acortaurl.com/activarcedulaonlineregistraduriagovcoquotamp__

https://yip.su/2oTZk

https://acortaurl.com/pdfproceso00910020190976543

https://acortaurl.com/diangovcodocumentos2019deudaalafecha0393948amp_



啟明星辰積極防御實驗室(ADLab)


ADLab成立于1999年,是中國安全行業最早成立的攻防技術研究實驗室之一,微軟MAPP計劃核心成員,“黑雀攻擊”概念首推者。截止目前,ADLab已通過CVE累計發布安全漏洞近1100個,通過 CNVD/CNNVD累計發布安全漏洞900余個,持續保持國際網絡安全領域一流水準。實驗室研究方向涵蓋操作系統與應用系統安全研究、移動智能終端安全研究、物聯網智能設備安全研究、Web安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。


lab.jpg