首頁  >  文章  >  運維  >  如何實現APT34洩密武器報告分析

如何實現APT34洩密武器報告分析

WBOY
WBOY轉載
2023-05-29 12:42:341489瀏覽

APT34是一個來自伊朗的APT組織,自2014年起,持續對中東及亞洲等地區發動APT攻擊,涉獵產業主要包含政府、金融、能源、電信等。攻擊武器庫不斷升級,攻擊手法也不斷推陳出新,而攻擊者不會因為被曝光而停止攻擊行為,這種情況已經持續多年。

APT34組織背景

4月17日,有國外媒體報道,一個名為「Lab Dookhtegan」的用戶在Telegram上曝光了來自APT34組織的攻擊工具包,一些APT34的受害者資料也同時被揭露出來。該事件如同以前的原始碼外洩事件一樣,極具爆炸性。 APT34組織至少從2014年開始,持續對中東及亞洲的某些國家發動了多次攻擊,攻擊目標為政府、金融、能源、電信等產業。組織的目標一般是伊朗的對立國家,所以有人猜測,該組織是伊朗的某個安全部門,或是和伊朗政府長期合作的安全公司。該組織善於利用社群媒體,偽造各種身分的網路帳號,透過社交工程技巧接近攻擊目標。同時,該組織的攻擊武器庫不斷升級,攻擊手法也越來越高明,他們將魚叉釣魚等攻擊手段與新型攻擊技術融合,不斷擴大現有目標的滲透範圍。

如何實現APT34洩密武器報告分析

被揭露的APT34組織成員

根據洩漏的Webshel​​l列表,很明顯該組織近期對中國進行了大規模的攻擊行動。這張圖表列出了超過10家標註為「China」的網站被攻破,可作為證據來支持針對國內攻擊的論述。

如何實現APT34洩密武器報告分析

Lab Dookhtegan曾經聲稱每隔幾天就會曝光一名組織人員的個人資訊,不過現在Telegram和Twitter上的帳號已經被封鎖。

如何實現APT34洩密武器報告分析

洩漏工具介紹

在此原始碼外洩的事件中,包含了大量APT34組織常用的重要攻擊武器,如:Webshel​​ls_and_Panel、 posion frog 、Webmask、Glimpse。東巽科技2046Lab使用《鐵穹高級持續性威脅預警系統》對這些攻擊武器做了威脅偵測,並從技術層面做了深入分析。

偵測結果

1.Webshel​​l預警:【高危險群】

如何實現APT34洩密武器報告分析如何實現APT34洩密武器報告分析

2.檔案沙箱偵測預警:【高危險群】

如何實現APT34洩密武器報告分析

3.DNS隱藏通道偵測預警:發現利用DNS異常長網域傳輸的隱藏式隧道

如何實現APT34洩密武器報告分析如何實現APT34洩密武器報告分析  

攻擊武器分析
   

1.Webshel​​ls_and_Panel

Webshel​​ls_and_Panel目錄中主要包含了多種C#所寫的Webshel​​l工具,在Webshel​​l目錄中包含兩個主要的檔案夾,分別為HighShell和HyperShell。

 1.1 HighShell  

#在HighShell目錄中只有HighShell.aspx,該Shell為針對Windows伺服器的WebShell。開啟後預設介面如下圖:

如何實現APT34洩密武器報告分析

透過上面的圖片可以看出,版本為5.0版本,擁有認證、檔案上傳、指令執行、資料庫運算等多項功能。

使用該Webshel​​l需要在「Login」標籤後的紅色輸入框中輸入連線密碼( Th!sN0tF0rFAN) 後點「Do it」按鈕,當輸入框變為綠色即可透過該Webshel​​l對伺服器進行相關操作。下圖為操作「command」指令並取得伺服器資訊的操作圖:

如何實現APT34洩密武器報告分析

#  1.2 HyperShell

HyperShell是個包含多個源碼檔案的項目,其中包含多個WebShell的源碼檔案。以下為幾個可以使用的webshel​​l的功能。

simple.aspx  

包含認證、指令執行和檔案上傳功能的簡易webshel​​l是simple.aspx。打開後如圖所示:

如何實現APT34洩密武器報告分析在Password輸入框中輸入連線密碼(MkRg5dm8MOk)點選「Login」按鈕後,即可對伺服器進行指令控制及檔案上傳。密碼連接如下圖:

如何實現APT34洩密武器報告分析下圖為操作「command」指令並取得伺服器資訊的操作圖:    
如何實現APT34洩密武器報告分析

simpleDownload.aspx  

simpleDownload.aspx只有一個上傳功能,如下圖:

如何實現APT34洩密武器報告分析

#  HighShelllocal.aspx  

HighShelllocal. aspx為HighShell的升級版,版本號為8.6.2,此版本功能與獨立的5.0版大致相同主要對介面及功能進行了最佳化,介面圖如下:

如何實現APT34洩密武器報告分析

2.poison frog

 2.1 Agent

2.1.1 poisonfrog.ps1

