Aller au contenu

ReconSpider

Advanced OSINT framework for scanning IP addresses, emails, websites, and organizations to find information from different sources. Aggregates data from Shodan, Censys, social media, DNS, and more.

RequirementDetails
Python 3.7+Core language requirement
pipPython package manager
Virtual environmentRecommended for isolation
Internet connectionRequired for API calls
git clone https://github.com/bhavsec/reconspider.git
cd reconspider
pip install -r requirements.txt
pip install reconspider
python reconspider.py --version
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
ServiceAPI Key RequiredPurpose
ShodanYesSearch internet-connected devices
CensysYesCertificate and host data
VirusTotalYesFile and URL reputation
Hunter.ioYesEmail discovery and verification
ClearbitYesCompany and person data
EmailHunterYesBusiness email finder
GitHubOptionalRepository and user data
Twitter/XOptionalSocial media reconnaissance
# Set environment variables
export SHODAN_API_KEY="your_shodan_key"
export CENSYS_API_ID="your_censys_id"
export CENSYS_API_SECRET="your_censys_secret"
export VIRUSTOTAL_API_KEY="your_vt_key"
export HUNTER_API_KEY="your_hunter_key"
# ~/.config/reconspider/config.yaml
api_keys:
  shodan: "your_shodan_key"
  censys_id: "your_censys_id"
  censys_secret: "your_censys_secret"
  virustotal: "your_vt_key"
  hunter: "your_hunter_key"
  clearbit: "your_clearbit_key"

timeout: 30
retry_attempts: 3
output_format: json  # json, csv, txt
CommandDescription
python reconspider.py -i <ip>Scan single IP address
python reconspider.py -i <ip> -s shodanQuery Shodan for IP
python reconspider.py -i <ip> -s censysQuery Censys for IP
python reconspider.py -i <ip> -s allAggregate all sources
# Basic IP scan
python reconspider.py -i 8.8.8.8

# Shodan scan only
python reconspider.py -i 93.184.216.34 -s shodan

# Censys scan with output file
python reconspider.py -i 93.184.216.34 -s censys -o ip_report.json

# Multiple IPs
python reconspider.py -i 8.8.8.8,1.1.1.1 -o dns_servers.json

# IP range scanning
python reconspider.py -i "192.168.1.0/24" -s shodan
IP Reconnaissance returns:
  Hostname and reverse DNS
  ISP and organization
  Geographic location (country, city)
  Hosting provider
  Open ports and services
  Running software versions
  SSL certificate details
  Domain history
  Blacklist status
CommandDescription
python reconspider.py -d <domain>Scan domain
python reconspider.py -d <domain> --dnsDNS enumeration
python reconspider.py -d <domain> --certsCertificate transparency scan
python reconspider.py -d <domain> --subdomainsSubdomain enumeration
# Full domain scan
python reconspider.py -d example.com

# DNS records only
python reconspider.py -d example.com --dns

# Certificate transparency logs
python reconspider.py -d example.com --certs

# Subdomain enumeration
python reconspider.py -d example.com --subdomains -o subdomains.txt

# Scan with Censys
python reconspider.py -d example.com -s censys

# Check for zone transfer vulnerability
python reconspider.py -d example.com --axfr
Record TypeInformation
AIPv4 addresses
AAAAIPv6 addresses
CNAMECanonical names
MXMail exchange servers
TXTText records (SPF, DKIM, DMARC)
NSNameservers
SOAStart of authority
SRVService records
Certificate Transparency returns:
  Issuer details
  Issue and expiration dates
  Domain names and SANs
  Subject and subject alt names
  Signature algorithm
  Public key information
  Revocation status
CommandDescription
python reconspider.py -e <email>Scan email address
python reconspider.py -d <domain> --emailsHarvest emails from domain
python reconspider.py -o <organization> --emailsFind org emails
# Email verification
python reconspider.py -e john@example.com

# Harvest emails from domain
python reconspider.py -d example.com --emails

# Company email discovery
python reconspider.py -o "Acme Corp" --emails -o results.csv

