當前位置:
首頁 > 新聞 > NSA DanderSpiritz測試指南——木馬生成與測試

NSA DanderSpiritz測試指南——木馬生成與測試

0x00 前言


DanderSpritz是NSA的一款界面化的遠控工具,基於FuzzBunch框架,執行Start.jar即可啟動。


在實際測試過程中,由於缺少說明文檔,遇到的問題有很多,同時一些細節也值得深入研究。所以本文將要幫助大家答疑解惑,分享測試心得,結合木馬特點分析防禦思路。


0x01 簡介


本文將要介紹以下內容:

執行pc_prep無法獲得回顯的原因及解決方法


Pc同Pc2.2的區別


level3和level4木馬代表的含義及如何使用


各類型木馬區別


dll木馬利用方式


Windows單條日誌刪除功能


木馬查殺思路


0x02 實際測試


測試環境:Win7 x86


安裝如下工具:

python2.6


pywin32


jdk


1、下載fuzzbunch


參考鏈接:https://github.com/3gstudent/fuzzbunch


註:


我fork了公開的fuzzbunch項目(https://github.com/fuzzbunch/fuzzbunch),並添加了部分內容,解決了一個bug,具體內容會在後面介紹


2、直接運行Start.jar


如圖

NSA DanderSpiritz測試指南——木馬生成與測試


設置啟動參數,Log Directory需要設置成固定格式:c:logsxxx(xxx任意名稱)


否則,會出現報錯,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



註:


網上的部分分析文章認為應該先用fb.py生成一個日誌文件,接著Start.jar指向該目錄,其實不需要,只要路徑格式正確即可


3、執行pc_prep配置木馬


輸入pc_prep獲得回顯,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試


註:


有很多人在測試的時候發現輸入pc_prep無法獲得回顯,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



原因:


fuzzbunch工程下載自如下鏈接:https://github.com/x0rz/EQGRP_Lost_in_Translation


文件缺失,導致該錯誤。


正確的下載位置:https://github.com/fuzzbunch/fuzzbunch


但是,下載後還需要補全缺失的文件,才能完全正常使用。

我fork了上述工程,並補全了缺失文件,下載我的github即可解決上述問題,地址如下:https://github.com/3gstudent/fuzzbunch


補充:


在之前的測試過程中,使用了存在bug的版本,雖然pc_prep無法獲得回顯,但是使用pc2.2_prep可以生成木馬。如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



可是木馬無法回連


猜測原因:


pc相對於Pc2.2版本更高,低版本已經不再使用。


查看ResourcesPc2.2Version.xml,顯示:PeddleCheap 2.2.0.2,表示Pc2.2對應的PeddleCheap版本為2.2.0.2。


查看ResourcesPcVersion.xml,顯示:PeddleCheap 2.3.0,表示Pc對應的PeddleCheap版本為2.3.0。

註:


PeddleCheap用來操作同木馬通信,在DanderSpritz主面板顯示


4、木馬分類


可選擇的木馬類型如下:


1) - Standard TCP (i386-winnt Level3 sharedlib)


2) - HTTP Proxy (i386-winnt Level3 sharedlib)


3) - Standard TCP (i386-winnt Level3 exe)


4) - HTTP Proxy (i386-winnt Level3 exe)


5) - Standard TCP (x64-winnt Level3 sharedlib)


6) - HTTP Proxy (x64-winnt Level3 sharedlib)

7) - Standard TCP (x64-winnt Level3 exe)


8) - HTTP Proxy (x64-winnt Level3 exe)


9) - Standard TCP Generic (i386-winnt Level4 sharedlib)


10) - HTTP Proxy Generic (i386-winnt Level4 sharedlib)


11) - Standard TCP AppCompat-enabled (i386-winnt Level4 sharedlib)


12) - HTTP Proxy AppCompat-enabled (i386-winnt Level4 sharedlib)


13) - Standard TCP UtilityBurst-enabled (i386-winnt Level4 sharedlib)


14) - HTTP Proxy UtilityBurst-enabled (i386-winnt Level4 sharedlib)


15) - Standard TCP WinsockHelperApi-enabled (i386-winnt Level4 sharedlib)


16) - HTTP Proxy WinsockHelperApi-enabled (i386-winnt Level4 sharedlib)

17) - Standard TCP (i386-winnt Level4 exe)


