SMB协议利用之ms17-010-永恒之蓝漏洞抓包分析SMB协议
实验环境:
Kali msf以及wireshark
Win7开启网络共享(SMB协议)
实验步骤:
1、查看本机数据库是否开启,发现数据库是关闭的,需要开启
2、 打开本机数据库
3、再次查看postgresql数据库状态,发现postgresql数据库已经开启
4、打开msf,查看msf是否连接上数据库,下图显示连接上数据库了
5、如果没有连上数据库,并且发现数据库服务也开启了,这时可以通过初始化msf 数据库,便能解决问题
6、接下来便进行再msf中一些操作了,发现哪些主机开启445端口
利用auxiliary/scanner/smb/smb_version脚本搜索有哪些主机开放了smb服务
7、使用hosts查看有总共哪些主机开放了445端口
8、得到主机开放了445端口(SMB)之后,然后判断是否存在ms17-010-永恒之蓝漏洞
利用auxiliary/scanner/smb/smb_ms17_010脚本扫描判断目标是否存在ms17-010-永恒之蓝漏洞,这里以其中一个为例,当然也可以跳过445端口扫描,直接进行MS17-010漏洞扫描。
9、运行后,可以看到扫描结果,说明192.168.43.111可能存在MS17-010漏洞
10、接下来就是利用exploit/windows/smb/ms17_010_eternalblue脚本扫描刚才可能存在MS17-010漏洞的主机,为了以后可以持久化控制目标,这里需要加载一个payload(这里用windows/x64/meterpreter/reverse_tcp),同时在本地开启监听
11、开始攻击,把抓包,从下图可以看到攻击成功
12、抓包对整个攻击过程进行分析
12.1、首次首先客户端发送一个SMB negotiate protocolrequest请求数据报,并列出它仅支持SMBv1 #注意在这里与正常的不同,正常的会列出好多版本,正常的SMB通信过程见我的博客相关内容。
12.2、服务端一般默认开启SMBv1,下图说明,服务端同意与客户端建立连接并用SMBv1版本通信。
12.3、协议确定之后, 客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送session setup request请求数据报实现的。可以看到下图使用匿名用户登录。
12.4、服务器通过发送一个session setup response应答数据报来允许或拒绝本次连接,下图没有提示出错,可以说明允许本次连接。
12.5、当客户端和服务器完成了磋商和认证之后,它会发送一个tree connect andx rerquest SMB数据报并列出它想访问网络资源的名称。
12.6、服务器会发送一个tree connect andx response应答数据报以表示此次连接是否被接受或拒绝,下图可以看到没有提示错误,说明连接成功。
12.7、在接下来就是连接到相应资源后,SMB客户端进行的一些操作了,这里不进行分析了。
------------------------------------------------------------------------------------------------------------
SMB协议原理抓包分析请参考:https://www.cnblogs.com/yuzly/p/10480438.html