# Email pattern detection
python reconspider.py -d example.com --email-pattern firstname.lastname

# Multi-domain email search
python reconspider.py -d example.com,example.net --emails --hunter
SourceDetails
Hunter.ioBusiness email finder
RocketReachProfessional profiles
ClearbitCompany data and emails
LinkedInProfile emails (requires auth)
GitHubDeveloper emails
Public WHOISDomain registrant emails
Certificate logsEmail addresses in certs
CommandDescription
python reconspider.py --phone <number>Lookup phone number
python reconspider.py --phone <number> --reverseReverse phone lookup
python reconspider.py -d <domain> --phonesExtract phone numbers from domain
# Direct phone lookup
python reconspider.py --phone "+1-555-0123"

# Reverse lookup
python reconspider.py --phone "5550123" --reverse

# Extract from website
python reconspider.py -d example.com --phones

# Phone pattern search
python reconspider.py --phone-pattern "555-\d{4}" -d example.com
Phone reconnaissance returns:
  Carrier information
  Location (city, state)
  Phone type (mobile, landline, VOIP)
  Associated names
  Associated email addresses
  Call history patterns
  Linked social media accounts
CommandDescription
python reconspider.py --social <username>Search across platforms
python reconspider.py --twitter <handle>Twitter/X profile search
python reconspider.py --linkedin <profile>LinkedIn data extraction
python reconspider.py --github <username>GitHub profile analysis
# Cross-platform username search
python reconspider.py --social johndoe

# Twitter profile reconnaissance
python reconspider.py --twitter @johndoe

# GitHub profile analysis
python reconspider.py --github johndoe

# LinkedIn profile scraping
python reconspider.py --linkedin johndoe

# Instagram profile search
python reconspider.py --instagram johndoe --followers
PlatformInformation Retrieved
Twitter/XFollowers, tweets, location, bio, links
GitHubRepos, commits, followers, organizations
LinkedInProfile, connections, employment, skills
InstagramBio, followers, posts, locations, links
FacebookProfile info, friends, pages, activity
RedditPost history, karma, subreddits joined
CommandDescription
python reconspider.py -s shodan -i <ip>IP lookup via Shodan
python reconspider.py --shodan-query "webcam"Search for webcams
python reconspider.py --shodan-query "apache" --country USGeo-filtered search
# Find exposed webcams
python reconspider.py --shodan-query "webcam" --limit 50

# Search by country
python reconspider.py --shodan-query "mongodb" --country CN

# Port-specific search
python reconspider.py --shodan-query "port:3389" --limit 100

# Service version search
python reconspider.py --shodan-query "apache/2.4"

# Vulnerable software search
python reconspider.py --shodan-query "OpenSSL/1.0.1" --country US
FilterDescription
port:8080Specific port
country:USSpecific country
city:BostonSpecific city
org:GoogleOrganization name
os:LinuxOperating system
product:ApacheSoftware product
before:2023-01-01Before date
CommandDescription
python reconspider.py -s censys -i <ip>IP lookup via Censys
python reconspider.py --censys-query "ip:8.8.8.8"Direct IP query
python reconspider.py --censys-cert <domain>Certificate search
# Certificate search
python reconspider.py --censys-cert example.com

# IP with specific service
python reconspider.py -s censys -i 93.184.216.34

# Host lookup with details
python reconspider.py --censys-host 8.8.8.8

# Certificate issuer search
python reconspider.py --censys-query "issuer:\"Let's Encrypt\""
CommandDescription
python reconspider.py -i <ip> -o report.jsonJSON output
python reconspider.py -i <ip> -o report.csvCSV output
python reconspider.py -i <ip> -o report.txtText output
python reconspider.py -i <ip> --htmlHTML report
# JSON format (structured)
python reconspider.py -d example.com -o domain_report.json

# CSV format (spreadsheet)
python reconspider.py --emails -d example.com -o emails.csv

# HTML report (visual)
python reconspider.py -i 8.8.8.8 --html -o scan_report.html

