新攻擊新武器:盲眼鷹APT組織最新攻擊活動完全分析
發布時間 2020-08-14一、概述
此外,該黑客組織還采用了“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 偽裝成哥倫比亞衛生部郵件之一
(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-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 偽裝成哥倫比亞民事身份登記處的郵件
圖2-7是攻擊者偽裝成哥倫比亞檢察院的攻擊郵件。郵件主題為“El presentees el requerimiento enviado a declarar por el proceso iniciado en su contra(ultimo aviso)”(翻譯后為:“這是針對您發起的處理流程聲明(最后通知)”)。
圖2-7 偽裝成哥倫比亞檢察院的郵件
圖2-8是攻擊者偽裝成哥倫比亞移民局的攻擊郵件。郵件主題為“Comunicado710297647: Proceso Penal Pendiente”(翻譯后為:“聲明710297647:待定刑事訴訟法”)。
圖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-10 IP Logger短鏈接平臺
附件PDF文檔中內嵌一個名為“Ver comunicado”的跳轉鏈接和一行文本信息(僅用于提升文檔的可信度)。其指向的惡意鏈接使用的是Acortarurl短鏈接服務。
三、溯源與關聯分析
在對本次攻擊樣本的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-2 Scamalytics公司標注信息
圖3-3為該組織在此次攻擊活動中使用的部分域名、IP、PE文件和Office文件的對應關系。
圖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關聯和技術演進分析
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 VT查殺結果
3.2.3 域名使用偏好
我們將該組織在早期行動中使用的動態域名,與本次行動所使用的域名做對比分析,可以很清晰的看出,這些域名都是通過同一個動態域名商DNSEXIT注冊的。此外,在本次事件中的域名“medicosta.linkpc.net”與2018年事件中的域名“medicosco.publicvm.com”相似度極高,由此猜測它們極有可能是由同一組織注冊。
3.2.4 IP地址關聯
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 IP地址的地理位置
基于該組織從偽裝來源信息、誘餌文檔、域名使用偏好、IP地址關聯以及地理位置特性等方面的對比分析,我們初步推斷本次的攻擊行動來自“APT-C-36盲眼鷹”組織。
四、攻擊載荷分析
圖4-1顯示了黑客組織在此次攻擊活動中的整個流程。
圖4-1 黑客攻擊流程圖
攻擊者為了隱藏其真實企圖,采用多層模塊嵌套和以不落地形式在內存中加載執行木馬程序的手法,再結合該木馬針對自身運行環境檢測(如虛擬機、沙箱、反調試等)的功能,以避免其在自動化系統分析中暴露惡意行為。下文,我們從黑客組織近期攻擊事件的案例中,選取一例進行詳細的剖析。
4.1釣魚郵件
圖4-2展示了攻擊者仿冒來自哥倫比亞國家衛生部的釣魚郵件,郵件標題為“Usted hasido citado para una prueba obligatoria de (COVID-19)”(翻譯后為:“您被要求參加強制性檢測(COVID-19)”),正文內容是關于檢測的相關問題(如圖4-3),并聲稱郵件附件是檢測時間和地點,以誘導受害者打開附件文檔。
圖4-3 郵件翻譯后的內容
4.2惡意文檔
黑客組織所使用的惡意文檔包括PDF、RTF以及MHTML格式的DOC文檔。其并未使用漏洞,而是通過嵌入的惡意宏代碼來觸發后續惡意行為。與該組織以往攻擊手法不同的是,本次并未直接通過郵件傳播MHTML格式的惡意文檔,而是將包含一個跳轉鏈接(該鏈接指向MHTML格式的惡意文檔)的正常文檔作為郵件附件來進行投遞,以繞過郵箱網關的安全檢測。
圖4-4是4.1小節中的郵件附件,該pdf文件包含哥倫比亞國家衛生部的標志、一行文本信息(標注文檔密碼,實則無用)和一個名為“Ver comunicado”的跳轉鏈接(如圖X)。
圖4-4 PDF文檔跳轉鏈接內容
當用戶點擊文檔鏈接時,實際上攻擊者是利用Acortarurl短鏈接服務平臺將受害者重定向到其指定的服務器上,下載MHTML格式的word文檔。圖4-5為訪問Acortarurl的流量內容。
雖然此案例中的惡意文檔鏈接已失效,不過通過關聯分析后,我們發現了其他相關的惡意文檔。該文檔同樣是偽裝成來自哥倫比亞國家衛生部,攻擊者在文檔正文利用西班牙語誘導用戶點擊“啟用內容”按鈕來查看檢測時間和地點。具體內容如圖4-6所示。
圖4-6 內嵌VBA的DOC惡意文檔內容
當我們查看該文檔的VBA工程時,提示需要輸入密碼。解密后從宏代碼的內容可以看到,當受害者啟用宏功能后,惡意代碼將自動執行Document_Open函數。具體內容如圖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 解密代碼具體內容
在解密出PE文件后,Dropper模塊則附加三個啟動參數(“AcBRmi、S8epuew和IntelWireless”)來加載執行第二階段的功能模塊。
4.3.2 第二階段模塊
該階段模塊的文件名為“DriverUpdater.dll”,當此模塊運行后,會提取和解密第一階段Dropper模塊中另一個資源文件“AcBRmi”,之后在內存中加載執行解密出的第三階段的PE文件。
圖4-14 解密和執行PE文件的功能代碼
解密算法依然是循環異或運算,其密鑰為“CZysHnTTIiop”,解密代碼如圖4-15所示。
4.3.3 第三階段模塊
在執行入口函數之前,該模塊會在初始化Class3的私有成員變量byte_Data時,先調用Class1類的方法解密自身資源文件Kdgv。具體如圖4-16所示。
圖4-16 解密資源文件
資源數據的首次解密采用簡單的異或加密算法,固定密鑰為"dXhhaxrqDcQ",通過對資源數據的每個字節做簡單的XOR運算完成第一次解密。解密函數的代碼如圖4-17所示。
圖4-17 解密函數代碼內容
第一次解密前和解密后的資源數據如圖4-18所示。
圖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所示。
除此之外,該模塊還會將提取出的配置信息數據,分別賦值給它們所對應的私有成員變量,在我們分析的此案例中,其配置數據大部分的值都為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.3.4 RAT模塊
如上文所述,被執行的名為“Stub.exe”的PE文件則是最終的RAT模塊。通過分析和溯源后發現,該PE文件是用C#語言編寫的AsyncRAT遠控木馬。除了遠程桌面監控、鍵盤記錄、進程管理、遠程WebCam、遠程Shell等功能以外,其還包括加密、反沙盒、反虛擬機、反分析和反調試等對抗模塊。下面我們會對RAT中的核心部分做深入的分析。
圖4-25遠程程序AsyncRAT控制端
(1)初始化配置信息
木馬程序通過調用Settings.InitializeSettings函數來初始化配置信息。從圖4-26中的函數實現代碼可以看到,其會提取出固定的密鑰并使用AES256算法解密出所有的配置數據信息。包含端口號、Host信息、版本號、Pastebin信息、解密秘鑰、SSL通信證書及證書簽名等信息,之后調用Settings.VerifyHash函數對證書進行驗證。
圖4-26 初始化配置信息
解密之后的配置信息如圖4-27所示。
圖4-27 配置信息詳細內容
(2)檢測運行環境
為了逃避沙箱/安全人員的檢測,木馬程序使用了各種識別沙箱/虛擬機的技術,用于判斷自身程序所在的運行環境,如果發現是在虛擬環境,或是被調試狀態,程序則直接退出。從而達到隱藏自身,規避檢測的目的。下面是該木馬使用到的技術。
VMWARE和VirtualBox虛擬機的檢測。
圖4-28 虛擬機的檢測
SandBox的檢測。
圖4-29 沙盒的檢測
判斷程序自身是否被調試。
通過判斷獲取的硬盤容量是否大于6100000000L(56.81G),來檢測是否為真實機器或虛擬環境。
圖4-31 判斷硬盤容量
(3)安裝機制
木馬程序的安裝機制包括進程唯一性判斷、在宿主機的持久化設置和守護進程設置。該木馬以解密配置信息中的MTX字串"AsyncMutex_s8H9OlmYu”為名來創建互斥體,以保證運行進程的唯一性。
圖4-32 創建互斥體
其還會判斷當前執行文件路徑與安裝目錄是否一致,如果相同,則代表該模塊已安裝過,安裝功能便不再執行。如不相同,該木馬則會通過對比系統中運行的進程名來確保運行進程的唯一性。具體代碼如圖4-33所示。
圖4-33 判斷安裝路徑
之后,木馬程序根據當前是否為管理員執行權限,來選擇是通過安裝計劃任務還是寫入開機自啟動命令實現持久化。具體代碼如圖4-34所示。
圖4-34 安裝計劃任務或添加自啟動
在完成持久化操作后,木馬程序將自身重新寫入到安裝目錄下并命名為指定文件名(chromgoogle.exe)。然后再在臨時目錄下生成和執行.bat批處理腳本文件。該bat文件用于運行“chromgoogle.exe”可執行文件及自身刪除。具體內容如圖4-35所示。
圖4-35 腳本文件內容
最后,木馬程序通過提升當前進程權限及設置線程始終處于執行狀態方式,來實現守護進程。
圖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-37 上線數據包內容格式
步驟1
其首先會對配置信息中“Pastebin”的值做判斷,如果不為NULL,則使用webClient.DownloadString方法獲取服務端的上線域名/IP和端口號(從“Pastebin”上提?。?。部分代碼如圖4-38所示。
圖4-38 從“Pastebin”上提取上線域名和端口號
如果為NULL,則直接從配置信息中提取出對應的上線域名/IP和端口號(以逗號作為分隔符),這表明該木馬程序是具有配置多個C2的功能,攻擊者能夠靈活地添加多個備用C2,即使其中一部分被阻斷,也能夠重獲控制權。具體代碼如圖4-39所示。
圖4-39 從配置信息中提取上線域名和端口號
步驟2
木馬程序在與控制端連接成功后,便開始調用自定義類方法IdSender.SendInfo方法,收集受感染主機和木馬自身版本等相關信息,這些信息會被逐個的儲存在MsgPack類中。獲取設備信息代碼如圖4-40所示。
圖4-40 獲取設備信息
步驟3
在此之后,木馬程序調用msgPack.Encode2Bytes函數對上線包數據進行封包。該函數首先會執行this.Encode2Stream方法,通過調試分析得知,由于該木馬是使用map類型來存儲上線數據,那么此處便會調用this.WriteMap方法來操作上線包。
圖4-41 調用this.WriteMap方法
圖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 數據包壓縮處理
步驟5
最后,該木馬會將數據包包長和數據包(獲取的信息)分兩個包依次發送給控制端申請上線。
圖4-44 發送數據包
(5)心跳機制
木馬程序通過使用Timer類實現了自身的心跳機制。其主要功能是每10到15秒向控制端發送心跳包,心跳包內容包含包名和被感染主機系統用戶前臺窗口信息。
圖4-45 發送心跳包
(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安全研究、工控系統安全研究、云安全研究。研究成果應用于產品核心技術研究、國家重點科技項目攻關、專業安全服務等。