導語:最近APT34的6款工具被泄露,本文僅在技術角度對其中的PoisonFrog和Glimpse進行分析。
0x00 前言
最近APT34的6款工具被泄露,本文僅在技術角度對其中的PoisonFrog和Glimpse進行分析。
參考資料:
https://malware-research.org/apt34-hacking-tools-leak/amp/
0x01 簡介
本文將要介紹以下內容:
· 對PoisonFrog的分析
· 對Glimpse的分析
· 小結
0x02 對PoisonFrog的分析
對應泄露文件的名稱爲posion frog。
包括兩部分文件:
· agent,包含文件poisonfrog.ps1,是通過powershell實現的木馬程序
· server side,對應木馬控制端,使用Node.js開發
一、agent實現的功能
1、在%public%\Public文件夾下釋放三個文件
· dUpdater.ps1
· hUpdater.ps1
· UpdateTask.vbs
釋放文件的具體功能如下:
(1)dUpdater.ps1
1.生成一個當前系統的專有標誌
2.讀取當前系統的代理設置
3.通過HTTP協議從c2服務器下載文件
4.根據下載文件的內容進行下一步操作,包括執行命令,上傳文件和下載文件
(2)hUpdater.ps1
1.生成一個當前計算機的專有標誌
2.創建以下文件夾
· %public%\Public<id>
· %public%\Public<id>\reveivebox
· %public%\Public<id>\sendbox
· %public%\Public<id>\done
3.通過DNS A記錄從c2服務器接收控制命令
4.執行命令並回傳結果
(3)UpdateTask.vbs
內容如下:
command0 = "Powershell.exe -exec bypass -file C:\Users\Public\Public\hUpdater.ps1"
set Shell0 = CreateObject("wscript.shell")
shell0.run command0, 0, false
command1 = "Powershell.exe -exec bypass -file C:\Users\Public\Public\dUpdater.ps1"
set Shell1 = CreateObject("wscript.shell")
shell1.run command1, 0, false
用來加載powershell腳本dUpdater.ps1和hUpdater.ps1
2、創建兩個計劃任務
· 名稱爲\UpdateTasks\UpdateTask,每10分鐘運行一次,以當前用戶權限執行UpdateTask.vbs
· 名稱爲\UpdateTasks\UpdateTaskHosts,每10分鐘運行一次,以System權限執行UpdateTask.vbs
二、 對server side的分析
通過Node.js實現。
使用時需要先通過npm安裝第三方包,具體安裝的命令位於文件install_pachages.bat中。
index.js爲主體程序。
考慮到避免被濫用,控制端的代碼不做具體分析,也不提供具體搭建的方法。
注:我在之前的文章《滲透測試中的Node.js——Downloader的實現》和《滲透測試中的Node.js——利用C++插件隱藏真實代碼》曾介紹過Node.js的使用,Node.js的基礎知識可以參考這兩篇文章。
使用Node.js實現server side有以下優點:
· 語法簡單易懂
· 輕量又高效
· 可同時部署在Windows和Linux系統
三、該工具的公開線索
1.APT34曾利用CVE-2017-11882傳播該木馬,FireEye對樣本進行過分析:
https://www.fireeye.com/blog/threat-research/2017/12/targeted-attack-in-middle-east-by-apt34.html
2.Palo Alto Networks將其命名爲Early BondUpdater,對樣本的分析資料:
https://unit42.paloaltonetworks.com/dns-tunneling-in-the-wild-overview-of-oilrigs-dns-tunneling/
0x03 對Glimpse的分析
對應泄露文件的名稱爲Glimpse。
包括四部分文件:
· Agent,包含四個文件dns.ps1、dns_main.ps1、refineddns_main.ps1和runner_.vbs
· panel,包含一個c#開發的界面程序,是界面化的木馬控制端
· server,是Node.js開發的木馬控制端
· Read me.txt,配置說明文檔
一、agent實現的功能
dns.ps1、dns_main.ps1和refineddns_main.ps1三個文件的功能相同。
原始版本爲dns_main.ps1
dns.ps1和refineddns_main.ps1只是變量名稱替換成了無意義的混淆字符串。
dns_main.ps1的功能如下:
1.創建文件夾%public%\Libraries
2.判斷文件%public%\Libraries\lock是否存在
· 如果不存在,創建文件並寫入當前powershell進程的pid
· 如果文件存在,讀取文件創建時間,如果距離現在的時間超過10分鐘,那麼會退出進程並刪除lock文件
3.生成一個當前系統的專有標誌,寫入文件%public%\Libraries\quid
4.創建以下文件夾
· %public%\Libraries\files
· %public%\Libraries<id>
· %public%\Libraries<id>\reveivebox
· %public%\Libraries<id>\sendbox
· %public%\Libraries<id>\done
5.通過DNS A記錄或DNS TXT記錄從c2服務器接收控制命令
6.執行命令並回傳結果
二、 對server的分析
通過Node.js實現。
使用時需要先通過npm安裝第三方包,具體安裝的命令位於文件Read me.txt中。
相比於PoisonFrog,Glimpse在代碼結構上做了優化,並且添加了通過DNS TXT記錄傳輸數據的功能。
考慮到避免被濫用,控制端的代碼不做具體分析,也不提供具體搭建的方法。
三、該工具的公開線索
1.Palo Alto Networks將其命名爲Updated BondUpdater,對樣本的分析資料:
0x04 小結
對於PoisonFrog和Glimpse,雖然這次泄露了工具源碼,但它們早在2017年已經被捕獲樣本,也被分析的很清楚,個人認爲該工具不存在被大規模濫用的隱患。而使用DNS協議傳輸數據也是一個很古老的方法,個人認爲該工具不會導致惡意軟件技術的升級。
原文地址: https://www.4hou.com/technology/17563.html
目前所泄露所有內容打包下載地址:
https://download.csdn.net/download/eagle_pompom/11144244
解壓密碼:vJrqJeJo2n005FF*