
Panoptic est un outil de test d'intrusion open source qui automatise le processus de recherche et de récupération de contenu pour les fichiers journaux et de configuration courants via des vulnérabilités de traversée de chemin.

Panoptic est un outil open source de test d'intrusion qui automatise la recherche et la récupération de fichiers journaux et de configuration courants via des vulnérabilités de traversée de chemin.

--concurrency)FUZZ
dans n'importe quelle valeur --header ou --data--base64)/etc/passwd pour les fichiers du
répertoire personnel, mysql-bin.index pour les fichiers binlog--output-format)--resume-file)--config)0600 réservées au
propriétaire sur POSIX et protection du lien symbolique du composant final là
où l'OS le prend en charge--update)httpx[socks], rich, rich-argparse et
tomli sur Python 3.10git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version
Dans l'invite de commandes Windows, activez avec .venv\Scripts\activate.bat ; dans PowerShell, utilisez .venv\Scripts\Activate.ps1. L'installation modifiable (editable) maintient Panoptic connecté à ce dépôt pour --update ; conservez donc le répertoire en place. N'exécutez pas pip install panoptic : ce nom PyPI appartient à un projet sans rapport.
Pour le développement :
python -m pip install -e ".[dev]"
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
--param file
panoptic --url "http://target/include.php" \
--data "file=test.txt&id=1" --param file
panoptic --url "http://target/view.php/test.txt" --path-based
panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
--base64 --auto
panoptic --url "http://target/page.php" \
--header "Cookie: lang=FUZZ" --auto
panoptic --url "http://target/api/load" \
--data '{"file":"FUZZ"}' --auto
panoptic --url "http://target/page.php" \
--header "X-Template: FUZZ" --auto
panoptic --url "http://target/view.php?file=test&type=txt" \
--param file --ext-param type
panoptic --url "http://target/filtered.php?file=test.txt" \
--prefix "....//....//....//....//"
panoptic --url "http://target/include.php?file=test.txt" \
--os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
--software PostgreSQL
panoptic --url "http://target/include.php?file=test.txt" \
--output-format json --output-file results.json \
--resume-file scan.checkpoint
panoptic --url "https://target/include.php?file=test.txt" \
--proxy "socks5://127.0.0.1:9050" --invalid-ssl
panoptic --list software
panoptic --list category
panoptic --list os
panoptic --url "http://target/include.php?file=test.txt" \
--auto --all-versions --concurrency 8
Placez FUZZ n'importe où dans les valeurs --header ou --data pour marquer le point d'injection. Panoptic remplace FUZZ par chaque chemin de fichier pendant l'analyse. Cela permet de tester des points d'injection que --param ne peut pas atteindre :
| Type d'injection | Exemple |
|---|---|
| Valeur de cookie | --header "Cookie: theme=FUZZ" |
| En-tête personnalisé | --header "X-Include: FUZZ" |
| Corps JSON | --data '{"template":"FUZZ"}' |
| Valeur imbriquée | --header "Cookie: sid=abc; lang=FUZZ" |
Lorsque FUZZ est présent, --param n'est pas requis.
Panoptic prend en charge les fichiers de configuration TOML pour les paramètres persistants :
panoptic --url "http://target/include.php?file=test.txt" \
--config ~/.config/panoptic/config.toml
Emplacement de configuration par défaut : ~/.config/panoptic/config.toml (chargé automatiquement lorsqu'il est présent, même sans --config).
[defaults]
# Any long option name (with dashes as underscores) is accepted here,
# including the target and output destinations.
url = "http://target/include.php?file=test.txt"
concurrency = 8
verbose = true
automatic = true
all_versions = true
output_format = "json"
output_file = "results.json"
log_file = "scan.log"
resume_file = "scan.checkpoint"
[proxy]
url = "socks5://127.0.0.1:9050"
[headers]
user_agent = "Mozilla/5.0"
cookie = "sid=foobar; auth=1"
values = ["X-Forwarded-For: 127.0.0.1"]
Priorité : arguments CLI > fichier de configuration > valeurs par défaut intégrées.
La table [defaults] accepte toute option d'analyse, pas seulement le réglage des performances. En particulier, vous pouvez conserver :