# Pretty-printed output
python reconspider.py -d example.com -o results.txt --verbose
{
  "target": "example.com",
  "scan_date": "2026-05-01",
  "ip_info": {
    "addresses": ["93.184.216.34"],
    "hostname": "example.com",
    "organization": "EDGECAST",
    "location": {
      "country": "US",
      "city": "Los Angeles"
    }
  },
  "dns_records": {
    "A": ["93.184.216.34"],
    "MX": ["mail.example.com"]
  },
  "certificates": [],
  "emails": ["admin@example.com"],
  "vulnerabilities": []
}
CommandDescription
python reconspider.py -i <ip> --honeypotCheck if IP is honeypot
python reconspider.py --check-reputation <ip>Reputation check
python reconspider.py -d <domain> --verifyDomain verification
# Check single IP
python reconspider.py -i 192.168.1.1 --honeypot

# Batch check IPs
python reconspider.py --honeypot -f ip_list.txt

# Domain verification
python reconspider.py -d example.com --verify

# Reputation scoring
python reconspider.py -i 8.8.8.8 --reputation

# Verify email authenticity
python reconspider.py -e user@example.com --verify
High-risk indicators:
  Response from unusual geolocation
  Multiple open ports without services
  Suspicious SSL certificate
  Rapid response patterns
  Mismatched DNS records
  Known honeypot signatures
  No real legitimate traffic indicators
# Scan multiple IPs from file
python reconspider.py -f ip_list.txt -o batch_results.json

# Harvest emails from multiple domains
python reconspider.py -f domains.txt --emails -o emails.csv

# Scan IP ranges
python reconspider.py -i "10.0.0.0/24" -o range_scan.json
# Full org scan workflow
python reconspider.py -o "Acme Corp" \
  --emails \
  --phones \
  --social \
  --subdomains \
  -o org_report.json \
  --html
# Automated threat hunt
python reconspider.py -f suspicious_ips.txt \
  --shodan \
  --honeypot \
  --check-reputation \
  -o threat_report.html \
  --alerts
# Monitor domain for changes
python reconspider.py -d example.com \
  --certs \
  --subdomains \
  --schedule "daily" \
  -o monitoring.json

# Weekly organization scan
python reconspider.py -o "Target Org" \
  --emails \
  --phones \
  --schedule "weekly" \
  --notify email@example.com
# Route through proxy
python reconspider.py -i 8.8.8.8 --proxy "http://proxy:8080"

# Use SOCKS proxy
python reconspider.py -d example.com --socks-proxy "socks5://localhost:1080"

# User-Agent rotation
python reconspider.py --social johndoe --rotate-ua
# Exclude certain results
python reconspider.py -d example.com --exclude "*.internal"

# Filter by date range
python reconspider.py --certs example.com --from 2025-01-01 --to 2026-05-01

# Limit results
python reconspider.py --emails example.com --limit 100
# Find overlapping targets
python reconspider.py -f domains.txt --correlate

# Link data sources
python reconspider.py -e user@example.com --link-accounts

# Timeline analysis
python reconspider.py -d example.com --timeline
  1. Always obtain authorization — Only conduct reconnaissance on systems and organizations you own or have explicit written permission to test.

  2. Respect rate limits — Use delays between requests and observe API rate limits to avoid account suspension.

  3. Use VPN/Proxy — Route traffic through privacy-conscious services to protect your identity during reconnaissance.

  4. Validate API keys — Test API credentials before running large scans to catch configuration issues early.

  5. Document findings — Keep detailed records of scan dates, targets, findings, and methodology for reporting.

  6. Verify information — Cross-reference data from multiple sources (Shodan, Censys, DNS) to ensure accuracy.

  7. Filter false positives — Use honeypot detection and reputation checking to reduce noise in results.

  8. Secure configuration files — Keep config.yaml and API keys in restricted directories (mode 600) to prevent exposure.

  9. Start narrow, go broad — Begin with specific IP or domain, then expand to subdomains, emails, and social media.

  10. Use structured output — Export to JSON or CSV for further analysis, correlation, and reporting in tools like Elasticsearch or Tableau.