Skip to main content

OwlScan :: Open-Source OSINT Intelligence Framework

Project description

๐Ÿฆ‰ OwlScan // PHANTOM SIGNAL

  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—    โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•—   โ–ˆโ–ˆโ•—
 โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘    โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘
 โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ•— โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘
 โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘
 โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ•šโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
  โ•šโ•โ•โ•โ•โ•โ•  โ•šโ•โ•โ•โ•šโ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•šโ•โ•  โ•šโ•โ•โ•šโ•โ•  โ•šโ•โ•โ•โ•
         >> OPEN-SOURCE OSINT INTELLIGENCE FRAMEWORK <<
                 "See everything. Leave no trace."

Python 3.10+ License: MIT Platform GitHub Stars Open Issues CI Project Site Changelog


๐ŸŽฌ Demo

CLI โ€” Ghost Run in action

CLI scan demo

Web UI โ€” Shadow Grid (Dashboard)

Dashboard

Web UI โ€” Launch Ghost Run

Launch Ghost Run

Web UI โ€” Scan Results

Scan results

Web UI โ€” Theme Options

OwlScan ships with two built-in UI themes, selectable via the โ˜€/๐ŸŒ™ toggle in the top navigation bar. Your preference is saved automatically and persists across sessions.

Theme Description
Dark (default) Cyberpunk aesthetic โ€” deep charcoal background, neon green/cyan/purple accents, matrix rain canvas, glowing owl logo
Light "Phantom Dawn" โ€” soft blue-grey background, muted accent palette, clean black ASCII logo, matrix rain disabled

Asciinema recording: Watch the full interactive demo on asciinema.org, or play it locally:

pip install asciinema
asciinema play docs/assets/demo.cast

asciicast


โšก What is OwlScan?

OwlScan is a community-powered, open-source OSINT intelligence framework built for security researchers, penetration testers, investigators, and enthusiasts. It combines web scraping, network reconnaissance, people intelligence aggregation, and threat analysis into a single cohesive platform.

LEGAL DISCLAIMER: OwlScan is for authorized security research, OSINT investigations, and educational purposes only. Only scan targets you have explicit permission to test. You are solely responsible for compliance with all applicable laws. The developers assume NO liability for misuse.


๐Ÿ”ฅ Features

๐Ÿ•ท Web Reconnaissance

  • Scrapy-powered deep web crawler with JavaScript rendering support
  • Technology detection โ€” fingerprints 50+ technologies (CMS, frameworks, CDNs, WAFs)
  • API endpoint hunter โ€” discovers REST APIs, GraphQL, Swagger docs, admin panels, .env leaks
  • Security header analysis with graded posture scoring
  • Email, phone, link, and comment harvesting

๐ŸŒ Network Intelligence

  • Async port scanner โ€” 65,535 ports, banner grabbing, service detection
  • DNS recon โ€” A/AAAA/MX/NS/TXT/SOA/CAA, zone transfer attempts, subdomain brute-force
  • Certificate transparency via crt.sh โ€” uncover subdomains via SSL history
  • SPF/DMARC analysis โ€” identify email spoofing vulnerabilities
  • Reverse DNS and co-hosted domain discovery

๐Ÿ”ฌ Intelligence APIs (30+ Integrations)

Category APIs
Network Scanning Shodan, Censys, ZoomEye, BinaryEdge
Threat Intelligence VirusTotal, AbuseIPDB, GreyNoise, AlienVault OTX
Email Hunter.io, HaveIBeenPwned, HaveIBeenPwned
Domain/Web SecurityTrails, URLScan.io, WhoisXML, Local WHOIS
Geolocation IPInfo.io
People Search Pipl, FullContact, WhitePages, Spokeo, Clearbit
Social GitHub, Twitter/X
Custom Bring your own API via plugin architecture

๐Ÿ‘ค Shadow Profiler (People Intelligence)

LexisNexis-style identity aggregation from public records:

  • Cross-correlates data from multiple people-search APIs
  • Discovers emails, phones, addresses, relatives, employers
  • Breach data correlation via HIBP and other sources
  • Social media profile linking
  • Shadow Score โ€” digital exposure quantification (0-100)
  • Social graph building and timeline reconstruction

