| name | spiderfoot |
| description | Auth/lab ref: Automated OSINT platform with 200+ modules for target profiling: DNS, email, username, IP, ASN, breach data, dark web, social media, threat intel. |
| license | MIT |
| compatibility | Python 3.7+; Linux/macOS/Windows. |
| metadata | {"author":"AeonDave","version":"1.0"} |
SpiderFoot
Automated OSINT platform — 200+ modules, correlates all data types around a target.
Quick Start
git clone https://github.com/smicallef/spiderfoot
cd spiderfoot
pip install -r requirements.txt
python3 sf.py -s target.com -t INTERNET_NAME -o json -q
python3 sf.py -l 127.0.0.1:5001
Target Types (-t)
| Type | Description | Example |
|---|
INTERNET_NAME | Hostname / domain | target.com |
IP_ADDRESS | IPv4 address | 1.2.3.4 |
EMAILADDR | Email address | user@target.com |
USERNAME | Social username | johndoe |
PHONE_NUMBER | Phone number | +14151234567 |
HUMAN_NAME | Person's name | "John Doe" |
NETBLOCK_OWNER | ASN or CIDR | AS12345 |
BGP_AS_OWNER | ASN number | 12345 |
URL_FORM | URL to scan | https://target.com/login |
CLI Usage
python3 sf.py -s target.com -t INTERNET_NAME -o json -q > results.json
python3 sf.py -s ceo@target.com -t EMAILADDR -o json -q
python3 sf.py -s target.com -t INTERNET_NAME -m sfp_dnsresolve,sfp_sublist3r,sfp_crtsh -o json -q
python3 sf.py -M
python3 sf.py -M | grep -i "passive"
Key CLI Flags
| Flag | Purpose |
|---|
-s <target> | Target value |
-t <type> | Target type |
-m <modules> | Specific modules (comma-separated) |
-o json/csv/tab | Output format |
-q | Quiet (no progress) |
-l <host:port> | Start web UI |
-M | List all modules |
--timeout <sec> | Global timeout |
Module Categories
python3 sf.py -M | awk '{print $1}' | sort -u
sfp_dnsresolve
sfp_crtsh
sfp_sublist3r
sfp_shodan
sfp_virustotal
sfp_hunter
sfp_emailharvest
sfp_haveibeenpwned
sfp_linkedin
sfp_twitter
sfp_github
sfp_pastebin
sfp_darkweb
sfp_threatintel
sfp_whois
Web UI Workflow
python3 sf.py -l 127.0.0.1:5001
- Browse to
http://127.0.0.1:5001
- New Scan → enter target + type
- Select scan profile: Passive, Investigate, Footprint, All
- Run → watch live graph of discovered entities
- Browse results by data type: emails, IPs, subdomains, leaked credentials, social profiles
- Export: JSON/CSV for downstream use
Scan Profiles
| Profile | Modules | Use |
|---|
| Passive | ~50 | No direct target contact |
| Investigate | ~100 | Mixed passive + active |
| Footprint | ~150 | Full external footprint |
| All | 200+ | Everything (loud) |
API Key Configuration
High-value API keys:
Hunter.io → email harvest
Shodan → port/service data
VirusTotal → malware/domain intel
HaveIBeenPwned → breach lookup
SecurityTrails → DNS history
IntelX → dark web / leaks
Parse JSON Output
import json
with open("results.json") as f:
results = json.load(f)
from collections import defaultdict
by_type = defaultdict(list)
for item in results:
by_type[item["type"]].append(item["data"])
for email in set(by_type.get("EMAILADDR", [])):
print(email)
for sub in set(by_type.get("INTERNET_NAME", [])):
print(sub)
Resources
| File | When to load |
|---|
references/modules.md | Full module list with descriptions, API requirements, and recommended scan configurations |