CVE-2019-0708 漏洞分析及相关测试

来源:岁月联盟 编辑:猪蛋儿 时间:2020-01-29

在CVE-2019-0708公布后几天就已经尝试过复现该漏洞,但借助当时exp并没能成功复现反弹shell的过程遂放弃,故借助这次漏洞复现报告再来尝试复现该漏洞,因为还在大三学习中,有很多知识还没有掌握,出现的错误希望得到指正,也想借此给19年的学习画上句号,希望这次可以成功吧。
漏洞背景
CVE-2019-0708 | 远程桌面服务远程执行代码漏洞
安全漏洞发布时间: 2019-05-14
MITRE CVE-2019-0708
当未经身份验证的攻击者使用 RDP 连接到目标系统并发送经特殊设计的请求时,远程桌面服务(以前称为“终端服务”)中存在远程执行代码漏洞。此漏洞是预身份验证,无需用户交互。成功利用此漏洞的攻击者可以在目标系统上执行任意代码。攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。
若要利用此漏洞,攻击者需要通过 RDP 向目标系统远程桌面服务发送经特殊设计的请求。
可以看到其中利用的RDP即远程桌面端口3389,RDP协议,所带来的危害是不可估量的,当达到预想中的任意执行的攻击效果,后续利用便多种多样起来了。
准备工作
靶机布置
根据公布的poc详情中可以得之该漏洞影响范围如下
影响系统:windows2003、windows2008、windows2008 R2、windows xp 、win7
这里选用win7系统来布置靶机,使用的系统版本为旗舰版sp1
在VMware中常规安装好win7虚拟机后根据漏洞利用要求开启3389端口,最终布置结果如下

攻击机布置
因为这次攻击使用的是metasploit-framework中提供的cve_2019_0708_bluekeep_rce所以使用已经预装有msf的Kali Linux-2019.03但其实后续过程中还是遇到了很多预料之外的情况,在后文中会讲到。
在Kali中准备好GitHub页中提供的exp与配套扫描器

最终测试环境
攻击机:Kali IP:192.168.26.135
靶机:Win7 IP:192.168.26.134(开放3389端口)
工具:MSF框架
漏洞攻击
以下是在进行漏洞复现过程的整理以及遇到的各种各样预料之外的问题及我所能找到的并确实解决了我遇到问题的相关解决方案。
框架载入模块时遇到的问题
模块加载失败
按照第一次复现时的思路,就是将exp等文件放入MSF对应目录中使框架加载,但是这次却出现了框架无法加载对应模组的问题,

查看framework.log得到如下信息
......[12/28/2019 02:47:10] [e(0)] core: Dependency for windows/x64/encrypted_shell_reverse_tcp is not supported[12/28/2019 02:47:10] [e(0)] core: Dependency for windows/encrypted_shell_reverse_tcp is not supported[12/28/2019 02:47:11] [e(0)] core: Dependency for windows/x64/encrypted_reverse_tcp is not supported[12/28/2019 02:47:11] [e(0)] core: Dependency for windows/encrypted_reverse_tcp is not supported[12/28/2019 02:47:12] [e(0)] core: Unable to load module /opt/metasploit-framework/embedded/framework/modules/auxiliary/scanner/msmail/onprem_enum.go Errno::ENOENT No such file or directory - go /opt/metasploit-framework/embedded/lib/ruby/2.6.0/open3.rb:213:in `spawn'......
寻找解决方案
对于出现该问题的原因还未知,这里我尝试重新从MSF重新获取安装,但问题似乎仍未解决,仍然会出现0708的对应模组未能成功加载的问题,在百度无果之后,终于在某404搜索引擎帮助下得到了线索,在参考了以下文章及issue后
Playing with the BlueKeep MetaSploit module
Can not load another module #12321
Getting the Bluekeep Exploit-Twitter
Getting the Bluekeep Exploit
决定尝试使用git-bundle的方式来重新安装我的MSF框架,这样子的好处就是可以直接获取Github上已经含有cve-2019-0708的框架版本,而不用手动下载添加,避免了未知的干扰因素
尝试新安装方式
新的安装方式首先要将项目git-clone至本地,布置过程如下
root@kali:~/Desktop# git clone --single-branch --branch bluekeep https://github.com/busterb/metasploit-framework  Cloning into 'metasploit-framework'
因为克隆过程极为缓慢,即使设置代理之后也提不上速度,所以消耗了不少的时间,当克隆完成后进入该目录,用对应命令进行安装
root@kali:~/Desktop/metasploit-framework# bundle install
但是…接下来的一连串情况是万万没想到
安装过程中又遇到的问题
因为通过bundle安装中,需要安装许多的对应组件,而我是第一次尝试这样的安装,所以很多相关依赖没有安装,

其中就包括zlib、zliblg-dev、libpq-dev、libpcap-dev,通过以下命令安装后重新执行安装命令
sudo apt-get install zlib1gsudo apt-get install zlib1g.devsudo apt-get install libpq-devsudo apt-get install libpcap0.8-dev
最终出现该样式便是安装成功

如果出现的是其他的绿色字体似乎也是安装成功的标志,只要不是鲜红色的报错
攻击过程
重新安装好框架后启动程序

[1] [2] [3]  下一页