Find and fingerprint web servers on a target. Use when asked to "find web servers", "fingerprint a website", "what's running on this web server", "identify web technologies", or "scan for web services".
Systematically discover and identify web servers and their technologies. You must complete all steps in sequence.
Activate this skill when the user needs to:
| Script | Purpose |
|--------|---------|
| fetch_page.py | Fetch a web page and extract fingerprinting info |
Script usage:
python scripts/fetch_page.py <url>
python scripts/fetch_page.py 192.168.1.1 --port 8080
python scripts/fetch_page.py 192.168.1.1 --https
python scripts/fetch_page.py example.com --json
Goal: Find open web server ports on the target.
Run this scan:
nmap -Pn -p 80,443,8080,8443,8000,8888,3000,5000 <target>
Parse output: Look for ports showing open state. Common web ports:
Next: For EACH open port found, proceed to Step 2.
Goal: Identify what web server software is running.
Run this scan:
nmap -Pn -sV -p <open_ports> <target>
Example: If Step 1 found ports 80 and 443 open:
nmap -Pn -sV -p 80,443 192.168.1.1
Parse output: Note the SERVICE and VERSION columns. Look for:
Next: Proceed to Step 3 for each web port.
Goal: Fetch the page and identify technologies.
Run the fetch_page.py script for each web port:
For HTTP (port 80):
python scripts/fetch_page.py <target>
For HTTPS (port 443):
python scripts/fetch_page.py <target> --https
For alternate ports:
python scripts/fetch_page.py <target> --port 8080
python scripts/fetch_page.py <target> --port 8443 --https
The script returns:
Next: Proceed to Step 4 to compile findings.
Goal: Summarize all findings in a structured report.
Report format:
## Web Fingerprint Report
### Target: <target>
### Scan Date: <date>
### Open Web Ports
- Port 80: HTTP (open)
- Port 443: HTTPS (open)
### Server Software
- Port 80: Apache/2.4.41 (Ubuntu)
- Port 443: Apache/2.4.41 (Ubuntu)
### Web Technologies Detected
- CMS: WordPress 6.0
- Framework: PHP
- Libraries: jQuery 3.6
- CDN: Cloudflare
### Page Information
- Title: "Welcome to Example Site"
- Generator: WordPress 6.0
### Headers of Interest
- Server: Apache/2.4.41 (Ubuntu)
- X-Powered-By: PHP/8.1
### Observations
- WordPress admin panel at /wp-admin
- Login page detected
- Self-signed SSL certificate
| Task | Command |
|------|---------|
| Find web ports | nmap -Pn -p 80,443,8080,8443 <target> |
| Service versions | nmap -Pn -sV -p <ports> <target> |
| Fetch HTTP page | python scripts/fetch_page.py <target> |
| Fetch HTTPS page | python scripts/fetch_page.py <target> --https |
| Fetch alt port | python scripts/fetch_page.py <target> -p 8080 |
User asks: "What web servers are running on 192.168.1.1?"
Step 1: Scan for web ports
nmap -Pn -p 80,443,8080,8443,8000,8888,3000,5000 192.168.1.1
Output shows: 80/tcp open, 443/tcp open
Step 2: Get service versions
nmap -Pn -sV -p 80,443 192.168.1.1
Output shows: Apache httpd 2.4.41
Step 3: Fingerprint each port
python scripts/fetch_page.py 192.168.1.1
python scripts/fetch_page.py 192.168.1.1 --https
Output shows: WordPress detected, jQuery, PHP
Step 4: Report findings to user
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer