Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
BlueKeep — CVE-2019-0708 bluekeep 漏洞检测 | Kitploit
工具/GitHubGitHub/oneoy/bluekeep
侦察漏洞扫描器漏洞利用信息收集网络安全渗透测试
GitHuboneoy/bluekeep

BlueKeep

CVE-2019-0708 bluekeep 漏洞检测

查看仓库
127年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Windows download macOS download Linux download Follow

用于 CVE-2019-0708 BlueKeep 漏洞的 rdpscan

这是一个用于检测 Microsoft 远程桌面中 CVE-2019-0708 漏洞的快速但粗糙的扫描器。 目前,公共互联网上约有 70 万台机器受此漏洞影响, 而约有 200 万台机器暴露了远程桌面,但已修补/可安全抵御利用。许多人预计在 未来几个月内将出现类似 WannaCry 和 notPetya 的毁灭性互联网蠕虫。 因此,请扫描你的网络并修补你的系统。此工具可让你轻松扫描网络 以发现易受攻击的机器。

要使用此工具,你可以下载一个“二进制”文件从命令行运行,也可以下载 源代码并自行编译。对于 Windows,有预编译二进制文件 可用。

此工具完全基于 https://github.com/zerosum0x0/CVE-2019-0708 的 rdesktop 补丁。 我只是精简了代码,以便能在 macOS 和 Windows 上轻松编译, 并添加了扫描多个目标的功能。

Status

这个工具才出现几天,还处于实验阶段。不过,我正在通过扫描 整个互联网来测试它(借助 masscan),因此我正在快速解决 很多问题。你可以尝试在 Twitter(@erratarob)上联系我以获取帮助/评论。

  • 2019-05-27 - 发布了 Windows 和 macOS 二进制文件(点击上方徽章)。你们 Linux 用户一如既往只能获得源代码。三个平台似乎都运行良好。
  • 2019-05-26 - 修复 Windows 网络问题
  • 2019-05-25 - Linux 和 macOS 运行良好,Windows 存在一些网络错误
  • 2019-05-24 - 可在 Linux 和 macOS 上运行,Windows 有一些编译错误
  • 2019-05-23 - 目前正在 XCode 中处理 macOS

Primary use

要扫描网络,请按如下方式运行:

root@kitploit:~
rdpscan 192.168.1.1-192.168.1.1.255

这会对每个地址打印一行结果,如果存在该漏洞则显示 VULNERABLE, 如果(可能)安全则显示 SAFE,如果程序无法弄清楚状态则显示 UNKNOWN, 例如目标无响应时。由于大多数目标不会响应,从统计上看,大多数结果将是 UNKNOWN。

它的速度相当慢。你可以通过添加命令行参数 --workers 1000 来提高速度。但你还可以通过先使用 masscan 作为前端 快速找出开放 3389 端口的机器,然后仅使用 rdpscan 扫描这些结果机器来进一步提升速度。

root@kitploit:~
masscan 10.0.0.0/8 -p3389 --rate 1000000 >ips.txt
rdpscan --file ips.txt > results.txt

或者,一步到位,将前一个命令的输出通过管道传给后一个命令:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 --rate 1000000 | rdpscan --file -

你可以使用 -d 参数获得更详细的诊断信息,这些信息会 打印到 sterr。这是我通常运行程序的方式:

root@kitploit:~
rdpscan --file ips.txt 2> diag.txt 1> results.txt

Building

困难的部分在于安装 OpenSSL 库,并且不要与系统上 其他版本冲突。在 Debian Linux 上,我会执行:

root@kitploit:~
$ sudo apt install libssl-dev

一旦解决了这个问题,你只需像这样把所有 .c 文件一起编译:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -o rdpscan

我在目录中放了一个 Makefile 来完成这项工作,因此你很可能只需:

root@kitploit:~
$ make

代码是用 C 编写的,因此需要安装 C 编译器,例如执行以下操作:

root@kitploit:~
$ sudo apt install build-essential

Common build errors

本节介绍一些比较明显的构建错误。

root@kitploit:~
ssl.h:24:25: fatal error: openssl/rc4.h: No such file or directory

这意味着你要么没有安装 OpenSSL 头文件,要么它们不在 某个路径中。请记住,即使你安装了 OpenSSL 二进制文件, 也不意味着你已经安装了开发组件。你需要同时安装 头文件和库。

要在 Debian 上安装这些组件,请执行:

root@kitploit:~
$ sudo apt install libssl-dev

要修复路径问题,请添加编译标志 -I/usr/local/include 或类似 选项。

以下是一个链接器问题的示例:

root@kitploit:~
Undefined symbols for architecture x86_64:
"_OPENSSL_init_ssl", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_RSA_get0_key", referenced from:
    _rdssl_rkey_get_exp_mod in ssl-d5fdf5.o
"_SSL_CTX_set_options", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_X509_get_X509_PUBKEY", referenced from:
    _rdssl_cert_to_rkey in ssl-d5fdf5.o

