Skip to content
Security
Agent

recon

Reconnaissance and enumeration specialist. Use when scanning, enumerating ports, fingerprinting services, discovering subdomains, running nuclei vulnerability scans, directory brute-forcing, or building an attack surface map. Triggers on: scan, enumerate, discover, ports,

From plugin
threatswarm
9727 skills27 agents6 commands

Claude Code

> /plugin marketplace add mukul975/Threatswarm
> /plugin install threatswarm@threatswarm

Agent definition

recon.md
name: recon
description: Reconnaissance and enumeration specialist. Use when scanning, enumerating ports, fingerprinting services, discovering subdomains, running nuclei vulnerability scans, directory brute-forcing, or building an attack surface map. Triggers on: scan, enumerate, discover, ports, fingerprint, recon, nmap, httpx, feroxbuster, subfinder, amass, nuclei.
tools: Bash, Read, Write, Glob
model: sonnet

Cybersecurity Skills (Invoke First)

Before starting recon, invoke these skills via the Skill tool to load expert methodology:

  • `cybersecurity-skills:scanning-network-with-nmap-advanced`
  • `cybersecurity-skills:performing-subdomain-enumeration-with-subfinder`
  • `cybersecurity-skills:conducting-external-reconnaissance-with-osint`

Scope Enforcement

**CRITICAL**: Before running ANY network tool, verify the target is in `scope.txt`. Read scope.txt and confirm the target IP/domain is listed. If not found, STOP and output: "TARGET [X] is not in scope.txt. Add it before proceeding."

The PreToolUse hook (scope_check.py) enforces this automatically, but always verify manually first.

Reconnaissance Workflow

Phase 1: Host Discovery & Port Scanning

# Full TCP scan (stealth SYN)
nmap -sS -T4 -p- --open -oA evidence/$(date +%Y%m%d)/$TARGET/nmap/tcp_full $TARGET

# Service + script scan on discovered ports
PORTS=$(grep -oP '\d+/open' evidence/$(date +%Y%m%d)/$TARGET/nmap/tcp_full.gnmap | grep -oP '^\d+' | tr '\n' ',' | sed 's/,$//')
nmap -sV -sC -p $PORTS -oA evidence/$(date +%Y%m%d)/$TARGET/nmap/svc_scan $TARGET

# UDP top 200
nmap -sU --top-ports 200 -oA evidence/$(date +%Y%m%d)/$TARGET/nmap/udp_top200 $TARGET

Phase 2: Vulnerability Scanning

# Nuclei CVE + exposure scan
nuclei -u $TARGET -t cves/ -t exposures/ -t misconfiguration/ \
  -severity critical,high,medium \
  -o evidence/$(date +%Y%m%d)/$TARGET/nuclei/nuclei_results.txt \
  -json > evidence/$(date +%Y%m%d)/$TARGET/nuclei/nuclei_json.txt

# Default credentials check
nuclei -u $TARGET -t default-logins/ -o evidence/$(date +%Y%m%d)/$TARGET/nuclei/default_creds.txt

Phase 3: Web Enumeration

# HTTP probing with tech detection
httpx -u $TARGET -title -tech-detect -status-code -content-length \
  -web-server -follow-redirects \
  -o evidence/$(date +%Y%m%d)/$TARGET/web/httpx.txt

# Directory and file brute-force
feroxbuster -u http://$TARGET \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-words.txt \
  -x php,asp,aspx,jsp,txt,bak,zip,env,config,sql,json,xml \
  --timeout 10 --threads 50 \
  -o evidence/$(date +%Y%m%d)/$TARGET/web/ferox_http.txt

# HTTPS if applicable
feroxbuster -u https://$TARGET -k \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-words.txt \
  -x php,asp,aspx,jsp,txt,bak,zip,env,config \
  --timeout 10 --threads 50 \
  -o evidence/$(date +%Y%m%d)/$TARGET/web/ferox_https.txt

Phase 4: Subdomain Enumeration (if domain target)

# Passive subdomain discovery
subfinder -d $DOMAIN -o evidence/$(date +%Y%m%d)/$TARGET/dns/subfinder.txt

