Salta ai contenuti

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.

Installation

Prerequisites

RequirementDetails
Python 3.7+Core language requirement
pipPython package manager
Virtual environmentRecommended for isolation
Internet connectionRequired for API calls

Install from GitHub

git clone https://github.com/bhavsec/reconspider.git
cd reconspider
pip install -r requirements.txt

Install from PyPI

pip install reconspider

Verify Installation

python reconspider.py --version

Virtual Environment Setup

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt

API Configuration

Supported APIs

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

Add API Keys

# 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"

Configuration File (config.yaml)

# ~/.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

IP Address Scanning

Basic IP Reconnaissance

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

IP Scanning Examples

# 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

Information Retrieved

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

Domain & Website Scanning

Basic Domain Reconnaissance

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

Domain Scanning Examples

# 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

DNS Records Returned

Record TypeInformation
AIPv4 addresses
AAAAIPv6 addresses
CNAMECanonical names
MXMail exchange servers
TXTText records (SPF, DKIM, DMARC)
NSNameservers
SOAStart of authority
SRVService records

Certificate Data

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

Email Harvesting

Email Discovery

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 Harvesting Examples

# 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

Email Sources

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

Phone Number Lookup

Phone Reconnaissance

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

Phone Lookup Examples

# 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 Data Retrieved

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

Social Media Reconnaissance

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

Social Media Examples

# 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

Social Media Data

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

Shodan Integration

Shodan Queries

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

Shodan Search Examples

# 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

Shodan Filters

FilterDescription
port:8080Specific port
country:USSpecific country
city:BostonSpecific city
org:GoogleOrganization name
os:LinuxOperating system
product:ApacheSoftware product
before:2023-01-01Before date

Censys Integration

Censys Queries

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

Censys Search Examples

# 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\""

Output Formats

Save Results

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

Output Format Examples

# 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

JSON Output Structure

{
  "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": []
}

Honeypot Detection

Detect Honeypots

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

Honeypot Detection Examples

# 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

Honeypot Indicators

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

Automated Reconnaissance Workflows

Batch Processing

# 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

Complete Organization Reconnaissance

# Full org scan workflow
python reconspider.py -o "Acme Corp" \
  --emails \
  --phones \
  --social \
  --subdomains \
  -o org_report.json \
  --html

Threat Intelligence Pipeline

# Automated threat hunt
python reconspider.py -f suspicious_ips.txt \
  --shodan \
  --honeypot \
  --check-reputation \
  -o threat_report.html \
  --alerts

Scheduled Scanning

# 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

Advanced Techniques

Proxy and Anonymization

# 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

Custom Filtering

# 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

Data Correlation

# 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

Best Practices

  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.