Poisonfrog.ps1 is the only file of Agent, which is used to plant backdoor programs on compromised hosts.。該檔案運行後,會在失陷主機的C:\Users\Public\Public目錄下留下3個檔案,dUpdater.ps1、hUpdater.ps1和UpdateTask.vbs。

如何實現APT34洩密武器報告分析主機上留下的後門程式是UpdateTask.vbs腳本,每10分鐘透過排程任務自動執行。它的作用是運行兩個腳本:dUpdater.ps1和hUpdater.ps1。

如何實現APT34洩密武器報告分析

2.1.2  dUpdater.ps1

此腳本為遠控腳本,它會產生DNS網域並連接控制伺服器,從中接收遠端指令,並進行文件的發送和接收。在生成DNS域名時使用了DGA.Changer演算法,動態地計算伺服器域名, 2046Lab對這個DGA.Changer演算法進行了復原:

如何實現APT34洩密武器報告分析

receive函數:

執行EEA函數取得VVA域名,JJA參數設為r;

嘗試解析VVA域名,若失敗,則拋出異常,並重新產生新域名且嘗試解析新域名,重複操作直到域名解析成功;若成功,則取第一個成功解析的IP,並將IP的每一段分別取出;

若IP為1.2.3.*,則將NNA設為false,將RRA的值寫入PPA的文件,並退出主函數;

若NNA為true,修改RRA 的值,為IP的前三段,繼續循環主函數;

若IP為24.125.*.*,則將IP的第三段與第四段拼接作為C:\Users\Public\Public\$DDA\receivebox子資料夾名稱(PPA),將GGA設為1,將NNA設為true,繼續循環主函數;

若IP為11.24.237.110,則停止解析並退出主函數,該IP為OilRig曾經使用的IP。

Send函數:

執行Slaber檢查發送的文件,執行EEA函數取得VVA域名,JJA參數設為s;

嘗試解析VVA域名,若失敗,則拋出異常,並重新產生新域名且嘗試解析新域名,重複操作直到域名解析成功;若成功,則取第一個成功解析的IP,並將該IP的每一段分別取出;

#若IP為1.2.3.*,則取出IP的第四段得值並循環主函數;

若IP為11.24.237.110,則停止解析並退出函數,同時刪除要傳送的文件。

Slaber函數:

檢查傳送的檔案大小,超過600kb則報錯,否則執行resolver函數。 

resolver函數:

解析發送的文件,每30個字元為一組。

processor函數:

處理接收的文件,MMB為」sendbox」資料夾中的文件;

若接收的檔案名稱以」0」結尾,將會接收的檔案寫入」sendbox」資料夾內,並使用UTF-8編碼,隨後移除先前接收的檔案;

若接收的檔案名稱以」1」結尾,若接收檔案內容裡面有路徑,則將路徑作為發送路徑;

若不存在則將」File not exist」字串寫入MMB文件,隨後移除先前接收的文件;                  #                時# 名以”2”結尾,將RRB設為”done”資料夾中的文件,將接收的文件移動至”done”資料夾下,再將該文件內容寫入MMB文件,隨後移除先前接收的文件。 

2.1.3  hUpdater.ps1  

解析"myleftheart.com"的IP,並嘗試連接;

若存在C:\Users\Public\Public\files\ cfg.ini文件,則取對應參數欄位如srv、usr、pas、prt、dom。將srv與prt的值通過」:」拼接為新字串,並將該字串使用http設定為代理伺服器,將usr、pas、dom的值作為代理伺服器的憑證;若不存在,則取得預設代理伺服器,將usr、pas、dom的值作為代理伺服器的憑證;若不存在,則取得預設代理伺服器;

OOA:隨機取0至9中的若干個整數,取的個數在1至9個隨機選取,將取出的數拼接;

DDA:為dUpdater. ps1腳本中的DDA;

PPA:DDA的第5位插入OOA所得;

從「http://myleftheart.com/co/$PPA」下載文件,設下載的文件內容為QQA,將QQA以「」分隔,陣列設為SSA。

 p為路徑C:\Users\Public\Public\files\$SSA[0]。

若SSA[2]長度大於0且SSA[2]不存在「not」字串,則從http://myleftheart.com/fil/SSA[3]下載檔案至C:\Users \Public\Public\files\$SSA[2],再將該內容寫入路徑p;

若SSA[1]長度大於0且SSA[1]不存在「not」字串,則上傳路徑p的檔案上傳至http://myleftheart.com/res/$PPA$SSA[0];

若SSA[4]長度大於0且SSA[4]不存在「not」字元串,則上傳路徑SSA[4]d的檔案上傳至http://myleftheart.com/res/$PPA$SSA[0];

若SSA中最後一個資料中值為“1” ,則循環執行主函數;

若SSA[0] 長度大於0且SSA[1]不存在」not」字串,則上傳路徑p的檔案至http://myleftheart.com/res /$PPA$SSA[0],並刪除路徑p的檔案。 

2.2  Server Side

Server端是APT34用於管理失陷主機的的總控制端,可從失陷主機下載文件,上傳檔案到失陷主機。

這個服務端提供了​​一個簡單的登入介面。

如何實現APT34洩密武器報告分析

