Skip to main content
skill CX Codex

conducting-external-reconnaissance-with-osint — Claude Code skill

Builds a target profile from open sources: DNS, certificate logs, search, social media, repos and breach data. For the passive phase of a pentest.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill conducting-external-reconnaissance-with-osint -a claude-code
Open on GitHub

What conducting-external-reconnaissance-with-osint does

The skill walks the agent through five stages of external recon. First, domain and DNS enumeration: reverse WHOIS, passive subdomain discovery with amass and subfinder, crt.sh queries, SPF, DKIM and DMARC checks, plus a zone transfer attempt. Then infrastructure: Shodan, Censys, cloud bucket hunting, WAF and CDN detection, archived pages from the Wayback Machine.

Stage three covers people and email: theHarvester, address format lookup via hunter.io, LinkedIn profiles, org charts, job postings and employee social media. Stage four hunts leaks: haveibeenpwned.com, paste sites, secret scanning in GitHub and GitLab with trufflehog and gitleaks, document metadata via exiftool, Google dorks. Stage five profiles the stack with whatweb, sslyze and testssl.sh.

It only runs against a target you have written authorization for. Amass, theHarvester, Shodan CLI, Recon-ng and SpiderFoot must be installed, and API keys for Shodan, Censys, SecurityTrails, Hunter.io, VirusTotal and GitHub are needed — without them several sources return nothing. The author also states that stalking or surveillance of individuals falls outside an authorized engagement, and recommends routing queries through a VPN or Tor.

What it helps with

  • enumerate a target's subdomains from passive sources
  • find the employee email format for a phishing campaign
  • check whether API keys leaked into public repositories
  • pull usernames and software versions out of document metadata
  • identify the WAF and CDN hiding the origin server

Example prompts for the agent

  • run external OSINT recon on target.com, start with DNS and subdomains
  • collect employee emails and the org chart for target.com
  • search the org's public repos for leaked secrets

How to install conducting-external-reconnaissance-with-osint

1Skills CLI (Vercel)

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill conducting-external-reconnaissance-with-osint -a claude-code

2Manually: put the files in place

~/.claude/skills/conducting-external-reconnaissance-with-osint/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/conducting-external-reconnaissance-with-osint/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about conducting-external-reconnaissance-with-osint

How do I install conducting-external-reconnaissance-with-osint in Claude?

Run npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill conducting-external-reconnaissance-with-osint -a claude-code. The skill lands in ~/.claude/skills/conducting-external-reconnaissance-with-osint/SKILL.md.

What does conducting-external-reconnaissance-with-osint do?

It runs passive OSINT gathering and folds the results into a target profile: domains, DNS, infrastructure, personnel, leaks and the technology stack.

What do I need before running it?

Written authorization for the recon, the Amass, theHarvester, Shodan CLI, Recon-ng and SpiderFoot tools, and API keys for Shodan, Censys, SecurityTrails, Hunter.io, VirusTotal and GitHub.

Source text

SKILL.md · Apache-2.0
---
name: conducting-external-reconnaissance-with-osint
description: Conduct external recon using OSINT techniques to map an organization's external attack surface without touching target systems, gathering DNS records, certificate transparency logs, search results, social media, code repositories, and breach databases into a target profile. Use for the passive info-gathering phase of a pentest, external footprinting, or collecting employee/email intel for a social engineering campaign.
domain: cybersecurity
subdomain: penetration-testing
tags:
- OSINT
- reconnaissance
- attack-surface
- footprinting
- passive-recon
version: 1.0.0
author: mahipal
license: Apache-2.0
nist_csf:
- ID.RA-01
- ID.RA-06
- GV.OV-02
- DE.AE-07
mitre_attack:
- T1595
- T1592
- T1589
- T1590
---
# Conducting External Reconnaissance with OSINT

## When to Use

