Skip to main content

tech-fingerprint

Identify technologies, frameworks, and software versions running on web targets. Use when you need to discover the technology stack of a website, when mapping attack surface for known CVEs, when identifying CMS or framework versions, or when the user asks about what technologies a site is running.

Source facts

Repository
zebbern/termstack
Last source activity
April 10, 2026 at 22:53
Detected SKILL.md language
English
Stars
4
Forks
3

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
tech-fingerprint
description
Identify technologies, frameworks, and software versions running on web targets. Use when you need to discover the technology stack of a website, when mapping attack surface for known CVEs, when identifying CMS or framework versions, or when the user asks about what technologies a site is running.
tags
["security","fingerprint","technology","detection","version"]
triggers
["technology fingerprint","tech stack detection","identify technology","version detection","wappalyzer"]
# tech-fingerprint ## When to Use - Need to identify what technologies a website is running - Discovering CMS platforms (WordPress, Drupal, Joomla) - Finding JavaScript frameworks (React, Angular, Vue) - Identifying web servers and their versions - Mapping attack surface for known vulnerabilities - Looking for outdated software with CVEs - User asks "what is this site built with?" - Preparing for targeted vulnerability scanning - Building technology profiles for multiple targets ## Quick Start ```bash # Fast fingerprint with httpx echo "https://example.com" | httpx -silent -td -sc -title # Deep fingerprint with WhatWeb whatweb -a 3 https://example.com ``` ## Step-by-Step Process ### Phase 1: Quick Technology Detection (Httpx) 1. **Basic tech detection:** ```bash echo "https://example.com" | httpx -silent -td ``` 2. **With status and title:** ```bash cat urls.txt | httpx -silent -td -sc -title ``` 3. **Full fingerprint output:** ```bash cat urls.txt | httpx -silent -td -sc -title -server -json -o fingerprint.json ``` 4. **WordPress detection:** ```bash cat urls.txt | httpx -silent -wp -json -o wordpress.json ``` 5. **CPE detection for CVE mapping:** ```bash cat urls.txt | httpx -silent -cpe -json -o cpe.json ``` ### Phase 2: Deep Fingerprinting (WhatWeb) 1. **Stealthy scan (single request):** ```bash whatweb -a 1 https://example.com ``` 2. **Aggressive scan (version detection):** ```bash whatweb -a 3 https://example.com ``` 3. **Heavy scan (full enumeration):** ```bash whatweb -a 4 https://example.com ``` 4. **JSON output:** ```bash whatweb --log-json=results.json https://example.com ``` 5. **Scan from file:** ```bash whatweb -i urls.txt --log-json=whatweb.json ``` 6. **Verbose with plugin info:** ```bash whatweb -v https://example.com ``` ### Phase 3: Combine Results ```bash # Run both tools cat urls.txt | httpx -silent -td -json -o httpx_tech.json whatweb -i urls.txt --log-json=whatweb_tech.json # Extract unique technologies cat httpx_tech.json | jq -r '.tech[]?' | sort -u > technologies.txt ``` ### Phase 4: Filter High-Value Targets ```bash # Find WordPress sites cat httpx_tech.json | jq -r 'select(.tech | contains(["WordPress"])) | .url' # Find specific framework cat httpx_tech.json | jq -r 'select(.tech | contains(["Laravel"])) | .url' # Find outdated Apache whatweb -i urls.txt -a 3 | grep -i "apache/2.2" ``` ## Examples ### Example 1: Quick Technology Scan **Scenario:** Fast tech detection across many targets ```bash subfinder -d example.com -silent | httpx -silent -td -sc -title ``` **Output:** ``` https://www.example.com [200] [Example Domain] [nginx,PHP,WordPress] https://api.example.com [200] [API] [nginx,Node.js,Express] https://shop.example.com [200] [Shop] [Apache,PHP,Magento] ``` ### Example 2: WordPress Detection **Scenario:** Find WordPress sites and their plugins/themes ```bash cat urls.txt | httpx -silent -wp -json | jq ``` **Output:** ```json { "url": "https://blog.example.com", "wordpress": { "version": "6.4.2", "plugins": ["contact-form-7", "yoast-seo", "woocommerce"], "themes": ["flavor"] } } ``` ### Example 3: Deep Version Detection **Scenario:** Get exact software versions for CVE research ```bash whatweb -a 3 https://example.com ``` **Output:** ``` https://example.com [200 OK] Apache[2.4.41], Country[US], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[93.184.216.34], JQuery[3.5.1], PHP[7.4.3], PoweredBy[PHP/7.4.3], Script[text/javascript], Title[Example Domain], X-Powered-By[PHP/7.4.3] ``` ### Example 4: JSON Pipeline **Scenario:** Structured output for further processing ```bash whatweb -a 3 --log-json=tech.json https://example.com cat tech.json | jq '.plugins | keys[]' ``` **Output:** ``` Apache HTML5 HTTPServer JQuery PHP Title ``` ### Example 5: CPE for Vulnerability Mapping **Scenario:** Get CPE identifiers for CVE database lookups ```bash echo "https://example.com" | httpx -silent -cpe -json | jq '.cpe' ``` **Output:** ```json ["cpe:/a:apache:http_server:2.4.41", "cpe:/a:php:php:7.4.3"] ``` ### Example 6: Filter by Technology **Scenario:** Find all sites running specific technology ```bash # Find React apps cat urls.txt | httpx -silent -td -json | jq -r 'select(.tech | contains(["React"])) | .url' # Find PHP sites cat urls.txt | httpx -silent -td -json | jq -r 'select(.tech | any(. | test("PHP"))) | .url' ``` ### Example 7: WhatWeb Specific Plugin **Scenario:** Check only for specific technology ```bash whatweb -p wordpress,joomla,drupal https://example.com ``` **Output:** ``` https://example.com [200 OK] WordPress[6.4.2] ``` ### Example 8: Comprehensive Recon Pipeline **Scenario:** Full technology fingerprinting workflow ```bash TARGET="example.com" mkdir -p recon/$TARGET # Discover subdomains subfinder -d $TARGET -silent -o recon/$TARGET/subs.txt # Probe live hosts with tech detection cat recon/$TARGET/subs.txt | httpx -silent -td -sc -title -server -json -o recon/$TARGET/httpx.json # Deep scan with WhatWeb on live hosts cat recon/$TARGET/httpx.json | jq -r '.url' | whatweb -i /dev/stdin -a 3 --log-json=recon/$TARGET/whatweb.json # Summary echo "Technologies found:" cat recon/$TARGET/httpx.json | jq -r '.tech[]?' | sort | uniq -c | sort -rn ``` ## Error Handling | Error | Cause | Resolution | | --------------------------- | -------------------- | ------------------------------------ | | `no tech detected` | No fingerprint match | Try WhatWeb with higher aggression | | `context deadline exceeded` | Timeout | Increase timeout with `-timeout` | | `could not connect` | Host unreachable | Verify host is live with httpx first | | `rate limit` | Too many requests | Use `-rl` rate limit flag | | `no plugins matched` | WhatWeb no match | Try `-a 3` or `-a 4` aggression | | `permission denied` | Access blocked | Check if WAF is blocking | | `SSL error` | Certificate issue | Add `-no-https` or check cert | ## Tool Reference ### Httpx Technology Flags | Flag | Description | | ------------------- | ---------------------------------------- | | `-td, -tech-detect` | Detect technologies (wappalyzer dataset) | | `-cpe` | Display CPE identifiers | | `-wp, -wordpress` | Detect WordPress plugins/themes | | `-server` | Display web server header | | `-sc, -status-code` | Display status code | | `-title` | Display page title | | `-favicon` | Display favicon hash | | `-jarm` | Display JARM fingerprint | | `-json` | JSON output format | | `-o, -output` | Output file | | `-silent` | Clean output only | | `-t, -threads` | Number of threads (default 50) | | `-rl, -rate-limit` | Requests per second | | `-timeout` | Timeout in seconds (default 10) | ### WhatWeb Flags | Flag | Description | | -------------------- | ------------------------ | | `-a, --aggression` | Aggression level (1-4) | | `-i, --input-file` | Input file with URLs | | `-v, --verbose` | Verbose output | | `--log-json=FILE` | JSON output file | | `--log-brief=FILE` | Brief greppable output | | `--log-xml=FILE` | XML output file | | `-p, --plugins` | Select specific plugins | | `-l, --list-plugins` | List all plugins | | `-I, --info-plugins` | Detailed plugin info | | `-t, --max-threads` | Max threads (default 25) | | `--wait=SECONDS` | Wait between requests | | `-U, --user-agent` | Custom user agent | | `--cookie` | Set cookies | | `--proxy` | Use proxy | ### WhatWeb Aggression Levels | Level | Description | Requests | Use Case | | ----- | ----------- | -------- | ------------------------------- | | 1 | Stealthy | 1 | Public websites, passive recon | | 3 | Aggressive | Several | Version detection (if L1 match) | | 4 | Heavy | Many | Full enumeration, thorough scan | ## Output Interpretation ### Httpx JSON Output ```json { "timestamp": "2024-01-15T10:30:00Z", "url": "https://example.com", "status_code": 200, "title": "Example Site", "webserver": "nginx/1.18.0", "tech": ["nginx", "PHP", "WordPress", "MySQL"], "cpe": ["cpe:/a:nginx:nginx:1.18.0"] } ``` | Field | Description | | ------------- | ------------------------------ |
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub