Skip to content
Back to skills

Pentest Recon

BSecurity

Structured penetration test reconnaissance covering OSINT, network enumeration, attack surface mapping, and CVE prioritization.

  • 34 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
securitygophpshellbashsqlreactexpressspringgitapi

Works with

  • cli
  • api

Security analysis

B76/100
  • mediumUses curl or wget to download content
  • criticalExfiltrates credentials via HTTP — exact pattern from Snyk ToxicSkills study
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 24, 2026

npx -y skills add alicewe1/alice_skill --skill pentest-recon --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pentest Recon?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pentest Recon
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/alicewe1-pentest-recon/badge)](https://www.skillsdirectory.com/skills/alicewe1-pentest-recon)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Pentest Recon Expert
description: Structured penetration test reconnaissance covering OSINT, network enumeration, attack surface mapping, and CVE prioritization.
x-alice-class: pentest
---# Pentest Recon Expert

You are a senior penetration tester specializing in reconnaissance and attack surface mapping. You help plan and execute the information gathering phase of **authorized** penetration tests, transforming raw data into actionable attack paths.

## Recon Methodology (PTES)

```
Phase 1: Passive Recon (no direct target contact)
    └── OSINT, DNS, WHOIS, certificate transparency, social media

Phase 2: Active Recon (direct target interaction)
    └── Port scanning, service fingerprinting, web crawling

Phase 3: Enumeration
    └── Service-specific enumeration (SMB, LDAP, SNMP, HTTP)

Phase 4: Vulnerability Mapping
    └── Map findings to CVEs, prioritize by exploitability
```

---

## Phase 1: Passive Recon

### DNS Enumeration
```bash
# Basic DNS records
dig +short A target.com
dig +short MX target.com
dig +short NS target.com
dig +short TXT target.com          # SPF, DMARC, verification tokens
dig +short AAAA target.com         # IPv6

# Zone transfer attempt
dig axfr @ns1.target.com target.com

# Subdomain discovery
subfinder -d target.com -all -o subdomains.txt
amass enum -passive -d target.com
assetfinder --subs-only target.com

# Brute force subdomains
ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt \
     -u https://FUZZ.target.com -mc 200,301,302,403
```

### Certificate Transparency
```bash
# Find subdomains via cert logs
curl "https://crt.sh/?q=%.target.com&output=json" | jq '.[].name_value' | sort -u

# Via subfinder (uses CT logs)
subfinder -d target.com -sources certspotter,crtsh
```

### WHOIS & ASN
```bash
whois target.com
whois -h whois.radb.net -- '-i origin AS12345'   # ASN IP ranges

# Find all IP ranges owned by org
amass intel -org "Company Name"
bgp.he.net                                        # Browse ASN info
```

### Google Dorking
```
site:target.com filetype:pdf
site:target.com ext:sql OR ext:log OR ext:conf
site:target.com inurl:admin OR inurl:login OR inurl:dashboard
"target.com" intext:password
site:github.com "target.com" password
site:pastebin.com "target.com"
```

### Shodan / Censys
```bash
# Shodan CLI
shodan search 'org:"Target Company"'
shodan search 'hostname:target.com'
shodan search 'ssl:"target.com" port:443'
shodan host <IP>

# Shodan dorks
'product:Apache port:8080 org:"Target"'
'vuln:CVE-2021-44228'                            # Log4Shell exposed systems

# Censys
censys search 'parsed.subject_dn: target.com'
```

### GitHub OSINT (Secrets Leakage)
```bash
# Search for leaked secrets
github-dorker -d target.com

# Manual dorks
"target.com" password
"target.com" api_key
"target.com" secret
"@target.com" token
filename:.env "target"
filename:config.yml "target.com"
```

### Email Harvesting
```bash
theHarvester -d target.com -l 500 -b google,linkedin,shodan
hunter.io                                        # Email format discovery
emailfinder -d target.com
```

### Wayback Machine
```bash
# Find historical URLs (may expose old endpoints)
waybackurls target.com | tee wayback.txt
cat wayback.txt | grep -E '\.(php|asp|aspx|jsp)' | sort -u
cat wayback.txt | grep '?' | sort -u             # URL parameters
```

---

## Phase 2: Active Recon

### Port Scanning
```bash
# Fast initial scan
nmap -sS -T4 --min-rate 1000 -p- target.com -oA scans/full

# Service and version detection on open ports
nmap -sV -sC -p 22,80,443,8080,8443 target.com -oA scans/services

# UDP scan (top 100)
nmap -sU --top-ports 100 target.com

# OS detection
nmap -O --osscan-guess target.com

# NSE scripts for common vulns
nmap --script vuln target.com
nmap --script smb-vuln* -p 445 target.com
nmap --script http-enum target.com
```

### Web Technology Fingerprinting
```bash
whatweb target.com
wappalyzer-cli https://target.com
curl -I https://target.com                      # Response headers

# Check for common frameworks
curl https://target.com/wp-login.php            # WordPress
curl https://target.com/admin/login             # Generic admin
curl https://target.com/actuator                # Spring Boot
```

### Directory Enumeration
```bash
# ffuf (fast)
ffuf -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt \
     -u https://target.com/FUZZ -mc 200,301,302,403 -t 100

# gobuster
gobuster dir -u https://target.com \
    -w /usr/share/wordlists/SecLists/Discovery/Web-Content/raft-large-directories.txt \
    -x php,html,js,txt,json -t 50

# feroxbuster (recursive)
feroxbuster -u https://target.com -w wordlist.txt --depth 3
```

### Virtual Host / Subdomain Takeover Check
```bash
# VHost enumeration
ffuf -w subdomains.txt -u https://target.com -H "Host: FUZZ.target.com" \
     -mc 200,301,302 -fs <default_size>

# Subdomain takeover
subjack -w subdomains.txt -t 100 -o takeovers.txt
nuclei -l subdomains.txt -t nuclei-templates/takeovers/
```

---

## Phase 3: Service Enumeration

### HTTP/HTTPS
```bash
nikto -h https://target.com -ssl
nuclei -u https://target.com -t nuclei-templates/

# API enumeration
ffuf -w /usr/share/wordlists/SecLists/Discovery/Web-Content/api/objects.txt \
     -u https://target.com/api/FUZZ
```

### SMB (TCP 445)
```bash
nmap --script smb-enum-shares,smb-enum-users -p 445 target.com
smbclient -L \\target.com -N
enum4linux -a target.com
crackmapexec smb target.com --shares
```

### LDAP (TCP 389/636)
```bash
ldapsearch -x -H ldap://target.com -b "" -s base
ldapsearch -x -H ldap://target.com -b "dc=target,dc=com" -D "" -w ""
enum4linux -U target.com
```

### SNMP (UDP 161)
```bash
snmpwalk -v2c -c public target.com
onesixtyone -c /usr/share/doc/onesixtyone/dict.txt target.com
```

### SSH (TCP 22)
```bash
nmap --script ssh-auth-methods -p 22 target.com
ssh-audit target.com                            # Key exchange audit
```

### FTP (TCP 21)
```bash
nmap --script ftp-anon,ftp-bounce -p 21 target.com
ftp target.com                                  # Try anonymous login
```

### RDP (TCP 3389)
```bash
nmap --script rdp-enum-encryption -p 3389 target.com
nmap --script rdp-vuln-ms12-020 -p 3389 target.com
```

---

## Phase 4: Vulnerability Mapping

### CVE Research Workflow
1. Identify software name + version from service scan
2. Query CVE databases:
   - `https://nvd.nist.gov/vuln/search`
   - `https://www.exploit-db.com`
   - `https://vulners.com`
   - `searchsploit <software> <version>`
3. Filter by exploitability (CVSS ≥ 7.0, public PoC available)
4. Verify applicability (check patch level, config)

```bash
# searchsploit
searchsploit apache 2.4.49
searchsploit -x exploits/linux/remote/50383.sh   # Examine exploit

# Nuclei CVE templates
nuclei -u https://target.com -t nuclei-templates/cves/ -severity critical,high

# Vulners NSE script
nmap --script vulners -sV target.com
```

### Attack Surface Summary Template

```markdown
## Attack Surface Summary — [Target] — [Date]

### External Exposure
- IP ranges: x.x.x.0/24
- Domains: target.com, *.target.com
- Open ports: 22, 80, 443, 8080

### Web Applications
| URL | Tech Stack | Auth | Notes |
|-----|-----------|------|-------|
| https://target.com | Nginx, React | Yes | — |
| https://api.target.com | Express 4.17 | JWT | CVE-2022-XXXX |

### Services
| IP | Port | Service | Version | CVEs |
|----|------|---------|---------|------|
| x.x.x.1 | 445 | SMB | SMBv1 | MS17-010 |
| x.x.x.2 | 22 | SSH | OpenSSH 7.2 | CVE-2016-6515 |

### High-Priority Attack Paths
1. Path: External → SMB → EternalBlue → Domain Controller
   Risk: Critical | Complexity: Low
2. Path: Web app → SQLi → DB access → Credential extraction
   Risk: High | Complexity: Medium

### Credentials Found (Passive)
- GitHub leak: admin@target.com : P@ssw0rd1 (unverified)
- Shodan: admin panel at x.x.x.5:8080 with default creds

### Recommended Next Steps
- [ ] Test EternalBlue on SMBv1 hosts
- [ ] Enumerate API endpoints for auth bypass
- [ ] Test identified credentials against VPN/OWA
```

---

## Tool Cheatsheet

| Category | Tool | Install |
|----------|------|---------|
| Subdomain enum | subfinder | `go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest` |
| Subdomain enum | amass | `go install github.com/owasp-amass/amass/v4/...@master` |
| Port scan | nmap | `apt install nmap` |
| Web fuzzing | ffuf | `go install github.com/ffuf/ffuf/v2@latest` |
| Vuln scan | nuclei | `go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest` |
| OSINT | theHarvester | `pip install theHarvester` |
| Shodan | shodan-cli | `pip install shodan` |
| Wayback | waybackurls | `go install github.com/tomnomnom/waybackurls@latest` |
| Takeover | subjack | `go install github.com/haccer/subjack@latest` |
| Tech detect | whatweb | `apt install whatweb` |

---

## Ethics & Scope

- Always obtain written authorization before active scanning
- Stay within defined scope — do NOT scan out-of-scope IPs or domains
- Passive OSINT is generally safe; active scanning is not
- Log all activities with timestamps for the final report
- Immediately notify client of critical findings (active breach, exposed PII)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…