- Performing the initial reconnaissance phase of a penetration test to gather intelligence before active scanning
- Mapping an organization's external attack surface to identify unknown or shadow IT assets
- Collecting employee information, email formats, and organizational structure for social engineering campaigns
- Identifying exposed credentials, leaked data, or sensitive documents published on the internet
- Scoping the breadth of an organization's digital footprint prior to a red team engagement

**Do not use** for stalking, harassment, or unauthorized surveillance of individuals. OSINT gathering must be conducted within the scope of an authorized engagement and comply with applicable privacy laws (GDPR, CCPA).

## Prerequisites

- Written authorization to perform reconnaissance against the target organization
- Dedicated research workstation with a VPN or Tor for anonymized queries when required
- OSINT framework tools installed: Amass, theHarvester, Shodan CLI, Recon-ng, SpiderFoot
- API keys for Shodan, Censys, SecurityTrails, Hunter.io, VirusTotal, and GitHub for enhanced results
- Disposable email accounts for accessing services that require registration during research

## Workflow

### Step 1: Domain and DNS Enumeration

Enumerate all domains, subdomains, and DNS records associated with the target:

- **Root domain identification**: Start with the primary domain and identify all related domains through reverse WHOIS lookups on registrant name, email, and organization using `whoxy.com` or `domaintools.com`
- **Subdomain enumeration**: Run multiple tools for comprehensive coverage:
  - `amass enum -passive -d target.com -o amass_subs.txt` for passive subdomain discovery from 40+ data sources
  - `subfinder -d target.com -all -o subfinder_subs.txt` for fast passive enumeration
  - `crt.sh` certificate transparency log queries: `curl -s "https://crt.sh/?q=%25.target.com&output=json" | jq -r '.[].name_value' | sort -u`
- **DNS record analysis**: Query for all record types: `dig target.com ANY`, check for SPF, DKIM, DMARC records that reveal email infrastructure, and enumerate MX records to identify email providers
- **Zone transfer attempt**: `dig axfr @ns1.target.com target.com` to check for misconfigured DNS servers
- **Consolidate results**: Merge, deduplicate, and resolve all discovered subdomains to IP addresses. Map IP addresses to ASN and hosting providers.

### Step 2: Infrastructure and Service Discovery

Identify internet-facing infrastructure without directly scanning target systems:

- **Shodan**: `shodan search "ssl.cert.subject.cn:target.com"` to find all internet-facing services with TLS certificates for the target domain. Also search by organization name and IP ranges.
- **Censys**: Search for target's IP ranges and TLS certificates to identify services, technologies, and potential vulnerabilities indexed from internet-wide scanning
- **Cloud asset discovery**: Check for S3 buckets (`target-com`, `target-backup`, `target-dev`), Azure Blob storage (`target.blob.core.windows.net`), and GCP storage using tools like `cloud_enum`
- **WAF and CDN identification**: Use `wafw00f target.com` to identify web application firewalls and CDN providers that may mask the origin server IP
- **Historical data**: Use Wayback Machine (`web.archive.org`) to find removed pages, old application versions, and forgotten endpoints

### Step 3: Email and Personnel Intelligence

Gather employee information and email addresses for social engineering preparation:

- **Email harvesting**: `theHarvester -d target.com -b all -f harvest_results.html` to collect emails from search engines, LinkedIn, and data sources
- **Email format identification**: Use `hunter.io` to determine the email format (first.last, flast, firstl) and verify deliverability
- **LinkedIn reconnaissance**: Identify employees by department, particularly IT administrators, security team members, and executives. Note technologies mentioned in job postings and employee profiles.
- **Organizational chart**: Build an org chart from LinkedIn data to understand reporting structures, identify key personnel, and map departments
- **Social media analysis**: Review employee social media profiles for information about internal tools, technologies, office locations, badge photos, and security practices
- **Job postings**: Analyze current and historical job postings on the company career page and job boards for technology stack details, tools, and infrastructure information

### Step 4: Credential and Data Leak Analysis

Search for exposed credentials and sensitive data:

