APT34攻擊全本分析
一、事件綜述
2019年4月18日,駭客/駭客組織使用假名Lab Dookhtegan在Telegram頻道上出售APT34團伙的工具包,此外還有收集到的受害者資料及工具後端皮膚內容截圖。早在2019年3月中旬,該駭客/駭客組織就已經開始在網路上釋出並售賣此套工具包。非常有意思的是,科威特的安全公司CEO發twitter特別強調了這個訊息的真實性:
此次洩露的工具包中工具列表如下:
- Glimpse(基於PowerShell的的新版木馬,Palo Alto Networks命名為BondUpdater)
- PoisonFrog(舊版BondUpdater)
- HyperShell
- HighShell(Palo Alto Networks稱之為TwoFace)
- MinionProject(fox管理介面,載入了HighShell模組)
- Webmask(HTTP代理劫持工具,DNSpionage的主要工具,用於DNS修改)
綠盟科技伏影實驗室和綠盟M01N戰隊的成員共同對此工具包進行了分析,確定此次洩露的工具包中的工具相較於以前公佈的APT34組織使用的攻擊工具有不同。本文將對此次洩露的工具進行詳細分析,同時,從TTPs的角度來對此次洩露的工具進行解讀。
攻擊目標行業梳理
APT34主要針對中東國家。本次事件中國內地及台灣地區受到攻擊。在過去的幾年間,該組織對中國內地和台灣地區、土耳其、阿爾巴尼亞等地區均進行過攻擊。
經過分析,我們找到了與國內公司相關的14個Webshell檔案,6個港澳臺地區公司相關的Webshell檔案。
公佈的工具集中也包含了大量的口令資訊,按照資訊來源進行打包並公佈:
可以從中看到機場、石油公司相關的名稱。被公佈的口令強度很低,此次一共公佈了1.2W多個弱口令:
APT34歷史資訊梳理
APT34組織由FireEye命名,該組織使用的工具和攻擊思路與OilRig組織相似度極高,而後者是由Palo Alto Networks持續追蹤的一個活躍在中東的組織,兩者相似度極高。該組織的活動時間至少可以追溯至2014年,其目標包含了金融,政府,能源,化工和電信等多個行業,該組織一直活躍在中東地區。
2017年11月4日,FireEye發現該組織使用CVE-2017-11882進行攻擊,其使用的攻擊工具與此次洩露的工具類似。
傳播方式梳理
該組織透過魚叉式釣魚郵件進行攻擊,其傳送的垃圾郵件往往附帶惡意連結,帶有CVE-2017-11882等漏洞的附件檔案,帶有誘導點選連結的演示文件等。
二、TTPs
本次APT34洩露樣本,經過對樣本功能分析,以TTPs角度從Procedures倒推APT34所涉及的攻擊戰術和技術,整體來看本次洩露樣本主要涉及到其攻擊鏈的四部分,包括Privilege Escalation、Collection、Exfiltration和Command and Control等。
Privilege Escalation階段
本次洩露樣本中涉及到HighShell、HyperShell以及MinionProject等多個Webshell後門程式,並且均為.Net程式,部分涉及到通訊加密以規避防禦。結合洩露檔案中包含的工具使用記錄文件和APT34已攻陷目標網站列表可以看出,APT34組織使用這些Webshell主要針對Exchange伺服器的Outlook郵箱系統的攻擊,並且被放置在/owa/auth/目錄下。全球已攻擊目標中共包含14箇中國內地能源行業和證券行業等的企業單位。
Collection階段
本次洩露樣本webmask推斷主要還是針對Outlook服務的攻擊,涉及Email Collection和Man in the Browser相關技術,從樣本原始碼和使用說明文件分析,該工具會去竊取Outlook使用者認證相關的郵箱賬號密碼及Cookie等資訊,並會透過向流量中注入程式碼的方式完成進一步的資訊收集。
Exfiltration階段
這裡主要是Exfiltration Over Command and Control Channel,攻擊者會在此階段透過C2控制將敏感資料以DNS協議方式進行回傳,這種方式可以規避掉一般的資料防洩漏防護而導致資訊的洩露。
Command and Control階段
本次洩露樣本分為新舊兩個版本的RAT,以DNS協議通訊為載體實現對目標伺服器的遠端控制:
舊版:poisonfrog.ps1
新版:Glimpse(dns_main.ps1)
經過對樣本的分析,可以發現兩個版本都使用了PowerShell作為Agent執行程式碼,且在執行之前需要劫持受害者的DNS伺服器以進行DNS重定向,從而解析攻擊者指定的域名字尾。透過使用特定的演算法生成子域名,受害者機器向DNS伺服器即C2 Server傳送子域名A/TXT記錄的DNS查詢請求並獲取C2提供的IPv4地址從而進行通訊。此外,還需要透過計劃任務的形式讓Powershell指令碼定期執行,從C2 Server端獲取資訊從而執行命令。該C2的功能主要包括命令執行,檔案上傳和下載。
舊版C2中已經包含了對代理的檢測,並透過從遠端伺服器下載檔案以進行網路代理的配置。但只支援對DNS A記錄的查詢。生成的子域名中包含了受害者系統的部分UUID值。
新版C2中不包含代理的配置,預設已經完成了對DNS的劫持。新增對DNS TXT記錄的解析。生成的子域名中不包含系統UUID值。
三、木馬及Webshell細節分析
工具目錄結構
Glimpse:
PoisonFrog:
Webmask:
Webshells_and_Panel:
在對檔案梳理並嘗試還原的過程中,我們發現遠控工具存在邏輯不全的地方,無法一鍵部署,需要進行分析和重新配置才可以正常執行,而Minion中也缺少檔案,無法直接執行:
因此,我們認為此次洩露的工具包內容不完全,在分析過程中應當特別注意,目前為止,我們並沒有發現洩露者預留後門。
Glimpse
Glimpse是一套使用DNS隧道的遠控工具,分為Agent、Panel和Server三部分;
Agent
Agent為受控端程式。
主要功能
啟動指令碼為runner_.vbs,用於啟動powershell主指令碼;
主體指令碼為dns_main.ps1,用於與服務端通訊。
檔案操作
程式生成特定目錄PUBLIC\Libraries\guid\(下稱agent目錄,guid由此指令碼生成),並在目錄下建立receivebox、sendbox、done等子資料夾,透過這些子目錄下的檔案讀寫來實現與服務端的通訊。
通訊流程
1. 程式使用ping mode(對應DNS A mode)和text mode(對應DNS TXT mode)兩種方式與服務端進行通訊,接收服務端的指令並以檔案的形式儲存到agent目錄\receivebox\下,以rcvd為檔名字首;
2. 判斷服務端指令並執行對應的行為;
服務端指令列表如下:
3. 服務端指令處理完成後,Agent會將agent目錄\sendbox下的檔案傳送至服務端。
Panel
Panel為該工具的圖形皮膚,用於管理Server與Agent的通訊。
Server
Server為服務端。
主要功能
此服務端透過DNS隧道協議進行通訊,能夠以A或TXT型別的DNS隧道進行檔案收發,由此向agent傳送指令或接收agent上傳的檔案。
檔案操作
程式建立ALLUSERSPROFILE/Glimpse/dns/aid/(下稱server目錄,aid為從agent接收到的guid編號),並在目錄下建立wait、receive、done、sended、sending等子資料夾,透過這些子目錄下的檔案讀寫來實現與agent的通訊。
通訊流程
1. 接收agent傳送的偽DNS請求;
2. 使用本地規則解析agent資訊:
偽DNS請求內容格式為:data.mainData.mainData2.mainData3,四個部分分別儲存不同的內容。
data部分
若data尾部字串為CxxT(x為任意字元),則此data為隧道協議資料,由server進行判斷;
若尾部非以上格式,則server進行轉發;
datarand: 記錄action和aid,資料位置可變,由reqNoIndex和actionIndex兩個值來決定
aid:此資料包的id資訊,server端據此生成server目錄
action:對應agent行為
mainData部分
儲存指令檔案的內容
mainData2部分
儲存指令檔名
mainData3部分
儲存C&C域名
隧道格式
服務端作為偽造的DNS伺服器,響應agent的DNS請求並回復指定ip字串,不同的ip字串指代不同的通訊內容。
ip字串對應如下:
PoisonFrog
主要功能
PoisonFrog是一款可以竊取受控端資訊和執行C&C端cmd指令的的遠控工具。
執行流程
1. 首先執行poisonfrog.ps1指令碼透過該指令碼釋放hUpdater.ps1和dUpdater.ps1指令碼,以及一個UpdateTask.vbs指令碼,並且設定Windows計劃任務
2. hUpdater.ps1指令碼訪問CC域名,透過域名下發的指令進行上傳和下載檔案功能。
3. dUpdater.ps1指令碼對目錄下檔案進行操作,識別指令碼名的最後一個字元作為指令,對檔案進行操作。
4. 計劃任務設定為每10分鐘執行1次UpdateTask.vbs指令碼。
下圖包含poisonfrog.ps1指令碼部分內容。
元件分析
hUpdater.ps1指令碼
該指令碼主要用於與C2伺服器傳送資料和從C2服務接收命令和檔案等。
當cfg.ini檔案存在時,會讀取檔案內容提取proxy代理,使用代理模式與C2伺服器進行通訊。
指令格式解析,透過從C2伺服器獲取字串,對字串進行分割操作,分隔符為“<>",分割後陣列不小於4。(eg:SSA[0]<>SSA[1]<>SSA[2]<>SSA[3]<>SSA[4]<>SSA[5])根據陣列中每位的不同對應響應的功能,例如當SSA[2]不等於"not"並且有值的時候執行下載檔案操作。下載到指定的目錄下。具體指令格式如下圖
dUpdater.ps1指令碼
根據receivebox資料夾下遍歷到的檔名(ZZA[0])最後一位字元作為指令解析:如下表格所示:
server端指令碼
Server端指令碼功能包含下發指令,上傳檔案以及下載檔案。指令格式與Agent端hUpdater.ps1指令碼中指令格式解析部分相對應。具體函式對應功能如下:
Webmask
該工具被APT34組織用於DNS代理與HTTP劫持。
主要功能
工具分為三部分,shell指令碼install.sh用於安裝,icap.py用於竊取密碼與劫持,dnsd.py、dnsd.js和config.json用於配置本地DNS代理。
元件分析
dnsd模組
該模組啟動本地DNS代理,配置檔案與代理伺服器ip由啟動引數指定,預設情況下,指令碼只進行dns轉發;
dnsd模組可使用python指令碼或js指令碼啟動,對應檔案為dnsd.py和dnsd.js。
guide.txt用於說明工具的使用方法,給出兩種解決方案:
第一種:
即使用dnsd.py進行透明代理
第二種:
即使用native-dns模組進行DNS代理,說明中給出的ip 195.229.237.52 為一個位於阿聯酋的DNS伺服器,而ip 185.162.235.106 為一個示例的bot IP;
icap模組
該模組是利用pyicap編寫的工具,pyicap是用於編寫ICAP伺服器的python3框架。ICAP通常用於擴充套件透明代理伺服器,在透明HTTP代理快取中實現內容過濾器等功能,能夠對HTTP請求/響應執行特定的服務,這些服務內容可以由開發者指定。
extract_login_password方法:用於竊取http資訊中的賬號密碼並記錄至指定檔案中。使用正規表示式對http請求中的資料進行提取。
同時,該工具記錄http互動中的頭部資訊,包括使用者端IP,請求時間,請求內容,記錄cookie資訊。在程式碼中我們發現了劫持程式碼,加入了以下的js指令碼語句:
當這部分執行時,第一個img src會使得受害者的機器訪問攻擊者伺服器上的logo.jpg,這個過程中會自動進行NTLM認證,此時攻擊者可以獲取到NetNTLMv2的hash值,該值可以用於MITM攻擊。
假設攻擊者已獲得對代理的控制權,他可以讓他的伺服器回答DNS對WPAD的請求,然後讓他的伺服器回答獲取具有實際上是PAC檔案的影像的請求。
Webshells_and_Panel
Webshells_and_Panel 目錄中主要包含了多種 C# 編寫的Webshell 工具:
有較為簡單,只有上傳功能的 simpleDownload.aspx:
還有再複雜一點的 simple.aspx(多了認證和命令執行的功能):
還有功能齊全的,看起來像是初版的 highshell.aspx,包含了檔案上傳,命令執行,資料庫操作等多種功能。這個版本 2017 年被 Palo Alto Networks報導過。
登入認證的方式如下:
用虛擬碼表示為:
Base64(sha256(bytes(cookies[“p”] + salt))) == pp
其中 salt 和 pp 均為預定義的值:
設定好 cookies 值後即可認證使用。
除此之外,在 Hypershell 目錄中還發現了多個版本的 highshell 的升級版(此為8.6.2, 還有其他版本,稍有差異)如下:
這個版本使用了 Semantic UI 框架重新編寫,同時後端也進行了模組化的拆分,比普通版本在工程化上更進了一步。認證方式和上述類似,都是基於 cookie 來認證的。
四、 IOC資訊
myleftheart.com
C:\Users\Public\Public\atag[0-9]{4}[A-Z]{2}
C:\Users\Public\Public\dUpdater.ps1
C:\Users\Public\Public\hUpdated.ps1
C:\Users\Public\Public\UpdateTask.vbs
27e03b98ae0f6f2650f378e9292384f1350f95ee4f3ac009e0113a8d9e2e14ed
b1d621091740e62c84fc8c62bcdad07873c8b61b83faba36097ef150fd6ec768
2943e69e6c34232dee3236ced38d41d378784a317eeaf6b90482014210fcd459
c3772977316a604504065b61635947727bd6ea1a4de358f679344688f4c31820
6950d0f99684678b595d3551ec6642a77b6e8be33aba061ef9b39379af9de46d
fe1b011fe089969d960d2dce2a61020725a02e15dbc812ee6b6ecc6a98875392
eb1ded644e7491f3f60982be9652cbe40b0c819329927ea654cb43e40acb9b1c
544a1f8fe76776f0172ac2e5dd8d7be6ee9b5a492054fa1f5505e2f0371ca5a7
228d1f1d90f26b64ab57e220ae0d883ddc3887a861cc935993ed0472b6083f61
99.250.250.199
199.250.250.99
11.24.237.110
253.25.42.87
3.2.1.0
1.2.3.0
185.56.91.61
195.229.237.52
185.162.235.106
94.23.172.164
46.105.221.247
148.251.55.110
185.15.247.147
145.239.33.100
82.102.14.219
五、緩解建議
1、注意陌生郵件,不主動點選非常見發件人發來的郵件中的附件,不隨意點選郵件中的附加的連結,避免出現資訊洩露或者計算機中毒的情況。
2、不使用弱口令密碼,應不定時更換密碼,保證密碼強度。
3、及時修復漏洞,注意邊界裝置、不常用裝置的自動更新正常開啟,保證裝置及軟體處於最新版本。
4、使用安全公司提供的邊界防護裝置、情報預警系統,防患於未然。
六、檢測手段
網路層面
檢查是否存在IOC中列舉的DNS解析伺服器地址;
檢查機器是否對外傳送大量的DNS請求,時間間隔為50ms一次;
異常的域名請求;
主機層面
檢查機器中是否存在以下目錄或檔案:
C:\Users\Public\Public\atag[0-9]{4}[A-Z]{2}
C:\Users\Public\Public\dUpdater.ps1
C:\Users\Public\Public\hUpdated.ps1
C:\Users\Public\Public\UpdateTask.vbs
檢查機器中DNS伺服器地址是否被篡改;
檢查http伺服器根目錄下是否存在未知檔案;
檢查主機是否監聽特定埠。
伏影實驗室專注於安全威脅研究與監測技術,包括但不限於威脅識別技術,威脅跟蹤技術,威脅捕獲技術,威脅主體識別技術。研究目標包括:殭屍網路威脅,DDOS對抗,WEB對抗,流行服務系統脆弱利用威脅、身份認證威脅,數字資產威脅,黑色產業威脅 及 新興威脅。透過掌控現網威脅來識別風險,緩解威脅傷害,為威脅對抗提供決策支撐。
相關文章
- SIM Jacker攻擊分析2024-11-15
- Hundred Finance 攻擊事件分析2023-11-05NaN事件
- 隱秘的攻擊形式:無檔案攻擊型別分析2020-08-03型別
- TARA攻擊樹分析方法論2022-03-21
- DarkHotel定向攻擊樣本分析2020-08-19
- Hacking Team攻擊程式碼分析2020-08-19
- 【漏洞分析】Penpie 攻擊事件:重入攻擊構造獎勵金額2024-09-05事件
- 【漏洞分析】ReflectionToken BEVO代幣攻擊事件分析2023-05-09事件
- WMI 的攻擊,防禦與取證分析技術之攻擊篇2020-08-19
- SQL隱碼攻擊關聯分析2020-08-19SQL
- SolarWinds供應鏈攻擊事件分析2020-12-17事件
- Volatility:分析MS10-061攻擊2019-02-26
- 基於TCP反射DDoS攻擊分析2018-06-06TCP反射
- 三星Android OS加密漏洞分析:IV重用攻擊與降級攻擊2022-03-13Android加密
- 攻擊面分析及應對實踐2022-10-08
- 跨域攻擊分析和防禦(中)2024-04-15跨域
- Novter無檔案攻擊分析報告2019-10-28
- Redis漏洞攻擊植入木馬逆向分析2020-08-19Redis
- DDoS攻擊、CC攻擊的攻擊方式和防禦方法2019-02-27
- XXE攻擊攻擊原理是什麼?如何防禦XXE攻擊?2023-02-13
- web攻擊日誌分析之新手指南2020-08-19Web
- 特斯拉攻擊案例解讀:硬體逆向分析2022-02-12
- ROVNIX攻擊平臺分析 -利用WordPress平臺傳播的多外掛攻擊平臺2020-08-19
- 【漏洞分析】Reflection Token 反射型代幣攻擊事件通用分析思路2023-12-06反射事件
- FastJson引入存在DDos攻擊安全漏洞案例分析2024-08-19ASTJSON
- ICMP隱蔽隧道攻擊分析與檢測(二)2023-04-03
- ICMP隱蔽隧道攻擊分析與檢測(三)2023-04-03
- ICMP隱蔽隧道攻擊分析與檢測(四)2023-04-04
- 對某單位的 APT 攻擊樣本分析2019-08-14APT
- 記一次網站被攻擊 WebShell 分析2019-08-30網站Webshell
- Oracle 惡意攻擊問題分析和解決(一)2020-09-06Oracle
- SQL隱碼攻擊原理及程式碼分析(二)2020-07-09SQL
- SQL隱碼攻擊原理及程式碼分析(一)2020-07-04SQL
- 分析攻擊IP來源地並畫出餅圖2018-05-30
- iconv 攻擊2024-11-27
- CSRF 攻擊2024-10-05
- 口令攻擊2024-10-04
- CSRF攻擊2024-05-17