18) - HTTP Proxy (i386-winnt Level4 exe)


19) - Standard TCP (x64-winnt Level4 sharedlib)


20) - HTTP Proxy (x64-winnt Level4 sharedlib)


21) - Standard TCP AppCompat-enabled (x64-winnt Level4 sharedlib)


22) - HTTP Proxy AppCompat-enabled (x64-winnt Level4 sharedlib)


23) - Standard TCP WinsockHelperApi-enabled (x64-winnt Level4 sharedlib)


24) - HTTP Proxy WinsockHelperApi-enabled (x64-winnt Level4 sharedlib)


25) - Standard TCP (x64-winnt Level4 exe)


26) - HTTP Proxy (x64-winnt Level4 exe)

按平台區分:x86、x64


按文件格式區分:exe、dll


按通信協議區分:Standard TCP、HTTP Proxy


按功能區分:Standard、AppCompat-enabled、UtilityBurst-enabled、WinsockHelperApi-enabled


按Level區分:Level3、Level4


註:


經實際測試,Level代表回連方式


level3表示反向連接,控制端監聽埠,等待回連


leve4表示正向連接,目標主機監聽埠,等待控制端主動連接


5、木馬測試


選擇代表性的進行測試


(1)Level3,選擇 3) - Standard TCP (i386-winnt Level3 exe)


按配置生成exe(此處不具體介紹,參照其他文章)


DanderSpiritz控制端選擇PeddleCheap-Listen-Start Listening


在目標主機直接執行exe


等待回連


操作同正常的反向連接木馬


註:


日誌文件下生成2個文件PC_Level3_exe.base和PC_Level3_exe.configured。PC_Level3_exe.base為模板文件,來自於ResourcesPcLevel3i386-winntrelease,PC_Level3_exe.configured為加入配置參數的文件。兩個文件大小相同,但在特定位置存在差異,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



(2)Level3,選擇 6) - HTTP Proxy (x64-winnt Level3 sharedlib)


按配置生成PC_Level3_http_dll.configured(此處不具體介紹,參照其他文章)


載入方式:


1.利用DoublePulsar載入dll


(此處不具體介紹,參照其他文章)


2.手動載入dll


使用dumpbin查看dll的導出函數,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



ordinal為1對應的dll導出函數名為rst32


也就是說,我們可以嘗試通過rundll32直接載入該dll


命令行代碼如下:


rundll32 PC_Level3_http_dll.configured,rst32


木馬正常回連


註:


對於http協議的木馬,記得設置listen協議的時候要選擇http


(3)Level4,選擇 17) - Standard TCP (i386-winnt Level4 exe)


按配置生成PC_Level4_exe.configured(可使用高級模式,指定固定監聽埠)


啟動exe後執行netstat -ano可看到開啟了固定埠


DanderSpiritz控制端選擇PeddleCheap-Connect,選擇ip,填入Level 4對應的埠


正向連接


(4)Level4,選擇 9) - Standard TCP Generic (i386-winnt Level4 sharedlib)


按配置生成PC_Level4_dll.configured(可使用高級模式,指定固定監聽埠)


查看其導出函數,如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



也就是說,不支持直接通過rundll32載入


猜測:


Level4的木馬要一直運行在後台,考慮到隱蔽性,所以不支持該功能


給出一種dll載入的測試方法:通過APC注入


如下圖,成功載入,打開監聽埠

NSA DanderSpiritz測試指南——木馬生成與測試



參考代碼:


https://github.com/3gstudent/Inject-dll-by-APC/blob/master/test.cpp


註:


被注入的程序需要管理員許可權,否則會因為許可權問題無法打開監聽埠


給出另二種dll載入的測試方法:通過Application Compatibility Shims


可參考以下鏈接:


https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E4%B8%AD%E7%9A%84Application-Compatibility-Shims/


如下圖,成功載入,打開監聽埠

NSA DanderSpiritz測試指南——木馬生成與測試



(5)Level4,選擇 11) - Standard TCP AppCompat-enabled (i386-winnt Level4 sharedlib)


根據字面意思,猜測是支持Application Compatibility Shims


比較Generic和AppCompat-enabled的區別:


二者大小一樣,就是AppCompat-enabled多了一個導出函數GetHookAPIs


如下圖

NSA DanderSpiritz測試指南——木馬生成與測試



0x03 木馬功能


木馬連接成功後,自動開始信息搜集,返回各種詳細信息。比較人性化的設計是會自動詢問用戶是否提權,在檢測到環境安全後會詢問用戶是否需要導出hash。


待信息搜集完成後,輸入help可獲得支持的操作


註:


help獲得的內容不完整,輸入aliases可獲得更多操作命令介紹


help+命令可獲得具體命令的操作介紹


例如,輸入help eventlogedit,回顯如圖

NSA DanderSpiritz測試指南——木馬生成與測試



1、日誌操作功能


關於日誌操作的命令如下:


eventlogclear


eventlogedit


eventlogfilter


eventlogquery


具體功能如下:


eventlogquery:


統計日誌列表,查詢所有日誌信息,包含時間,數目


可查詢指定類別的日誌信息,包含時間,數目,命令如下:


eventlogquery -log Setup


該操作等價於


wevtutil.exe gli setup


註:wevtutil.exe操作系統默認包含


eventlogfilter:


查看指定類別的日誌內容


命令如下:


eventlogfilter -log Setup -num 19


該操作等價於


wevtutil qe /f:text setup


eventlogedit:


刪除單條日誌


可刪除單條日誌內容,命令如下:


eventlogedit -log Setup -record 1


註:


record序號可通過eventlogfilter獲得


該命令暫沒有公開工具支持


eventlogclear:


刪除該類日誌所有內容


命令如下:


eventlogclear -log Microsoft-Windows-Dhcpv6-Client/Admin


該操作等價於


wevtutil cl Microsoft-Windows-Dhcpv6-Client/Admin


0x04 木馬查殺思路


DanderSpritz的木馬生成方式如下:


文件夾ResourcesPcLevel3和ResourcesPcLevel4下保存模板文件,固定位置預留參數配置信息,實際生成時向模板文件寫入配置信息


目前殺毒軟體已經對這些模板文件成功識別並查殺,同時,這些模板文件的代碼並沒有開源,也會提高在惡意利用上面的門檻


建議普通用戶:更新系統補丁、更新殺毒軟體病毒庫,就能夠防範該工具的攻擊。


0x05 小結


本文分享了DanderSpiritz的測試心得,希望能夠幫助大家在技術研究上對其有更好的認識,省略了部分具體利用細節和章節,以防該工具被濫用。


本文為 3gstudent 原創稿件,授權嘶吼獨家發布,未經許可禁止轉載


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

利用SCOM捕獲創建可疑進程的事件
0點之後,報名通道關閉!
惡意軟體偽裝成遊戲攻略應用偷跑廣告,Google Play商店數十萬用戶中招
利用Office載入項進行持久化控制的6種姿勢
物聯網變身黑暗森林:殭屍網路、守護者、毀滅者層出不窮

TAG:嘶吼RoarTalk |

您可能感興趣

Gradle Kotlin DSL的accessors 生成問題
DeepMind 最新Science論文:生成查詢網路GQN
SpringMVC,Spring,Hibernate框架自動生成器
TensorFlow官方力推、GitHub爆款項目:用Attention模型自動生成圖像字幕
CodeWarrior IDE使用Tips-使用burner將elf文件轉換生成HEX和BIN文件的方法和步驟詳解
教你在Python中用Scikit生成測試數據集
WordPress怎麼生成sitemap.xml?插件XML Sitemap & Google News
「Science重磅」DeepMind生成查詢網路GQN,無監督學習展現3D場景
使用gradle生成Spring Boot應用的Docker Image
Regenerate Thumbnails讓WordPress重新生成特色圖像更簡單
NetCore2.1 WebAPI 根據swagger.json自動生成客戶端代碼
自動「腦補」3D環境!DeepMind最新Science論文生成查詢網路GQN
Additive Works推出用於生成3D列印支撐的新Amphyon模塊
GreenDAO系列(二)GreenDao 代碼生成策略分析
Ian Goodfellow:生成對抗網路 GAN 就是強化學習(超全資料)
Mybatis+velocity自動生成代碼
4月Feelreal將為氣味生成面具再次開啟Kickstarter眾籌
使用 Lets Encrypt 生成免費的 SSL 證書
「python」生成器的高級應用send、close和throw方法
Ian Goodfellow:生成對抗網路 GAN 就是強化學習 超全資料