- **Breach databases**: Check `haveibeenpwned.com` API for breached email addresses associated with the target domain
- **Paste sites**: Search Pastebin, GitHub Gists, and similar paste sites for leaked credentials, configuration files, or internal documents
- **Code repositories**: Search GitHub, GitLab, and Bitbucket for:
  - `org:target "password"`, `org:target "api_key"`, `org:target "secret"`
  - Use `trufflehog` or `gitleaks` for automated secret scanning across the target's public repositories
- **Document metadata**: Download publicly available documents (PDF, DOCX, XLSX) from the target website and extract metadata using `exiftool` to reveal internal usernames, software versions, printer names, and file paths
- **Google dorking**: Use targeted search operators:
  - `site:target.com filetype:pdf` for public documents
  - `site:target.com inurl:admin` for admin panels
  - `site:target.com "index of /"` for directory listings
  - `site:pastebin.com "target.com"` for paste site mentions

### Step 5: Technology Stack Profiling

Identify the technologies, frameworks, and services used by the target:

- **Web technology fingerprinting**: Use `whatweb target.com` or Wappalyzer browser extension to identify CMS, frameworks, JavaScript libraries, analytics, and server software
- **SSL/TLS analysis**: `sslyze target.com` or `testssl.sh target.com` to identify cipher suites, protocol versions, certificate details, and cryptographic weaknesses
- **JavaScript analysis**: Download and review JavaScript files for framework identifiers, API endpoints, internal hostnames, and version strings
- **DNS-based service identification**: Review TXT records for service providers (e.g., `v=spf1 include:_spf.google.com` indicates Google Workspace, `MS=msXXXXXX` indicates Microsoft 365)
- **Mobile app analysis**: Download the target's mobile applications from app stores and analyze with `apktool` (Android) or `frida` for hardcoded URLs, API endpoints, and embedded credentials

## Key Concepts

| Term | Definition |
|------|------------|
| **OSINT** | Open Source Intelligence; intelligence collected from publicly available sources including websites, social media, public records, and government data |
| **Passive Reconnaissance** | Information gathering without directly interacting with target systems, leaving no footprint in target logs |
| **Active Reconnaissance** | Information gathering that involves direct interaction with target systems (scanning, probing) and may be logged |
| **Certificate Transparency** | Public logs of TLS certificates issued by certificate authorities, queryable to discover subdomains and infrastructure |
| **Attack Surface** | The sum of all points where an unauthorized user can attempt to enter or extract data from an environment |
| **Google Dorking** | Using advanced Google search operators to find sensitive information indexed by search engines that was not intended to be public |
| **Shadow IT** | Technology systems and services deployed by employees or departments without the knowledge or approval of the IT department |

## Tools & Systems

- **Amass (OWASP)**: Comprehensive subdomain enumeration tool that combines passive sources, DNS brute-forcing, and certificate transparency log analysis
- **Shodan**: Internet-wide scanning database that indexes services, banners, and metadata for internet-connected devices, searchable by IP, domain, or organization
- **theHarvester**: OSINT tool for gathering emails, subdomains, hosts, employee names, and open ports from public sources
- **SpiderFoot**: Automated OSINT collection platform that queries 200+ data sources and correlates findings into a unified graph
- **Recon-ng**: Modular web reconnaissance framework with a database backend for organizing and cross-referencing discovered intelligence

## Common Scenarios

### Scenario: Pre-Engagement Reconnaissance for a Red Team Exercise

**Context**: A technology company has contracted a red team assessment. Before active testing begins, the team conducts passive OSINT to map the attack surface and identify potential entry points. The target is a SaaS company with 500 employees and a primary domain of techcorp.io.