๐Ÿ“ฆ Export Formats

Format Description
JSON Raw machine-readable data
CSV Spreadsheet-compatible
HTML Self-contained cyberpunk-styled report
PDF Professional dossier via ReportLab
XML Structured data
XLSX Excel workbook
STIX 2.1 Threat intelligence sharing format
Markdown Human-readable report

All formats support ZIP compression and AES-256-GCM encryption.

๐ŸŒ‘ Ghost Mode

  • Low-and-slow scanning profiles to minimize detection
  • Identity rotation via user-agent spoofing
  • Tor proxy integration (Docker compose profile: ghost)
  • Configurable request jitter and delays

๐Ÿ”” Additional Features

  • Real-time live feed โ€” WebSocket-powered terminal during scans
  • Shadow Score โ€” composite risk/exposure scoring
  • Scheduled Phantoms โ€” recurring automated ghost runs
  • API health monitor โ€” dashboard showing configured APIs and rate limits
  • Light/Dark theme โ€” toggle between cyberpunk Dark mode and "Phantom Dawn" Light mode via the โ˜€/๐ŸŒ™ button; preference persisted in localStorage
  • Full REST API โ€” integrate OwlScan into your own toolchain
  • CLI interface โ€” owlscan scan, owlscan profile, owlscan export
  • Docker โ€” single-command deployment

๐Ÿš€ Quick Start

Option 1: Docker (Recommended)

git clone https://github.com/owlscan/owlscan
cd owlscan
docker-compose up -d
# Open http://localhost:5000

Option 2: Manual Installation

# Python 3.10+ required
git clone https://github.com/owlscan/owlscan
cd owlscan
pip install -e .
owlscan init
owlscan web --open-browser

Option 3: CLI Scan

# Quick probe
owlscan scan example.com --profile quick

# Full spectrum with export
owlscan scan 192.168.1.1 --type ip_recon --format html --output ./reports

# People intelligence
owlscan profile --email target@company.com --first-name John --last-name Doe

โš™๏ธ Configuration

Environment Variables (Recommended for API Keys)

export SHODAN_API_KEY="your-shodan-key"
export VIRUSTOTAL_API_KEY="your-vt-key"
export HUNTER_API_KEY="your-hunter-key"
export HIBP_API_KEY="your-hibp-key"
export GREYNOISE_API_KEY="your-greynoise-key"
export IPINFO_TOKEN="your-ipinfo-token"
export ABUSEIPDB_API_KEY="your-abuseipdb-key"
export ALIENVAULT_API_KEY="your-otx-key"
export GITHUB_TOKEN="your-github-token"
export SECURITYTRAILS_API_KEY="your-st-key"
# See config/owlscan.yaml for full list

Config File

Copy config/owlscan.yaml to ~/.owlscan/config.yaml and customize.


๐Ÿ”Œ Adding Custom APIs

OwlScan uses a plugin architecture. Adding a new intelligence source takes ~20 lines:

# owlscan/intel/apis/my_api.py
from owlscan.intel.apis.base import BaseIntelAPI, register_api, APICategory, APITier

@register_api
class MyAPI(BaseIntelAPI):
    NAME = "myapi"
    DESCRIPTION = "My custom intelligence source"
    REQUIRES_KEY = True
    TIER = APITier.FREE_LIMITED
    CATEGORIES = [APICategory.NETWORK]
    BASE_URL = "https://api.myservice.com/v1"
    SIGN_UP_URL = "https://myservice.com/signup"

    async def search(self, query: str, **kwargs):
        data = await self._get(
            f"{self.BASE_URL}/search",
            params={"q": query, "key": self._api_key}
        )
        return [self._wrap_result("my_result", data)]

Then import it in owlscan/intel/orchestrator.py and it auto-registers.


๐Ÿ— Architecture