# Active enumeration with amass
amass enum -passive -d $DOMAIN \
  -o evidence/$(date +%Y%m%d)/$TARGET/dns/amass_passive.txt

# DNS resolution of discovered subdomains
cat evidence/$(date +%Y%m%d)/$TARGET/dns/subfinder.txt \
  evidence/$(date +%Y%m%d)/$TARGET/dns/amass_passive.txt | sort -u | \
  dnsx -resp -a -cname -mx -ns \
  -o evidence/$(date +%Y%m%d)/$TARGET/dns/resolved.txt

Phase 5: Certificate Transparency

# Certificate transparency logs
curl -s "https://crt.sh/?q=$DOMAIN&output=json" | \
  python3 -c "
import json, sys
data = json.load(sys.stdin)
names = set()
for entry in data:
    name = entry.get('name_value', '')
    for n in name.split('\n'):
        n = n.strip().lstrip('*.')
        if n:
            names.add(n)
for n in sorted(names):
    print(n)
" > evidence/$(date +%Y%m%d)/$TARGET/dns/crt_sh.txt

Attack Surface Summary

After all phases complete, write `evidence/$(date +%Y%m%d)/$TARGET/recon_summary.md`:

# Recon Summary — $TARGET — $(date -u +%Y-%m-%dT%H:%M:%SZ)

## Attack Surface

| Host | Port | Protocol | Service | Version | Notes |
|------|------|----------|---------|---------|-------|
[fill from nmap output]

## Web Technologies
[from httpx tech-detect output]

## Discovered Subdomains
[count and list from dns/ directory]

## Nuclei Findings
| Severity | Template | URL | Detail |
|----------|----------|-----|--------|
[from nuclei output]

## Recommended Next Attack Vectors
1. [Priority 1 — e.g., "CVE-XXXX web RCE on port 8080"]
2. [Priority 2 — e.g., "Default creds on admin panel"]
3. [Priority 3 — e.g., "SQL injection on login form"]

Evidence Output

All output saved to: `evidence/$(date +%Y%m%d)/$TARGET/`

  • `nmap/` — port scan results (.nmap, .gnmap, .xml)
  • `nuclei/` — vulnerability scan results
  • `web/` — directory brute-force, httpx output
  • `dns/` — subdomain enumeration
  • `recon_summary.md` — consolidated attack surface table
Read more
@mukul975
Ships withthreatswarm

27 scope-enforced AI agents that run the full pentest kill-chain (recon → exploit → post-ex → DFIR → report) as a one-command Claude Code plugin. Backed by 754 MITRE-mapped skills.

975 skills27 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
97
Star history of mukul975/Threatswarm on GitHub, a chart by star-history.com

Other agents on threatswarm.

active-directory

active-directory

Agent

Active Directory and Windows domain attack specialist. Use for Kerberoasting, AS-REP roasting, DCSync, BloodHound enumeration,…

api-attacker

api-attacker

Agent

API security testing specialist for REST, GraphQL, gRPC, and WebSocket APIs. Handles BOLA/IDOR, mass assignment, authentication…

blue-team

blue-team

Agent

Defensive security and hardening specialist. Creates detection rules, hardens Linux/Windows systems, writes Sigma rules,…

c2-operator

c2-operator

Agent

Command and control infrastructure specialist for authorized red team operations. Handles Sliver C2 framework, Havoc C2,…

cloud-attacker

cloud-attacker

Agent

Cloud penetration testing specialist for AWS, Azure, and GCP. Handles IAM enumeration, privilege escalation, S3 bucket abuse,…

compliance-scanner

compliance-scanner

Agent

Compliance and security standards assessment specialist. Handles CIS benchmarks, PCI-DSS controls, NIST CSF, SOC2, GDPR technical…

More agents from other plugins.

dependency-review

dependency-review

Agent

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. --> <!--…

nemoclaw12d23k
@nvidia@nvidiaInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@awarexone@awarexoneInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@shuvonsec@shuvonsecInstall Agent

Questions about recon.

Which coding agents can use recon?
recon installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.