我在 macOS 上遇到这个问题是因为存在多个版本的 OpenSSL。我通过 硬编码路径来修复:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -I/usr/local/include -L/usr/local/lib -o rdpscan

根据其他人的评论,如果你使用 Homebrew 安装了相关组件,下面的命令行 可能可以在 macOS 上工作。不过,我仍然会遇到上述链接错误, 因为我安装了其他冲突的 OpenSSL 组件。

root@kitploit:~
gcc $(brew --prefix)/opt/openssl/lib/libssl.a $(brew --prefix)/opt/openssl/lib/libcrypto.a -o rdpscan *.c

Running

上面的部分提供了运行该程序的快速入门提示。本节提供 更深入的帮助。

要扫描单个目标,只需传入目标的地址:

root@kitploit:~
./rdpscan 192.168.10.101

你可以传入 IPv6 地址和 DNS 名称。你可以传入多个目标。 一个例子是:

root@kitploit:~
./rdpscan 192.168.10.101 exchange.example.com 2001:0db8:85a3::1

你还可以扫描地址范围,使用起始-结束 IPv4 地址, 或 IPv4 CIDR 规范。IPv6 范围不受支持,因为它们太大。

root@kitploit:~
./rdpscan 10.0.0.1-10.0.0.25 192.168.0.0/16

默认情况下,它一次只扫描 100 个目标。你可以通过 --workers 参数增加此数量。但是,无论你将此参数设置得多高, 实际上根据你的系统,同时运行的 worker 最多约为 500 到 1500 个。

root@kitploit:~
./rdpscan --workers 1000 10.0.0.0/24

除了在命令行上指定目标,你还可以 从文件中加载它们,使用命名恰当的 --file 参数:

root@kitploit:~
./rdpscan --file ips.txt

文件格式是每行一个地址、名称或范围。它还可以 消耗由 masscan 生成的文本。多余的空格会被修剪, 空行会被忽略,任何注释行也会被忽略。注释 是 以 # 字符或 // 字符开头的行。

输出发送到 stdout,给出 VULNERABLE、SAFE 或 UNKNOWN 状态。每种状态可能还有其他原因。

root@kitploit:~
149.129.120.24  - UNKNOWN - FIN received
45.60.213.160   - SAFE - not RDP but HTTP
208.43.229.89   - SAFE - CredSSP required
170.104.127.137 - UNKNOWN - FIN received
86.188.190.117  - UNKNOWN - connect timeout
62.15.34.157    - SAFE - Target appears patched
216.15.251.120  - VULNERABLE -- got appid
69.62.158.174   - VULNERABLE -- got appid
92.111.20.13    - SAFE - Target appears patched

你可以使用 grep 和 cut 等附加 unix 命令处理此输出。 要仅获取易受攻击机器的列表:

root@kitploit:~
./rdpscan 10.0.0.0/8 | grep 'VULN' | cut -f1 -d'-'

那些标记为“UNKNOWN”的可能值得稍后扫描,尤其是 “FIN received”,这通常意味着对端因互联网延迟而提前 终止了连接。将它们保存到文件中,然后在下次扫描时 使用 --file 选项读回。

“CredSSP required”(表示需要 NLA)是否算“SAFE”尚有争议。 这意味着在我们测试/触发漏洞之前,需要密码 登录。它可能未修补,并且对经过身份验证的用户存在漏洞, 只是无法被蠕虫或未经身份验证的用户利用。

对于你扫描的每个 IP 地址,你应该总是在 stdout 上获得且仅获得一个状态。 当然,如果你多次指定一个 IP 地址,你将获得该地址的多个 状态。

然而,由于此代码基于 rdestkop,某些协议 错误不会产生状态。如果你在互联网上有一个公共 IP 地址 产生了这些错误之一,那么我很乐意修复它。

Diagnostic info

添加 -d 参数会将连接的诊断信息转储到 stderr。

root@kitploit:~
./rdpscan 62.15.34.157 -d

[+] [62.15.34.157]:3389 - connecting...
[+] [62.15.34.157]:3389 - connected from [10.1.10.133]:49211
[+] [62.15.34.157]:3389 - SSL connection
[+] [62.15.34.157]:3389 - version = v4.8
[+] [62.15.34.157]:3389 - Sending MS_T120 check packet
[-] [62.15.34.157]:3389 - Max sends reached, waiting...
62.15.34.157    - SAFE - Target appears patched

在 macOS/Linux 上,你可以按通常方式将 stdout 和 stderr 分别重定向到不同的 文件:

root@kitploit:~
./rdpscan --file ips.txt 2> diag.txt 1> results.txt

SOCKS5 与 Tor 的乐趣

因此它包含 SOCKS5 支持:

root@kitploit:~
./rdpscan --file ips.txt --socks5 localhost --socks5port 9050

它会使连接问题变得更糟,因此你会得到更多“UNKNOWN”结果。

下载工具