owlscan/
โ”œโ”€โ”€ core/               โ€” Engine, config, database, models
โ”œโ”€โ”€ scrapers/           โ€” Scrapy crawler, tech detector, port scanner, API hunter, DNS recon
โ”œโ”€โ”€ intel/
โ”‚   โ”œโ”€โ”€ apis/           โ€” 30+ API integrations (plugin architecture)
โ”‚   โ””โ”€โ”€ people/         โ€” People intelligence aggregation
โ”œโ”€โ”€ exporters/          โ€” JSON/CSV/PDF/HTML/XML/XLSX/STIX + crypto wrapper
โ””โ”€โ”€ web/
    โ”œโ”€โ”€ routes/         โ€” Flask blueprints (dashboard, scans, intel, settings, export, REST API)
    โ”œโ”€โ”€ templates/      โ€” Cyberpunk Jinja2 templates
    โ””โ”€โ”€ static/         โ€” CSS (cyberpunk), JS (matrix, terminal, app)

๐Ÿ›ก REST API

# Create a scan
curl -X POST http://localhost:5000/api/v1/scans \
  -H "Content-Type: application/json" \
  -d '{"target": "example.com", "scan_type": "web_recon"}'

# Get results
curl http://localhost:5000/api/v1/scans/{scan_id}

# List all APIs
curl http://localhost:5000/api/v1/apis

# Health check
curl http://localhost:5000/api/v1/health

๐Ÿค Contributing

OwlScan thrives on community contributions. Ways to help:

  1. Add API integrations โ€” Follow the plugin pattern above
  2. Improve detection signatures โ€” Expand tech_detector.py
  3. Bug reports โ€” GitHub Issues
  4. Documentation โ€” Improve the wiki
  5. Translations โ€” Internationalize the UI

See CONTRIBUTING.md for guidelines. Please also review our Code of Conduct and Security Policy.


๐Ÿ“– Documentation

  • Usage Guide โ€” full walkthroughs, usage scenarios, CLI reference, and per-platform troubleshooting (Linux / macOS / Windows / Docker)

โš ๏ธ Legal & Ethics

OwlScan is a dual-use tool. Operators are responsible for:

  • Obtaining explicit authorization before scanning any system
  • Complying with applicable laws (CFAA, GDPR, CCPA, ECPA, local laws)
  • Respecting privacy and data protection regulations
  • Not using this tool for harassment, stalking, or unauthorized surveillance

The developers provide this software as-is with no warranty. Misuse is your responsibility.


๐Ÿท Topics

osint security python hacking cybersecurity reconnaissance recon penetration-testing ethical-hacking bug-bounty information-gathering threat-intelligence security-tools network-scanner dns-recon infosec flask security-research footprinting automation


๐Ÿค Community

Document Description
Code of Conduct Community standards and expectations
Contributing Guidelines How to contribute to OwlScan
Security Policy Reporting vulnerabilities responsibly
License MIT License terms

๐Ÿ“œ License

MIT License โ€” see LICENSE


Built with questionable amounts of caffeine. "The night sees all. The owl forgets nothing." Some ghosts leave no trace. This one left commits. โ€” Claude

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

owlscan-1.2.0.tar.gz (73.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

owlscan-1.2.0-py3-none-any.whl (80.3 kB view details)

Uploaded Python 3

File details

Details for the file owlscan-1.2.0.tar.gz.

File metadata

  • Download URL: owlscan-1.2.0.tar.gz
  • Upload date:
  • Size: 73.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for owlscan-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c43705873a95ae38a8884ec9ae793336771c01754c3e1e17b2ebfdf388e3876e
MD5 c64ad4e8d040d3a5b4d7614d6af213f0
BLAKE2b-256 ecd8f5333690e067a35aa9e0f8f0cfebd9e9d51f5fc5bf93aec93b31f8cfd65c

See more details on using hashes here.

File details

Details for the file owlscan-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: owlscan-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 80.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for owlscan-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 487527e5b45c320afa94b6805ee105595693c90048f0d9a5b34227322b977717
MD5 adee1424d1f0ba2a7e5cdca1fae44e5e
BLAKE2b-256 af2f712ffd140eb63d7bb9d9ee1c378adb41a9697c01474e39a958e840e4fb57

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page