内网安全——利用NSA Smbtouch批量检测内网

本文讲的是内网安全——利用NSA Smbtouch批量检测内网

0x00 前言

最近,NSA渗透工具被曝光,其中包含多个Windows远程漏洞利用工具,影响很大

本文不会具体介绍这些远程漏洞工具的使用方法,而是站在防御者的角度,介绍如何利用这些工具,更好的去保护自己的内网

0x01 简介

本文将要介绍以下内容:

- FuzzBunch使用流程
- Smbtouch功能介绍
- 编写python脚本实现批量检测内网是否存在可被SMB和NBT协议攻击的漏洞
- 根据日志掌握内网主机信息

检测的SMB和NBT远程提权漏漏洞列表如下:

- ETERNALBLUE
- ETERNALCHAMPION
- ETERNALROMANCE
- ETERNALSYNERGY

注:

个人认为,以上四个漏洞危害最大,尤其适用于内网工作组环境

0x02 FuzzBunch

FuzzBunch框架,类似于metasploit,包含探测、攻击、利用等各种功能(仅根据目前泄露的资料)

下载地址:

https://github.com/fuzzbunch/fuzzbunch

注:

fuzzbunch提取自https://github.com/x0rz/EQGRP_Lost_in_Translation

1. 配置环境

安装python2.6,参考下载地址:

http://dl.nexiao.com/file.html?url=http%3A//b9.gpxz.net/201402/python-2_gpxz.6_gpxz.6_gpxz.rar

安装pywin32,参考下载地址:

https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py2.6.exe/download

2. 添加环境变量 c:python26

3. 执行fb.py进入命令行操作模式

报错

原因:

泄露的资料里缺少listeningposts文件夹

解决办法:

在shadowbroker-masterwindows下创建个listeningposts文件夹

或者修改fb.py,修改好的文件可在如下链接下载:

https://raw.githubusercontent.com/3gstudent/test/master/fb.py

再次执行fb.py,成功

如图

内网安全——利用NSA Smbtouch批量检测内网

注:

执行start_lp.py可进入界面操作模式,如下图,此处不再过多介绍

内网安全——利用NSA Smbtouch批量检测内网

4. 设置启动参数如下:

[?] Default Target IP Address [] : 
[?] Default Callback IP Address [] : 
[?] Use Redirection [yes] : 
[?] Base Log directory [D:logs] :

进入fb的shell后输入use,可获得支持的插件目录

插件共分为五大类,分别为:

- Touch        信息探测、漏洞测试
- ImplantConfig   植入工具
- Exploit       漏洞利用
- Payload      
- Special       专用

每一个插件在文件夹下对应三个文件:

- .exe
- .fb
- .xml

例如Special下的Eternalblue-2.2.0,对应shadowbroker-masterwindowsspecials下的

- Eternalblue-2.2.0.exe
- Eternalblue-2.2.0.fb
- Eternalblue-2.2.0.0.xml

查看文件内容可发现:

– exe能够单独执行(前提是找到需要的dll文件)

– exe读取xml文件中保存的配置参数(需要二次修改)

也就是说,只需要单独的exe和xml配置文件,加上需要的支持文件,就能够执行对应的插件,不需要完全安装FuzzBunch框架

0x03 Smbtouch

位于Touch类下,文件位于/windows/touches/,用于探测目标主机是否包含SMB和NBT远程提权漏漏洞,主要测试以下四个漏洞:

- ETERNALBLUE
- ETERNALCHAMPION
- ETERNALROMANCE
- ETERNALSYNERGY

1.命令行下测试

执行fb.py,进入命令行操作模式

设置好扫描参数,依次执行:

use Smbtouch
execute

如下图

内网安全——利用NSA Smbtouch批量检测内网

接着执行插件,回显如下图

内网安全——利用NSA Smbtouch批量检测内网

探测成功,获得如下信息:

系统:Windows Server 2003 3790 Service Pack 2 x86

可用漏洞:

- ETERNALROMANCE  - FB
- ETERNALCHAMPION - DANE/FB

接着使用具体的漏洞攻击即可

注:

被攻击主机需要开放445端口,测试环境可选择关闭防火墙或是手动打开445端口

命令行开启445端口的代码如下:

netsh advfirewall firewall add rule name="445" protocol=TCP dir=in localport=445 action=allow

2.直接执行exe

进入文件夹shadowbroker-masterwindowstouches,直接执行Smbtouch-1.1.1.exe

提示缺少dll,如图

内网安全——利用NSA Smbtouch批量检测内网

在文件夹shadowbroker-masterwindowslibx86-Windows下找到缺失的dll,补全

直接执行Smbtouch-1.1.1.exe,回显提示:

TargetIp must have a value assigned.

所以接下来需要编辑Smbtouch-1.1.1.0.xml文件

需要添加如下参数:

- NetworkTimeout:60
- TargetIp:127.0.0.1
- TargetPort:445
- Protocol:SMB
- Credentials:Anonymous

对照xml文件格式,添加代码`<value>data</value>`,并且重命名为Smbtouch-1.1.1.xml

注:

文件名不是原来的Smbtouch-1.1.1.0.xml

修改好的xml文件可参照:

https://github.com/3gstudent/Smbtouch-Scanner/blob/master/Smbtouch-1.1.1.xml

再次执行Smbtouch-1.1.1.exe

回显如图

内网安全——利用NSA Smbtouch批量检测内网

内网安全——利用NSA Smbtouch批量检测内网

成功执行,并且回显xml文件内容

0x04 Smbtouch Scanner

基于以上内容,如果想尝试对指定网段进行扫描,那么需要反复修改xml配置文件,接着执行Smbtouch-1.1.1.exe进行探测

采用python自动实现以上操作,需要考虑如下问题:

- 执行Smbtouch-1.1.1.exe并获得回显
- 对回显内容进行解析,去掉多余部分
- 对范围ip地址解析
- 自动读写xml文件
- 生成log文件
- 多线程提高效率

完整代码可参考:

https://github.com/3gstudent/Smbtouch-Scanner

实际测试:

1.设置扫描ip段

如图

内网安全——利用NSA Smbtouch批量检测内网

2.执行SmbtouchScanner.py

等待扫描完成,回显显示简要信息

如图

内网安全——利用NSA Smbtouch批量检测内网

3.同级目录生成日志文件,显示详细信息

包含具体存在的漏洞,如图

内网安全——利用NSA Smbtouch批量检测内网

4.补充

考虑到安全原因,此开源代码尚不支持多线程

0x05 防御建议

针对NSA的SMB和NBT远程提权漏漏洞,建议升级系统补丁,开启防火墙,限制445端口

限制445端口的命令行代码如下:

netsh advfirewall firewall add rule name="445" protocol=TCP dir=in localport=445 action=block

同时,为确保内网安全,可使用SmbtouchScanner.py对内网进行扫描检测

注:

目前Smbtouch-1.1.1.exe已被杀毒软件查杀

0x06 小结

本文介绍了如何使用python实现自动检测内网是否存在可被SMB和NBT协议攻击的漏洞,当然,泄露的漏洞不止以上4个,Touch插件也不只有Smbtouch




原文发布时间为:2017年4月21日
本文作者:3gstudent
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
上一篇:基于边缘容器的阿里云CDN云原生实践


下一篇:DataWorks 2020-03 产品月刊