**Approach**:
1. Enumerate 147 subdomains via Amass and crt.sh, including staging.techcorp.io, jenkins.techcorp.io, and vpn.techcorp.io
2. Shodan reveals a forgotten Elasticsearch instance on port 9200 with no authentication exposed to the internet
3. theHarvester collects 89 employee email addresses, revealing the format [email protected]
4. GitHub search discovers a former developer's public repository containing a `.env` file with AWS access keys
5. LinkedIn analysis reveals the company uses Okta for SSO, Jira for project management, and AWS for hosting
6. Google dorking finds a directory listing on docs.techcorp.io exposing internal architecture diagrams
7. Compile all intelligence into a reconnaissance report that feeds directly into the threat modeling and attack planning phases

**Pitfalls**:
- Relying on a single subdomain enumeration tool and missing assets found by other tools using different data sources
- Failing to check cloud storage services (S3, Azure Blob, GCP) for publicly accessible buckets
- Not searching for credentials in public code repositories, which frequently yield immediate access
- Conducting active scanning (port scans, vulnerability scans) during what should be a passive-only phase

## Output Format

```
## External Reconnaissance Report - TechCorp.io

### Attack Surface Summary
- **Domains discovered**: 3 (techcorp.io, techcorp.com, techcorpapp.com)
- **Subdomains enumerated**: 147 unique subdomains across all domains
- **Unique IP addresses**: 34 IPs mapped across AWS us-east-1 and us-west-2
- **Email addresses collected**: 89 valid corporate email addresses
- **Exposed services**: 12 internet-facing services identified via Shodan/Censys

### Critical Findings

**1. Unauthenticated Elasticsearch Instance**
- Host: 52.xx.xx.xx:9200 (elastic.techcorp.io)
- Indexed data: Application logs containing user session tokens and PII
- Source: Shodan search "ssl.cert.subject.cn:techcorp.io"

**2. AWS Credentials in Public GitHub Repository**
- Repository: github.com/former-dev/techcorp-scripts
- File: .env containing AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
- Status: Keys appear active (not tested - out of scope for passive recon)

**3. Directory Listing Exposing Internal Documents**
- URL: https://docs.techcorp.io/internal/
- Contents: Architecture diagrams, network topology, runbooks
- Source: Google dork "site:techcorp.io intitle:index.of"

### Recommendations
1. Immediately rotate the exposed AWS credentials and audit CloudTrail logs
2. Restrict Elasticsearch access to internal networks or add authentication
3. Disable directory listings on docs.techcorp.io and audit all web servers
4. Implement GitHub secret scanning across all organization repositories
```

© mahipal · Apache-2.0 · mukul975/Anthropic-Cybersecurity-Skills

Similar skills

Everything for Security →

From the same set89

exploiting-sql-injection-with-sqlmap Walks the agent through a sqlmap run: locate an injectable parameter, confirm it, pull data during an authorized pentest. CX Codex +1 322installs analyzing-memory-forensics-with-lime-and-volatility Acquires Linux memory images with the LiME kernel module and extracts artifacts via Volatility 3 during security incident investigations. CX Codex +1 321installs bypassing-authentication-with-forced-browsing A pentest skill that enumerates URLs to find unprotected pages, APIs and admin panels, then checks where authentication isn't enforced. CX Codex +1 321installs hardening-docker-containers-for-production This skill hardens Dockerfiles, images, and container runtime settings against CIS Docker Benchmark v1.8.0. Use it before production deployment or during an image audit. CX Codex +1 320installs analyzing-persistence-mechanisms-in-linux Scans Linux hosts for persistence in cron, systemd, LD_PRELOAD, and shell profiles, correlating findings with auditd logs. CX Codex +1 319installs analyzing-pdf-malware-with-pdfid Walks an agent through a suspicious PDF's structure to find embedded JavaScript, shellcode and exploits before anyone opens the file. CX Codex +1 317installs analyzing-threat-intelligence-feeds Turns commercial and open-source threat intel feeds into actionable indicators, adversary tactics and campaign context, normalized to STIX 2.1. CX Codex +1 316installs analyzing-threat-actor-ttps-with-mitre-attack Maps threat actor behavior and observed IOCs to MITRE ATT&CK, creates ATT&CK Navigator layers, and helps assess detection gaps. CX Codex +1 312installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor