未认证的 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 对该项目的 fork,它进一步精简了大范围扫描的速度和易用性。
https://github.com/robertdavidgraham/rdpscan
一个基于 rdesktop 的扫描器 fork,用于检测主机是否易受 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 fork 仅在 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
[...]
该漏洞的细节已经开始进入主流视野。此工具不会为攻击者提供通往理论上的远程代码执行的免费通行证。
修改此 PoC 以触发拒绝服务确实降低了门槛,但仍需付出一定努力。我们最初没有解释此扫描器的工作原理,只是告诉用户它在测试中似乎是准确的,并且遵循逻辑路径。
系统管理员需要此类工具来发现易受攻击的主机。此工具仅供合法用途,并用于推进安全社区对该漏洞的理解。由于此 PoC 主动利用了该漏洞,请勿在未经许可的情况下针对目标使用。
rdesktop fork 采用 GPLv3 许可。
Metasploit 模块采用 Apache 2.0 许可。