CVE-2019-0708 "BlueKeep" 未认证扫描器 PoC,作者 @JaGoTu 和 @zerosum0x0。
技术细节:https://zerosum0x0.blogspot.com/2019/05/avoiding-dos-how-bluekeep-scanners-work.html
Metasploit 模块已合并至 rapid7:master 分支。
msf5> use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
https://github.com/rapid7/metasploit-framework/pull/11869
如果您正在寻找该扫描器的 C 语言版本,请查看 ErrataRob 对该项目的分支,它进一步精简了代码,使大范围扫描更快更简单。
https://github.com/robertdavidgraham/rdpscan
一个基于 rdesktop 的扫描器分支,可检测主机是否受 CVE-2019-0708(Microsoft Windows 远程桌面服务远程代码执行漏洞)影响。它不应导致拒绝服务,但由于多年来 RDP 协议栈的不同版本,无法保证 100% 安全。由于无需认证,该扫描器对启用了 NLA(已确认的缓解措施)的主机结果不可靠。

仓库中提供了一个预编译的 rdesktop 二进制文件,但以下是标准的 rdesktop 构建过程:
git clone https://github.com/zerosum0x0/CVE-2019-0708.git
cd CVE-2019-0708/rdesktop-fork-bd6aa6acddf0ba640a49834807872f4cc0d0a773/
./bootstrap
./configure --disable-credssp --disable-smartcard
make
./rdesktop 192.168.1.7:3389
此 rdesktop 分支仅在 X11 GUI Linux 环境 下得到良好支持。在其他平台上结果可能不同。 请参考正常的 rdesktop 编译说明,或查看 Docker 镜像的构建方式。
您也可以使用 Dockerfile 从源码构建镜像,然后通过该镜像运行 rdesktop:
docker build . -t cve-2019-0708:latest
docker run cve-2019-0708:latest 192.168.1.7:3389
要扫描一个子网或 Shodan 索引中的主机,请先构建 Docker 镜像,然后运行 scan_with_docker.py:
./scan_with_docker.py 'asn:ASXXXX port:3389'
Not a valid subnet. Trying to use as Shodan search terms ...
Shodan search returned 498 hosts, press enter to start scan
Vulnerable hosts:
x.x.x.x
x.x.x.x
[...]
./scan_with_docker.py 192.168.1.0/24
Vulnerable hosts:
192.168.1.28
192.168.1.30
[...]
该漏洞的细节已经开始进入公众视野。此工具并不会为攻击者提供通往理论 RCE 的免费通行证。
修改此 PoC 以触发拒绝服务确实会降低攻击门槛,但仍需要一定程度的努力。我们最初并未解释该扫描器的工作原理,仅告知用户它在测试中似乎准确且遵循逻辑路径。
系统管理员需要此类工具来发现易受攻击的主机。本工具仅用于合法目的,并促进安全社区对该漏洞的理解。由于此 PoC 主动利用漏洞,请勿在未获得授权的情况下针对目标使用。
rdesktop 分支采用 GPLv3 许可证。
Metasploit 模块采用 Apache 2.0 许可证。