透過一個 JSON 設定檔管理使用者和密碼非常簡單。在洩漏的檔案中,使用了易於猜測的使用者名稱(blacktusk)和密碼(fireinthehole)。

下圖的GUID( /7345SDFHSALKJDFHNASLFSDA3423423SAD22 )的作用是引導瀏覽器進入登陸頁面,這個GUID可以說是很重要的。

如何實現APT34洩密武器報告分析The host lists for both HTTP Agent and DNS Agent are also available on the server side.。從這個清單中可以很方便地看到哪些主機現在是受控制的。

如何實現APT34洩密武器報告分析

每個HTTP Agent和DNS Agent具有詳細資訊的頁面,在這裡,就可以對這個失陷的主機下發C&C的命令,上傳或下載檔案了。這裡的DNS Agent可能是合併了Glimpse的某些功能,Glimpse在下面做了詳細的介紹。

如何實現APT34洩密武器報告分析對於失陷主機,APT34使用一個預設的BAT遠控腳本來獲取主機信息,獲取的信息非常的詳細,包括系統、用戶、群組、網域、特定註冊表、規劃任務、防毒軟體等等。

如何實現APT34洩密武器報告分析如何實現APT34洩密武器報告分析

3.Webmask

該工具主要部署在攻擊者伺服器上,實現DNS代理,針對特定的DNS網域進行劫持,並將網域名稱預設指向本機伺服器,透過Squid3 ICAP實現HTTP/HTTPS代理,竊取受害者帳號密碼等敏感資訊。

如何實現APT34洩密武器報告分析

dns-redir目錄:

#dnsd.py:DNS代理程式轉送腳本

config.json:設定檔

如何實現APT34洩密武器報告分析

dnsd.js: JS類型的DNS代理程式腳本,和dnsd.py功能類似a。

本地模擬DNS代理功能截圖顯示如下:

如何實現APT34洩密武器報告分析

#icap目錄:

icap.py:需要和Squid3結合使用,建立http/https代理,並將代理中的敏感資料記錄到本地。

squid.conf設定檔:

如何實現APT34洩密武器報告分析

#Squid3 ICAP實作透明代理伺服器,icap.py腳本對密碼等敏感資料進行擷取,記錄到本機log文件中。   

如何實現APT34洩密武器報告分析

icap腳本檔案中針對回應response_body部分加入了劫持的程式碼,在受害者瀏覽器中載入指定的圖片元素。

如何實現APT34洩密武器報告分析

4.Glimpse

Glimpse包含Agent、Panel和Server三個部分,是一種DNS遠端控制工具。從Glimpse Server中的某些程式碼來看,它的某些功能可能和poison frog是重合的,例如下發指令的方式。

如何實現APT34洩密武器報告分析總體來說,Glimpse和上面介紹的poison frog非常類似。在洩漏的資料中,也給了我們Glimpse的使用方法。

如何實現APT34洩密武器報告分析

 4.1 Agent

同樣,Glimpse中的Agent是運行在失陷主機上的後門程序,他的主要功能是接受命令,上傳和下載檔案。

 Agent使用主機上的C:\Users\Public\Libraries目錄作為其工作目錄。傳送檔案、接受檔案都會在這個目錄下的子目錄內完成。

如何實現APT34洩密武器報告分析Agent可以工作在兩種模式下面,一種是ping模式,另一種是text模式。   

如何實現APT34洩密武器報告分析

ping模式主要用來交換主機資訊。 The text mode is akin to the internal protocol mode between the Agent and Server, which enables the acceptance of internal instructions.。

4.2 Panel

Panel用來查看總控的狀態,可以看到有多少失陷主機被控制,同時在這裡可以向失陷主機發送指令。

如何實現APT34洩密武器報告分析如何實現APT34洩密武器報告分析

可以看到,透過panel對失陷主機發送指令,並且得到了回傳結果。

4.3 Server  

Server是總控端, 透過DNS隧道協定進行通信,能夠回應Agent發送的ping模式訊息或TXT模式的命令, 同時也以TXT模式向Agent發送命令。根據程式碼風格來看,Glimpse和Poison Frog應該是由同一團隊創建的。

如何實現APT34洩密武器報告分析

Server端支援了更多的TXT模式的協定指令,我們可以簡單的檢視一下這些指令的意義。

if (action == 'M') { // in this place we check the request for type of connection ping or text type if (action == 'W') { // in this place we check the request type if its text we response it else if (action == 'D') { else if (action == '0') { // ctrl[0] => action, if 0 = is there any file else if (action == '1') { // ctrl[0] => action, if 1 = sending the file else if (action == '2') {// ctrl[0] => action, if 2 = receiveing the file

IOCs

MD5:

cd0bbff03ce7946cd7c9dc339726d90a9d3d8fe14927172ca5546bdb95d947625e17061bf2dce87d402ddd8531abb49f

網域:

myleftheart.com

IP:

11.24.237.110

防護措施

1 .不要輕易開啟可疑文件,如電子郵件、可疑連結、可疑文件等等。

2.及時安裝系統補丁,使用最新版本的軟體。

3.安裝防毒軟體、及時更新病毒庫。

以上是如何實現APT34洩密武器報告分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除