Skip to content
Security
Skill

/osint-scanner

Maps a target's public footprint — infrastructure, tech stack, leaked credentials, and people — using third-party data so no packet reaches the target. Use when scoping an engagement, planning a phishing pretext, or doing reconnaissance where the target must not detect it, and

From plugin
skills
15257 skills

Claude Code

$ npx -y skills add zero-lab-ai/skills --skill osint-scanner --agent claude-code

SKILL.md

osint-scanner.SKILL.md
name: osint-scanner
description: "Maps a target's public footprint — infrastructure, tech stack, leaked credentials, and people — using third-party data so no packet reaches the target. Use when scoping an engagement, planning a phishing pretext, or doing reconnaissance where the target must not detect it, and when deciding whether a recon action actually touches the target or not."
allowed-tools: Read Grep Glob Bash

OSINT scanner

The stealthiest scan is the one you never send. OSINT reaches a target's footprint by asking third parties who already looked — so done correctly it generates **zero packets to the target** and nothing to detect.

**The single discipline that makes this red-team-safe: know, for every action, whether it touches the target.** A query to Shodan reads a scan Shodan already ran. Pointing a tool at the target's own web host or authoritative nameserver is contact, and contact is what a defender sees. The line between them is the skill; blur it and OSINT stops being passive.

When to Use

  • Scoping an engagement, planning a phishing pretext, or doing reconnaissance where the target must not detect it, and when deciding whether a recon action actually touches the target or not.
  • Use only within explicit authorization and the stated rules of engagement.

When NOT to Use

  • Do not treat this skill as permission to access, test, or change a target.
  • Do not convert missing evidence into a clean result or a stronger claim.

Classify contact before you run anything

uv run {baseDir}/scripts/check_passive.py plan.json

Takes a plan of intended actions and reports each one's contact level — `none` (third party only), `target` (reaches the target's infrastructure), or `unknown` — and **fails a passive plan that contains any `target` or `unknown` action.** An unexamined "maybe" is treated as contact, because on a red team op an unexamined maybe is how you get caught. See `references/contact-levels.md`.

What you can learn without touching the target

Infrastructure and DNS

Map servers, subdomains and cloud without a packet to their firewall.

| Tool | Gets you | Contact | |---|---|---| | `amass` (passive) | subdomains from hundreds of passive sources | none | | `crt.sh` | every TLS cert ever issued — exposes dev/staging subdomains | none | | Shodan / Censys | open ports, software versions, exposures from global scans | none | | `dig` TXT/MX (public resolver) | mail provider and security stack (Proofpoint, Mimecast, Google) | none |

> ⚠ `amass` and `theHarvester` also have **active** modes that resolve and > brute-force against the target. Those are contact. Declare the mode.

Defensive stack

Know what you are up against before planning anything.

  • **BuiltWith / Wappalyzer** — frameworks, CMS, trackers (programmatic Wappalyzer

fetches the pages — that is contact; the catalog lookup is not).

  • **SPF / DMARC records** — reveal the mail-security vendor, so you learn their

phishing defenses before writing a pretext.

Credentials and exposure

The initial foothold that needs no exploit.

  • **DeHashed** — historical breach corpus; search the domain for reused passwords.
  • **TruffleHog** — scans the target's *public* repos for leaked keys and secrets

in commit history (the repo is public; you are reading what they published).

  • **Google dorking** — `site:target.com filetype:pdf "confidential"`.

People — the phishing/vishing surface

  • **theHarvester** (passive sources) — emails, names, subdomains from search engines.
  • **Hunter.io** — corporate email format, to turn a name into an address.

This is red-team recon, not a pentest sweep

If you want completeness and do not care about noise, you want the `network-recon` skill (penetration-testing). This skill assumes the opposite: the target must not know you looked. Thoroughness that generates detectable contact is a loss here, not a win.

Rationalizations to reject

| Thought | Reality | |---|---| | "It's just recon, it's harmless." | Recon that touches the target is detectable and attributable. Contact is the thing to avoid, not the payload. | | "`dig` is passive." | `dig` against the target's authoritative nameserver is contact. Only a public-resolver cache read is not. State which. | | "amass is a passive tool." | Only in passive mode. Active/brute resolves against the target. Declare the mode or the script fails the plan. | | "I'll run a quick httpx to confirm the hosts are live." | That is the first packet you send the target, and it undoes the point of everything passive that came before. | | "The tool isn't in the list, probably fine." | Unknown is treated as contact and fails a passive plan. Classify it first. | | "More thorough is better." | On a red team op, more contact is worse. The quiet result that no one noticed beats the complete one that tripped an alert. | | "TruffleHog touches their repo." | It reads a repo they published publicly. Reading public data is not contact with their production infrastructure. |

References

  • [Contact levels](references/contact-levels.md) — what `none` / `target` / `unknown` mean and how the checker decides
  • [Sources](references/sources.md) — the aggregators, what each exposes, and its contact level
Read more
@zero-lab-ai
Ships withskills

Portable, evidence-bound security skills for authorized defensive assessment, penetration testing, red teaming, detection engineering, purple teaming, and engagement operations. The collection contains 56 skills in 10 installable plugins from zero-lab.ai.

Stars on GitHub

Momentum

stars in total
152
Star history of zero-lab-ai/skills on GitHub, a chart by star-history.com

Other skills on skills.

agent-runtime-validation

agent-runtime-validati…

Plans and evaluates bounded runtime tests of AI agents, tools, memory, hooks, approvals, and scope enforcement. Use when static…

@zero-lab-ai@zero-lab-aiInstall Skill
agent-surface-audit

agent-surface-audit

Reviews an MCP server's tool surface for tool poisoning, over-broad parameters, missing descriptions, and privilege escalation…

@zero-lab-ai@zero-lab-aiInstall Skill
cloud-attack-path

cloud-attack-path

Maps cloud identity and authorization paths across AWS, Azure, GCP, and hybrid trust boundaries, separating proven access from…

@zero-lab-ai@zero-lab-aiInstall Skill

More skills from other plugins.

api-security

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…

@zhaoxuya520@zhaoxuya520Install Skill
nemoclaw-user-guide

nemoclaw-user-guide

Find official NemoClaw documentation for installation, configuration, operation, or troubleshooting. Also handles requested docs…

@nvidia@nvidiaInstall Skill

Questions about osint-scanner.

Which coding agents can use osint-scanner?
osint-scanner installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.