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

如图

设置启动参数,Log Directory需要设置成固定格式:c:logsxxx(xxx任意名称)

否则,会出现报错,如下图

注:

网上的部分分析文章认为应该先用fb.py生成一个日志文件,接着Start.jar指向该目录,其实不需要,只要路径格式正确即可

3、执行pc_prep配置木马

输入pc_prep获得回显,如下图

注:

有很多人在测试的时候发现输入pc_prep无法获得回显,如下图

原因:

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可以生成木马。如下图

可是木马无法回连

猜测原因:

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为加入配置参数的文件。两个文件大小相同,但在特定位置存在差异,如下图

(2) Level3,选择 6) – HTTP Proxy (x64-winnt Level3 sharedlib)

按配置生成PC_Level3_http_dll.configured(此处不具体介绍,参照其他文章)

加载方式:

1.利用DoublePulsar加载dll

(此处不具体介绍,参照其他文章)

2.手动加载dll

使用dumpbin查看dll的导出函数,如下图

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(可使用高级模式,指定固定监听端口)

查看其导出函数,如下图

也就是说,不支持直接通过rundll32加载

猜测:

Level4的木马要一直运行在后台,考虑到隐蔽性,所以不支持该功能

给出一种dll加载的测试方法:通过APC注入

如下图,成功加载,打开监听端口

参考代码:

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/

如下图,成功加载,打开监听端口

(5) Level4,选择 11) – Standard TCP AppCompat-enabled (i386-winnt Level4 sharedlib)

根据字面意思,猜测是支持Application Compatibility Shims

比较Generic和AppCompat-enabled的区别:

二者大小一样,就是AppCompat-enabled多了一个导出函数GetHookAPIs

如下图

0x03 木马功能

木马连接成功后,自动开始信息搜集,返回各种详细信息。比较人性化的设计是会自动询问用户是否提权,在检测到环境安全后会询问用户是否需要导出hash。

待信息搜集完成后,输入help可获得支持的操作

注:

help获得的内容不完整,输入aliases可获得更多操作命令介绍

help+命令可获得具体命令的操作介绍

例如,输入help eventlogedit,回显如图

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的测试心得,希望能够帮助大家在技术研究上对其有更好的认识,省略了部分具体利用细节和章节,以防该工具被滥用。

原文发布时间为:2017年4月30日

本文作者:3gstudent 

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-09-17 03:33:20

NSA DanderSpiritz测试指南——木马生成与测试的相关文章

渗透测试指南之域用户组的范围

本文讲的是渗透测试指南之域用户组的范围,一直以来,我对Active Directory组的范围总是有点搞不清楚.对于任何从事过AD系统管理员背景的人来说,这个话题可能并不是很难,但是直到我阅读了SS64的这篇文章后,关于AD组范围的所有东西我都搞明白了.我想记录一些关于这个话题的相关说明(我所知道的),以防其他任何人都有同样的困惑.我还将介绍这些组范围如何与林全局目录和域信任进行交互,并在此过程中加入新的PowerView功能. Active Directory组 Active Director

PHPUnit袖珍指南之命令行测试工具

PHPUnit命令行测试工具是通过phpunit命令调用的.如下代码显示如何通过PHPUnit命令行测试工具运行测试. phpunit ArrayTestPHPUnit 2.3.0 by Sebastian Bergmann. Time: 0.067288 OK (2 tests) 对每个测试,PHPUnit命令行测试工具打印一个字符表示进程: ·测试成功打印".". ·运行测试方法是发生了断言失败打印"F". ·运行测试方法是发生了错误打印"E"

《Nmap渗透测试指南》目录—导读

内容提要 Nmap渗透测试指南 本书专门介绍Nmap渗透测试的有关内容,全书共分12章,从最基础的Nmap下载.安装开始介绍,由浅入深地对Nmap的功能作了完整详细的说明.同时书中还包括了大量的实践案例,更有利于读者对Nmap使用的理解.本书主要内容包括:Nmap基础.Nmap工作原理.扫描指定段.Nmap主机发现.TCP ACK Ping扫描.ARP Ping扫描.路由跟踪.探索网络.从Nmap识别端口状态.隐蔽扫描.指纹识别与探测.重量级扫描.调整探测报文的并行度.防火墙/IDS逃逸.源端口

