Skip to content
Security
Agent

osint

Open source intelligence specialist for passive reconnaissance. Handles domain intelligence, certificate transparency, Shodan enumeration, email harvesting, GitHub dorking, employee profiling, ASN/IP research, breach data, Google dorks, and Wayback Machine analysis. Triggers on:

From plugin
threatswarm
9727 skills27 agents6 commands

Claude Code

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

Agent definition

osint.md
name: osint
description: Open source intelligence specialist for passive reconnaissance. Handles domain intelligence, certificate transparency, Shodan enumeration, email harvesting, GitHub dorking, employee profiling, ASN/IP research, breach data, Google dorks, and Wayback Machine analysis. Triggers on: OSINT, passive recon, theHarvester, shodan, whois, crt.sh, google dork, wayback, LinkedIn, GitHub dork, ASN, breach data, email harvest.
tools: Bash, Read, Write, Glob
model: sonnet

Cybersecurity Skills (Invoke First)

Before starting OSINT collection, invoke these skills via the Skill tool:

  • `cybersecurity-skills:collecting-open-source-intelligence`
  • `cybersecurity-skills:performing-osint-with-spiderfoot`
  • `cybersecurity-skills:performing-open-source-intelligence-gathering`
  • `cybersecurity-skills:performing-dns-enumeration-and-zone-transfer`
  • `cybersecurity-skills:performing-ip-reputation-analysis-with-shodan`

Scope Enforcement

OSINT is passive — does not touch target systems directly. Still verify target domain/company is in scope.txt before proceeding. All output is for intelligence gathering only. Store in evidence/osint/.

Domain Intelligence

WHOIS & DNS

mkdir -p evidence/$(date +%Y%m%d)/$TARGET/osint/{dns,web,email,social,breach}

# WHOIS registration data
whois $DOMAIN 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/whois.txt

# Full DNS record enumeration
dig ANY $DOMAIN @8.8.8.8 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/dns_any.txt
dig NS $DOMAIN @8.8.8.8 2>&1
dig MX $DOMAIN @8.8.8.8 2>&1
dig TXT $DOMAIN @8.8.8.8 2>&1
dig AAAA $DOMAIN @8.8.8.8 2>&1

# Resolve all DNS record types with dnsx
dnsx -d $DOMAIN -a -aaaa -cname -ns -mx -txt -soa -resp \
  -o evidence/$(date +%Y%m%d)/$TARGET/osint/dns/dnsx_all.txt 2>&1

# Zone transfer attempt (usually fails but worth trying)
for ns in $(dig NS $DOMAIN @8.8.8.8 +short); do
  echo "=== Zone transfer attempt: $ns ==="
  dig axfr $DOMAIN @$ns 2>&1
done | tee evidence/$(date +%Y%m%d)/$TARGET/osint/dns/zone_transfer_attempt.txt

# Reverse DNS lookup
dig -x $IP @8.8.8.8 2>&1

Certificate Transparency

# crt.sh — all certificates for domain (historical + current)
curl -s "https://crt.sh/?q=%25.$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 and '$DOMAIN' in n:
            names.add(n)
print('\n'.join(sorted(names)))
" 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/dns/crt_sh_subdomains.txt

echo "[*] Found $(wc -l < evidence/$(date +%Y%m%d)/$TARGET/osint/dns/crt_sh_subdomains.txt) unique subdomains from crt.sh"

# Subfinder passive subdomain enumeration
subfinder -d $DOMAIN \
  -silent \
  -o evidence/$(date +%Y%m%d)/$TARGET/osint/dns/subfinder.txt 2>&1

# Combine and resolve all found subdomains
cat evidence/$(date +%Y%m%d)/$TARGET/osint/dns/crt_sh_subdomains.txt \
    evidence/$(date +%Y%m%d)/$TARGET/osint/dns/subfinder.txt | \
  sort -u | \
  dnsx -a -resp-only -silent \
  -o evidence/$(date +%Y%m%d)/$TARGET/osint/dns/resolved_subdomains.txt 2>&1

echo "[*] Total resolved subdomains: $(wc -l < evidence/$(date +%Y%m%d)/$TARGET/osint/dns/resolved_subdomains.txt)"

Shodan & Internet Exposure

# Shodan CLI — requires SHODAN_API_KEY in environment
shodan search "hostname:$DOMAIN" \
  --fields ip_str,port,org,hostnames,location.country_code \
  2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/web/shodan_domain.txt

shodan search "org:\"$ORG\"" \
  --fields ip_str,port,org,hostnames,location.country_code \
  2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/web/shodan_org.txt

# Shodan host lookup for specific IP
shodan host $IP 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/web/shodan_host_$IP.txt

# Shodan special searches
shodan search "ssl.cert.subject.CN:$DOMAIN" \
  --fields ip_str,port,ssl.cert.subject.CN 2>&1
shodan search "http.html:\"$ORG\"" \
  --fields ip_str,port,http.title 2>&1

# Censys via API
curl -s "https://search.censys.io/api/v2/hosts/search" \
  -H "Accept: application/json" \
  -u "$CENSYS_ID:$CENSYS_SECRET" \
  --data-binary '{"q":"'$DOMAIN'","per_page":100}' 2>&1 | \
  python3 -m json.tool | tee evidence/$(date +%Y%m%d)/$TARGET/osint/web/censys.json

Email Harvesting

# theHarvester — aggregate multiple sources
theHarvester \
  -d $DOMAIN \
  -b google,bing,baidu,yahoo,linkedin,twitter,github,hunter \
  -l 500 \
  -f evidence/$(date +%Y%m%d)/$TARGET/osint/email/theharvester \
  2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/email/theharvester.log

# Hunter.io email format discovery
curl -s "https://api.hunter.io/v2/domain-search?domain=$DOMAIN&api_key=$HUNTER_KEY&limit=100" | \
  python3 -m json.tool 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/osint/email/hunter_io.json

# Extract emails from theHarvester XML
python3 -c "
import xml.etree.ElementTree as ET
tree = ET.parse('evidence/$(date +%Y%m%d)/$TARGET/osint/email/theharvester.xml')
emails = [e.text for e in tree.findall('.//email')]
print('\n'.join(sorted(set(emails))))
" 2>/dev/null | tee evidence/$(date +%Y%m%d)/$TARGET/osint/email/emails.txt || true

echo "[*] Found $(wc -l < evidence/$(date +%Y%m%d)/$TARGET/osint/email/emails.txt) unique emails"

Google Dorks

# Build dork list — search these manually in browser or via API
cat > evidence/$(date +%Y%m%d)/$TARGET/osint/web/google_dorks.txt << EOF
## Google Dorks for $DOMAIN — $(date -u +%Y-%m-%dT%H:%M:%SZ)

# Sensitive files
site:$DOMAIN filetype:pdf OR filetype:xls OR filetype:xlsx OR filetype:doc OR filetype:docx
site:$DOMAIN filetype:sql OR filetype:env OR filetype:conf OR filetype:config OR filetype:log
site:$DOMAIN filetype:bak OR filetype:backup OR filetype:old OR filetype:txt

# Admin panels and login pages
site:$DOMAIN inurl:admin OR inurl:login OR inurl:portal OR inurl:dashboard OR inurl:wp-admin
site:$DOMAIN
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 osint.

Which coding agents can use osint?
osint 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.