+--------------------------------------------------------------------------------------+
|8888888b. d8888 888b 888 .d88888b. 8888888b. 88888888888 8888888888 .d8888b. |
|888 Y88b d88888 8888b 888 d88P" "Y88b 888 Y88b 888 888 d88P Y88b|
|888 888 d88P888 88888b 888 888 888 888 888 888 888 Y88b. |
|888 d88P d88P 888 888Y88b 888 888 888 888 d88P 888 8888888 "Y888b. |
|8888888P" d88P 888 888 Y88b888 888 888 8888888P" 888 888 "Y88b.|
|888 d88P 888 888 Y88888 888 888 888 888 888 "888|
|888 d8888888888 888 Y8888 Y88b. .d88P 888 888 888 Y88b d88P|
|888 d88P 888 888 Y888 "Y88888P" 888 888 8888888888 "Y8888P" |
+--------------------------------------------------------------------------------------+
An all-seeing, automated OSINT analysis and reporting tool
by Alessandro Monetti (alessandromonetti@outlook.it)
- Project Overview
- Features
- Installation
- Configuration
- Usage
- Output & Workspaces
- Screenshots
- Contributing & Support
- License
Panoptes (named after Argos Panoptes, the all-seeing giant of Greek mythology) automates the collection and analysis of Open Source Intelligence (OSINT) data for specified domains. Panoptes provides streamlined collection from multiple OSINT services and generates comprehensive reports, reducing manual work in intelligence gathering.
- Automated data collection for one or more domains via CLI
- Integration with well-known OSINT APIs (Shodan, VirusTotal, HaveIBeenPwned, IntelX, and more)
- Composable, filterable workflow (choose which services to run)
- Incremental reporting to process only new findings
- Multi-language reports (English, Italian)
- Themed PDF and HTML output
- Manual report customization: Export to PDF from a manually edited HTML report (see
--export-from-html
) - Full workspace management (all data and reports organized by domain)
- Python 3.8+: Core language
- Poetry: Dependency management
- Rich & Click: CLI output
- Requests: HTTP requests to OSINT APIs
- BeatifulSoup: Scraping from HTML content
- Jinja2: Templating for HTML reports
- WeasyPrint: PDF generation from HTML
- Typeguard: Type checking for better code quality
- Selenium: Screenshots and web scraping
- TQDM: Progress bars file processing
Panoptes uses Poetry for package management.
- Python 3.8+
poetry
installed (Poetry installation guide)
git clone https://github.com/ilveron/panoptes.git
cd panoptes
poetry install
Panoptes requires several environment variables to authenticate with various OSINT APIs. Set these variables before running the application:
(replace xxx
with your actual API keys)
# OSINT Services
export INTELX="xxx" # IntelX (API tier)
export HAVEIBEENPWNED="xxx" # HaveIBeenPwned (free)
export C99="xxx" # C99 (paid)
export ABUSEIPDB="xxx" # AbuseIPDB (free)
export VIRUSTOTAL="xxx" # VirusTotal (free)
export SHODAN="xxx" # Shodan (Freelancer tier)
export DNSDUMPSTER="xxx" # DNSDumpster (free)
export MXTOOLBOX="xxx" # MXToolbox (free)
# Image Upload Services
export IMGBB="xxx" # ImgBB (free)
export THUMBSNAP="xxx" # Thumbsnap (free)
You may wish to add these to your shell profile for convenience.
Run Panoptes using Poetry:
poetry env activate
cd src/panoptes
poetry run python -m panoptes.cli <command> [OPTIONS]
(You can create a script or alias if you prefer a shorthand like poetry run panoptes
.)
-
List all available OSINT services and their descriptions.
poetry run python -m panoptes.cli services
-
Gather OSINT data for one or more domains.
poetry run python -m panoptes.cli collect <domain1> [<domain2> ...] [OPTIONS]
Options:
--filter, -f
: Comma-separated list of services to run. Useservices
endpoint to view all.--mail-domain, -m
: (optional) Custom mail domain for data collection.--website-url, -w
: (optional) Website URL (defaults tohttps://<domain>
orhttps://www.<domain>
).
-
Generate (or update) an OSINT report for a collected domain.
poetry run python -m panoptes.cli report <domain> [OPTIONS]
Options:
--incremental
: Only process and report on new data since the last run.--language
: Output language for the report (en/it). Default: en.--export-from-html
: Export the report to PDF from the (possibly manually edited) HTML file found in the domain's workspace directory. Use this option if you wish to customize the HTML report before generating the final PDF.--theme
: Report styling (iei
orunical
). Default:iei
.
-
On first run, a
panoptes
directory is created in your home folder:~/panoptes/
-
For each new domain, a subdirectory (named after the domain) is created inside this folder.
-
Data collected is stored as
JSON
. Reports (in HTML and PDF) are generated in the same workspace. -
Each new OSINT collection is merged with previous data for full history/context.
~/panoptes/
├── example.com/
│ ├── <service>/
│ │ └── <data>.json
│ ├── report.json
│ ├── report-example-en.html
│ ├── report-example-en.pdf
│ ├── report-example-it.html
│ └── report-example-it.pdf
└── anotherdomain.org/
├── ...
Here are some screenshots from the application:
Here are some excerpts from the generated reports:
(TO BE ADDED)
This project is licensed under the MIT License
- see the LICENSE file for details.