recon — Claude Code skill: target recon and attack surface mapping
A skill for structured reconnaissance of an authorized target: passive gathering, port scanning, and a prioritized attack surface map.
npx skills add briiirussell/cybersecurity-skills --skill recon -a claude-codeWhat recon does
The skill runs recon in three phases. Passive first: DNS records via dig any, a zone transfer attempt, subdomains from certificate transparency through crt.sh, whois, search engine dorking, public repository searches, and old pages in the Wayback Machine. Then the active phase, and only with explicit authorization: nmap -sC -sV, directory brute forcing with gobuster, feroxbuster or dirsearch, virtual host enumeration, API endpoint discovery, and SSL/TLS checks with testssl.sh or sslyze.
Output is a markdown report: a table of passive findings, discovered subdomains, detected technologies with versions, a port and service table, a prioritized attack surface summary, and ordered next steps. Prioritization weighs potential impact severity, likelihood of exploitation, and exposure level.
Before any command runs, the skill asks you to confirm written authorization and the scope boundary. If authorization is unclear it asks instead of assuming. Related skills from the same author: osint-recon for a broader investigation, web-pentest for the stage after the attack surface map, owasp-audit for source review. It refuses targets without explicit permission and turns down mass scanning of unrelated systems. That makes it worth checking you actually hold a signed scope rather than a verbal agreement.
What it helps with
- pull subdomains from certificate transparency
- scan ports and fingerprint running services
- find exposed directories and API endpoints
- turn findings into a prioritized attack surface map
- log every command for the engagement record
Example prompts for the agent
- run recon against example.com, authorization and scope confirmed
- do the passive pass: DNS, whois, subdomains via crt.sh
- scan the top 1000 ports and fingerprint the services
How to install recon
1Skills CLI (Vercel)
npx skills add briiirussell/cybersecurity-skills --skill recon -a claude-code2Manually: put the files in place
~/.claude/skills/recon/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/recon/
1Skills CLI (Vercel)
npx skills add briiirussell/cybersecurity-skills --skill recon -a codex2Manually: put the files in place
.agents/skills/recon/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add briiirussell/cybersecurity-skills --skill recon -a cursor2Manually: put the files in place
.cursor/skills/recon/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install briiirussell/cybersecurity-skills recon2Manually: put the files in place
.github/skills/recon/SKILL.md1Skills CLI (Vercel)
npx skills add briiirussell/cybersecurity-skills --skill recon -a gemini-cli2Platform CLI
gemini skills install https://github.com/briiirussell/cybersecurity-skills --path skills/reconManually: put the files in place
.devin/skills/recon/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add briiirussell/cybersecurity-skills --skill recon -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about recon
How do I install recon in Claude?
Run npx skills add briiirussell/cybersecurity-skills --skill recon -a claude-code. The skill file then lands at ~/.claude/skills/recon/SKILL.md.
What does recon do?
It performs structured reconnaissance against an authorized target: passive data gathering, active scanning, and a consolidated attack surface map with recommended next steps.
Does the skill require authorization?
Yes. Before running any command it asks you to confirm written authorization and the scope boundary, and it asks when that is unclear. Requests against systems without permission are refused.
Source text
SKILL.md · MIT
--- name: recon description: "Perform structured reconnaissance and attack surface enumeration for authorized penetration tests, CTF challenges, and bug bounty programs. Use when the user mentions 'recon,' 'reconnaissance,' 'enumerate,' 'attack surface,' 'subdomain enumeration,' 'port scan,' 'fingerprint,' 'asset discovery,' or needs to map a target's external footprint." allowed-tools: Bash, Read, Write, WebSearch, WebFetch --- # Recon — Penetration Testing Reconnaissance Perform structured reconnaissance against an authorized target, organizing findings into an actionable attack surface map. Cross-references: `osint-recon` for the deeper open-source-intelligence pass (people, organizations, historical data) — this skill is the active/passive target-mapping side, osint-recon is the broader investigative side; they pair naturally. `web-pentest` for the next stage once recon has produced an attack surface map and an authorized target list. `owasp-audit` for source-code review when you have access to the target's code. ## Authorization Check Before running any commands, confirm: 1. The user has written authorization for the target (pentest engagement, bug bounty program, CTF/lab environment) 2. The target is within the defined scope If authorization is unclear, ask before proceeding. Never assume authorization. ## Methodology ### Phase 1: Passive Recon Gather information without touching the target directly. **DNS enumeration:** - Run `dig any $ARGUMENTS` for A, AAAA, MX, TXT, NS, CNAME records - Attempt zone transfer: `dig axfr @ns-server $ARGUMENTS` - Enumerate subdomains via certificate transparency: ``` curl -s "https://crt.sh/?q=%25.$ARGUMENTS&output=json" | jq -r '.[].name_value' | sort -u ``` **WHOIS and registration:** Run `whois $ARGUMENTS` for registrant, nameserver, and creation date info. **Search engine dorking:** Use targeted queries — `site:`, `inurl:`, `filetype:`, `intitle:` — to find exposed pages, documents, and admin panels. **Technology fingerprinting:** Identify frameworks, CMS, server software, and JavaScript libraries from public-facing pages. **Public code repositories:** Search GitHub/GitLab for the target's org name, domain, API keys, or internal paths. **Historical data:** Check the Wayback Machine for old endpoints, removed pages, and configuration files. ### Phase 2: Active Recon (explicit authorization only) **Port scanning:** ```bash nmap -sC -sV -oN scan-results.txt $ARGUMENTS ``` Start with top 1000 ports. Expand to full range (`-p-`) if needed. Use `-Pn` if the host appears down but is in scope. **Service enumeration:** Based on open ports, probe for version info and default configurations. **Web content discovery:** - Directory bruting with gobuster, feroxbuster, or dirsearch - Virtual host enumeration - API endpoint discovery (check `/api/`, `/v1/`, `/graphql`, `/swagger.json`) **SSL/TLS analysis:** Run `testssl.sh` or `sslyze` to check for weak ciphers, expired certificates, and misconfigurations. ### Phase 3: Analysis Correlate all findings. Identify the most promising attack vectors and prioritize by: 1. Severity of potential impact 2. Likelihood of exploitation 3. Exposure level (internet-facing vs. internal) ## Output Format Produce a structured recon report: ```markdown # Recon Report ## Target: [target] ## Scope: [confirmed scope] ## Date: [date] ### Passive Findings | Finding | Details | Relevance | |---------|---------|-----------| ### Subdomains Discovered - [list] ### Technologies Detected - [list with versions where identified] ### Active Findings | Port | Service | Version | Notes | |------|---------|---------|-------| ### Attack Surface Summary [Prioritized list of interesting findings with risk assessment] ### Recommended Next Steps [Ordered list of what to investigate further] ``` ## Boundaries - Stay within the defined scope — never scan adjacent or out-of-scope systems - Rate-limit aggressive scans to avoid disruption - Log all commands run for the engagement record - If you discover evidence of active compromise by a third party, alert the user immediately - Refuse requests targeting systems without explicit authorization - Refuse requests for mass scanning of unrelated targets ## References - PTES (Penetration Testing Execution Standard) - OWASP Testing Guide - Bug Bounty Methodology (jhaddix/tbhm)
© briiirussell · MIT · briiirussell/cybersecurity-skills