OwlScan :: Open-Source OSINT Intelligence Framework
Project description
๐ฆ OwlScan // PHANTOM SIGNAL
โโโโโโโ โโโ โโโโโโ โโโโโโโโ โโโโโโโ โโโโโโ โโโโ โโโ
โโโโโโโโโโโโ โโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโ
โโโ โโโโโโ โโ โโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโ โโโ
โโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโ โโโโโโ
โโโโโโโ โโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโ โโโโโโ โโโโโ
>> OPEN-SOURCE OSINT INTELLIGENCE FRAMEWORK <<
"See everything. Leave no trace."
๐ฌ Demo
CLI โ Ghost Run in action
Web UI โ Shadow Grid (Dashboard)
Web UI โ Launch Ghost Run
Web UI โ 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
โก 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,
.envleaks - 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 |
| 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 |
| 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:
- Add API integrations โ Follow the plugin pattern above
- Improve detection signatures โ Expand
tech_detector.py - Bug reports โ GitHub Issues
- Documentation โ Improve the wiki
- 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
๐ค 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file owlscan-1.2.4.tar.gz.
File metadata
- Download URL: owlscan-1.2.4.tar.gz
- Upload date:
- Size: 137.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9679101b925cf9e64ff2029cd424bb71f547cdd52d55bb6c960cd19921706df
|
|
| MD5 |
c4449edd863bb42c42fef119c0ece185
|
|
| BLAKE2b-256 |
decb9a71e10e712f5308bd3be4af7eb68594d073e36f3cb8dc2f5fb0bb0c3bd6
|
File details
Details for the file owlscan-1.2.4-py3-none-any.whl.
File metadata
- Download URL: owlscan-1.2.4-py3-none-any.whl
- Upload date:
- Size: 149.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859e94ad3780d2fc002db9a595ef74d53c030986517a4e552dea9ec1e2d17345
|
|
| MD5 |
beb397a3218a7e61b4503a0e3f0f8be6
|
|
| BLAKE2b-256 |
4169dc4a8215108633b05e08fc43e8e1ec0d80bc58f0cbb3d0ea22fe0e295b52
|