francescostabile/numasec/passive-osint
- community
Checking that the SKILL.md file is still in the repository.
Passive reconnaissance against a target without sending traffic that could alert it. Load when the engagement starts, when you only know a domain/email/username, when scope is unclear, or when you need historical surface area. Covers subdomain enumeration (crt.sh, subfinder), historical archives (wayback), DNS posture (dnsrecon), email & breach surface (theharvester, holehe), and username reuse (sherlock). All commands are free and key-less.
Install
npx vskill@latest install francescostabile/numasec/passive-osintSKILL.md
Passive OSINT kit
Rule of engagement. Passive OSINT means zero direct traffic to the target's infrastructure. Every command here either hits public archives (crt.sh, wayback, PassiveDNS), third-party directories (theharvester, sherlock, holehe), or local DNS (which any resolver anywhere in the world is allowed to answer). Never run active scanners from this skill.
Output contract. Every finding or artifact is a candidate observation. After running a command and triaging the output, write the interesting rows to core/observation/store via the normal mechanism (or, if you are the user, copy into an operation's observations.jsonl). Always include severity and confidence.
When to load
| Situation | Why | |
|---|---|---|
| First turn of a new pentest / bughunt / osint operation | Always start here — cheapest recon, highest signal | |
Scope says *.example.com and you don't know the subdomains | crt.sh + subfinder resolves "how big is the attack surface?" | |
| Target is an org name, not an asset | theharvester + sherlock + holehe tell you humans to recon | |
| Re-engagement after months | wayback shows what changed |
Toolbox
1. crt.sh — Certificate transparency (HTTP, key-less)
Certificate Transparency logs publish every TLS cert issued. Querying them reveals subdomains without asking the target's DNS.
Interpretation: every unique hostname is a candidate subdomain. Feed into dnsrecon or host to check DNS resolution.
2. subfinder — Aggregator for passive subdomain sources
subfinder queries ~30 public data sources (VirusTotal, AlienVault OTX, Shodan's free endpoints, HackerTarget, etc.) with no keys required for the built-in defaults.
Pairing: cat subs.txt | httpx -silent (active, only after scope allows) to check which resolve & serve HTTP.
3. wayback — Historical URL surface
The Internet Archive indexes old content. Find deleted endpoints, forgotten admin panels, staging URLs.
Interpretation: any URL pointing to /admin, /.git/, /config.yaml, backups, or legacy APIs is an observation candidate (severity medium, confidence low until confirmed).
4. dnsrecon — DNS posture mapping
Severity hints. SPF ?all or missing → spoofing risk (low-medium). Exposed AXFR → high. Wildcard A record → recon noise; lower confidence on brute-force results.
5. theHarvester — Emails, names, hosts from public sources
Feed: emails into holehe, usernames into sherlock, hosts into the subdomain list.
6. holehe — Email-to-service existence
For every email harvested, check which services that email is registered on.
Ethics. Holehe doesn't confirm credentials — only that an address is known. Use for social-engineering scope mapping.
7. sherlock — Username reuse
Output: every hit is a public profile, a potential pretext channel, or a leak root.
Standard passive-recon opening
When starting a new engagement with only example.com, run in order:
crt.sh→ raw subdomain list.subfinder→ augment with other passive sources.- Deduplicate →
candidates.txt. waybackoverexample.com/*→ historical URLs.dnsrecon -t std→ DNS posture for the apex.theHarvesterfor emails/names.- For each interesting email:
holehe. For each username:sherlock. - Summarize into 3-7 observations with severity/confidence.
- Present the operator a prioritized list of "what we would do if active recon were in scope".
What this skill does NOT do
- No active scanning, no port scans, no HTTP fuzzing — those live in
skills/surface-recon/(if loaded) or thescannertool. - No credential checks (not HIBP, not breach lookups that require a key).
- No DNS zone writes. Read only.
Escalation
After passive OSINT completes, the natural next steps are (all scope-gated):
- Active DNS resolution + HTTP enumeration →
scannertool (productnative-crawl,native-portscan). - Directory fuzzing on the confirmed alive hosts →
scannertool (productffuf). - Vulnerability scanning →
scannertool (productnuclei). - Deeper application-layer work →
pentestagent viatasktool.
Security
- Security scanPassed, 91 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/numasec/skills/passive-osint/SKILL.md
Popularity
- Repository stars
- 405
- Repository forks
- 48
- 7-day trend score
- 30
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 26 Jun 2026, 3 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/francescostabile/numasec/passive-osint)