《Nmap渗透测试指南》—第1章1.1节Nmap介绍

第1章 Nmap基础学习 Nmap渗透测试指南 本章知识点 Nmap介绍 Windows下安装Nmap Linux/Unix源码编译安装Nmap Linux通过RPM软件包安装Nmap Mac OS安装Nmap Nmap语法 Nmap全面扫描 Nmap扫描指定段 本章节将介绍在几大主流平台中如何安装Nmap,并介绍多种安装方式,通过对每一步的演示进行解说,让初学者可以很快地掌握安装Nmap技巧,以及如何简单地使用Nmap扫描一个目标地址.一个IP段,从而迈入Nmap渗透测试的大门. 本章选项 1

《Nmap渗透测试指南》—第9章9.节审计HTTP身份验证

第9章 渗透测试 Nmap渗透测试指南 本章知识点 审计HTTP身份验证 审计FTP服务器 审计Wordpress程序 审计Joomla程序 审计邮件服务器 审计SMB口令 审计VNC服务器 审计SMTP服务器 检测Stuxnet蠕虫 SnMP安全审计 本章节将介绍Nmap脚本对主流CMS程序.网络服务.网络病毒的检测,本章更是引入了对工控系统病毒Stuxnet检测技术.切勿将本章内容用于非法用途,请遵守相应的道德标准. 本章脚本 表9.1所示为本章节所需Nmap命令表,为方便读者查阅,笔者特此

当研究PCI渗透测试指南时,你应该注意这六个方面

尽管PCI DSS 3.0版本已经全面推出,但仍然有很多关于企业难以遵守11.3章节中列出的PCI渗透测试要求的讨论. 为了帮助企业充分了解PCI DSS 3.0要求,PCI安全标准委员会在2015年3月发布了PCI DSS补充信息:渗透测试指南.该文档详细介绍了渗透测试过程的一般方法,从范围界定到测试不同的网络层,再到测试后续步骤(例如报告)等. PCI渗透测试文档以及PCI DSS合规所要求的方法的优点是,并没有什么新东西.除了提到云计算环境.网络钓鱼以及缩小持卡人数据环境范围等新概念外,这

单体测试指南

1.单体测试应该小并且快 理想情况下在每次代码签入之前都要执行下测试套件.测试快就可以降低开发周转时间. 2.单体测试必须完全自动化,不需要交互 测试套件通常经常执行,必须完全自动化才有用.如果结果需要人工检查,该测试就不是真正的单体测试. 3.单体测试应便于运行 开发环境应该配置成通过一个单独的命令或者一个按钮点击就可以运行单独的测试和测试套件. 4.评估测试 对测试的运行进行覆盖分析从而得到执行覆盖并调查代码的哪些部分执行,哪些部分没有执行. 5.立刻修复失败测试 每个开发者都应该确保在签入

《Nmap渗透测试指南》—第10章10.1节Zenmap应用

第10章 Zenmap应用Nmap渗透测试指南本章知识点 Zenmap介绍Zenmap基本配置Zenmap扫描模板Ports/Hosts标签Topology标签Host Details标签Scans标签编辑扫描模板新建扫描模板本章节将介绍Zenmap的使用.作为Nmap初学者最好的帮助工具,Zenmap以其强大的操控界面可以完成很多在Shell终端下复杂的命令.Zenmap包含了不同的模板,我们可以对这些模板进行自定义设置,让它更加灵活易用. 10.1 Zenmap介绍Zenmap是经典安全扫描

《Nmap渗透测试指南》—第7章7.1节信息搜集

第7章 信息搜集Nmap渗透测试指南本章知识点 信息搜集IP信息搜集WHOIS查询搜集E-mail信息IP反查DNS信息搜集检索系统信息后台打印机服务漏洞系统漏洞扫描扫描Web漏洞通过Snmp列举Windows服务/账户枚举DNS服务器的主机名HTTP信息搜集枚举SSL密钥SSH服务密钥信息探测本章节将介绍Nmap的NES脚本,脚本是用Lua程序创作的,目前已有好几百种.lua的易用性也让更多的用户加入脚本的创作当中来,本章节通过对Nmap信息搜集脚本的使用让大家了解Nmap的高级技法. 本章脚