對APT34泄露工具的分析——PoisonFrog和Glimpse

導語:最近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,對樣本的分析資料:

https://unit42.paloaltonetworks.com/unit42-oilrig-uses-updated-bondupdater-target-middle-eastern-government/

0x04 小結

對於PoisonFrog和Glimpse,雖然這次泄露了工具源碼,但它們早在2017年已經被捕獲樣本,也被分析的很清楚,個人認爲該工具不存在被大規模濫用的隱患。而使用DNS協議傳輸數據也是一個很古老的方法,個人認爲該工具不會導致惡意軟件技術的升級。

原文地址: https://www.4hou.com/technology/17563.html

 

目前所泄露所有內容打包下載地址:

https://download.csdn.net/download/eagle_pompom/11144244

解壓密碼:vJrqJeJo2n005FF*

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章