對APT34泄露工具的分析——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
·%public%Public
eveivebox
·%public%Publicsendbox
·%public%Publicdone
3.通過DNS A記錄從c2伺服器接收控制命令
4.執行命令並回傳結果
(3)UpdateTask.vbs
內容如下:
command0 = "Powershell.exe -exec bypass -file C:UsersPublicPublichUpdater.ps1"
set Shell0 = CreateObject("wscript.shell")
shell0.run command0, 0, false
command1 = "Powershell.exe -exec bypass -file C:UsersPublicPublicdUpdater.ps1"
set Shell1 = CreateObject("wscript.shell")
shell1.run command1, 0, false
用來載入powershell腳本dUpdater.ps1和hUpdater.ps1
2、創建兩個計劃任務
·名稱為UpdateTasksUpdateTask,每10分鐘運行一次,以當前用戶許可權執行UpdateTask.vbs
·名稱為UpdateTasksUpdateTaskHosts,每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
註:%public%Libraries默認為隱藏文件夾。
2.判斷文件%public%Librarieslock是否存在
·如果不存在,創建文件並寫入當前powershell進程的pid
·如果文件存在,讀取文件創建時間,如果距離現在的時間超過10分鐘,那麼會退出進程並刪除lock文件
3.生成一個當前系統的專有標誌,寫入文件%public%Librariesquid
4.創建以下文件夾
·%public%Librariesfiles
·%public%Libraries
·%public%Libraries
eveivebox
·%public%Librariessendbox
·%public%Librariesdone
5.通過DNS A記錄或DNS TXT記錄從c2伺服器接收控制命令
6.執行命令並回傳結果
二、 對server的分析
通過Node.js實現。
使用時需要先通過npm安裝第三方包,具體安裝的命令位於文件Read me.txt中。
相比於PoisonFrog,Glimpse在代碼結構上做了優化,並且添加了通過DNS TXT記錄傳輸數據的功能。
考慮到避免被濫用,控制端的代碼不做具體分析,也不提供具體搭建的方法。
三、該工具的公開線索
1.Palo Alto Networks將其命名為Updated BondUpdater,對樣本的分析資料:
https://unit42.paloaltonetworks.com/unit42-oilrig-uses-updated-bondupdater-target-middle-eastern-government/
0x04 小結
對於PoisonFrog和Glimpse,雖然這次泄露了工具源碼,但它們早在2017年已經被捕獲樣本,也被分析的很清楚,個人認為該工具不存在被大規模濫用的隱患。而使用DNS協議傳輸數據也是一個很古老的方法,個人認為該工具不會導致惡意軟體技術的升級。
※HTML5屬性a標籤ping被用於DDOS攻擊,QQ瀏覽器被波及
※如何擺脫Google的影響,實現一個完全無Google因素的網路環境
TAG:嘶吼RoarTalk |