whatweb
Web technology fingerprinting tool. Identifies CMS, frameworks, and server software.
Quickstart
whatweb https://target.com
whatweb -v https://target.com
whatweb -a 3 https://target.com
whatweb -i urls.txt
Core Concepts
| Concept |
Description |
| Plugins |
Detection modules for technologies |
| Aggression |
1=passive, 3=aggressive |
| Fingerprinting |
Match patterns in responses |
Syntax
whatweb [options] <url>
whatweb [options] -i <file>
Options
| Option |
Description |
<url> |
Single URL |
-i <file> |
Input file |
--input-file <f> |
Same as -i |
Aggression
| Option |
Description |
-a <level> |
Aggression level (1-4) |
--aggression <n> |
1=stealthy, 3=aggressive, 4=heavy |
Output
| Option |
Description |
-v |
Verbose |
-q |
Quiet |
--color=never |
No colors |
--log-verbose <f> |
Verbose log |
--log-brief <f> |
Brief log |
--log-json <f> |
JSON output |
--log-xml <f> |
XML output |
Request
| Option |
Description |
-U <ua> |
User agent |
-H <header> |
Custom header |
--cookie <c> |
Cookie |
--proxy <url> |
Proxy |
| Option |
Description |
-t <n> |
Threads |
--wait <sec> |
Delay between requests |
--max-threads <n> |
Max threads |
Plugins
| Option |
Description |
-l |
List plugins |
-p <plugins> |
Use specific plugins |
--info-plugins <p> |
Plugin info |
Recipes
Basic Scanning
whatweb https://target.com
whatweb -v https://target.com
whatweb -vv https://target.com
whatweb https://target1.com https://target2.com
Aggression Levels
whatweb -a 1 https://target.com
whatweb -a 2 https://target.com
whatweb -a 3 https://target.com
whatweb -a 4 https://target.com
List Scanning
whatweb -i urls.txt
cat urls.txt | whatweb
whatweb -i urls.txt -a 3 -v
Specific Plugins
whatweb -l
whatweb -p wordpress,apache,php https://target.com
whatweb --info-plugins wordpress
whatweb --log-json results.json https://target.com
whatweb --log-xml results.xml https://target.com
whatweb --log-brief brief.txt https://target.com
whatweb --log-verbose verbose.txt https://target.com
Through Proxy
whatweb --proxy http://127.0.0.1:8080 https://target.com
whatweb --proxy-user admin:pass --proxy http://proxy:8080 https://target.com
With Authentication
whatweb --cookie "session=abc123" https://target.com
whatweb -H "Authorization: Bearer token" https://target.com
whatweb -U "Mozilla/5.0 Custom" https://target.com
Network Range
whatweb 10.10.10.0/24
whatweb 10.10.10.10:8080
Integration Pipeline
cat hosts.txt | httpx -silent | xargs -I {} whatweb {}
subfinder -d target.com -silent | httpx -silent | \
while read url; do whatweb "$url"; done
cat urls.txt | while read url; do
whatweb --log-json - "$url" 2>/dev/null
done | jq -s '.'
Output & Parsing
whatweb --log-json results.json https://target.com
cat results.json | jq -r '.[].plugins | keys[]'
whatweb https://target.com | grep -i wordpress
whatweb -v https://target.com 2>&1 | grep -E "version|[0-9]+\.[0-9]+"
Troubleshooting
| Issue |
Solution |
| Slow scan |
Reduce -a level |
| Missing detections |
Increase -a level |
| Blocked |
Change -U user agent |
| Timeout |
Check connectivity |
References