Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Panoptic — Panopticは、パストラバーサル(Path Traversal)の脆弱性を利用して、一般的なログファイルや設定ファイルのコンテンツの検索・取得プロセスを自動化する、オープンソースのペネトレーションテストツールです。 | Kitploit
ツール/GitHubGitHub/lightos/panoptic
偵察脆弱性スキャナーウェブアプリケーション悪用情報収集ペネトレーションテスト
GitHublightos/panoptic

Panoptic

Panopticは、パストラバーサル(Path Traversal)の脆弱性を利用して、一般的なログファイルや設定ファイルのコンテンツの検索・取得プロセスを自動化する、オープンソースのペネトレーションテストツールです。

リポジトリを見る
3257451ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Panoptic

Panopticロゴ

License: MIT Python Versions Ruff mypy GitHub last commit CodeRabbit Pull Request Reviews

Panopticは、パストラバーサル(パス横断)脆弱性を通じて一般的なログファイルや設定ファイルの探索・取得を自動化する、オープンソースのペネトレーションテストツールです。

Panopticデモ

機能

  • 設定可能なワーカープールによる非同期同時スキャン (--concurrency)
  • パラメータベース、パスベース、POST、Cookie、ヘッダー、JSON ボディインジェクションによる一般的なログ・設定ファイルの自動発見
  • 任意のインジェクションポイントを指定するFUZZマーカー — FUZZ を --header または --data の値に配置します
  • ファイルパスをデコードするエンドポイント向けのBase64エンコード (--base64)
  • 以降のスキャンを制限するオプション付きの自動OS検出
  • 誤検知を減らすためのステータスコードフィルタリングを備えた ヒューリスティックなレスポンス比較
  • 動的なケースインジェクション — /etc/passwd を解析してホームディレクトリの ファイルを、mysql-bin.index を解析してbinlogファイルを特定
  • 複数の出力形式: テキスト (rich)、JSON、CSV (--output-format)
  • 長時間実行スキャンの再開/チェックポイント対応 (--resume-file)
  • 永続的な設定のためのTOML設定ファイル(--config)
  • 複数のトラバーサルバイパス技術: プレフィックス、ポストフィックス、 乗数、スラッシュ置換、二重エンコード
  • 検証付きのHTTP/HTTPSおよびSOCKS5プロキシサポート
  • ランダムまたはカスタムのUser-Agent、Cookie、ヘッダーサポート
  • バナー、ログ、機械可読出力(数値・ブール値のJSONボディ値を含む)における 認証情報のマスキング
  • POSIXでは所有者のみの 0600 パーミッション、OSが対応する場合は 最終パス要素のシンボリックリンク保護により機密アーティファクトを堅牢化

必要条件

  • Python 3.10+
  • Git
  • 依存関係: Python 3.10では httpx[socks]、rich、rich-argparse、 tomli

インストール

root@kitploit:~
git clone https://github.com/lightos/Panoptic.git
cd Panoptic
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
panoptic --version

Windowsのコマンドプロンプトでは .venv\Scripts\activate.bat でアクティベートし、PowerShellでは .venv\Scripts\Activate.ps1 を使用します。editableインストールにより、Panopticは --update のためにこのチェックアウトに接続されたままになるため、ディレクトリはそのままにしておいてください。pip install panoptic を実行しないでください: そのPyPI名は無関係のプロジェクトのものです。

開発用:

root@kitploit:~
python -m pip install -e ".[dev]"

使用方法

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"

使用例

基本的なパラメータベースLFI

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt"
panoptic --url "http://target/include.php?file=test.txt&id=1" \
  --param file

POSTデータインジェクション

root@kitploit:~
panoptic --url "http://target/include.php" \
  --data "file=test.txt&id=1" --param file

パスベースLFI

root@kitploit:~
panoptic --url "http://target/view.php/test.txt" --path-based

Base64エンコードされたパラメータ

root@kitploit:~
panoptic --url "http://target/load.php?file=dGVzdC50eHQ=" \
  --base64 --auto

Cookieインジェクション(FUZZマーカー)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "Cookie: lang=FUZZ" --auto

JSONボディインジェクション(FUZZマーカー)

root@kitploit:~
panoptic --url "http://target/api/load" \
  --data '{"file":"FUZZ"}' --auto

カスタムヘッダーインジェクション(FUZZマーカー)

root@kitploit:~
panoptic --url "http://target/page.php" \
  --header "X-Template: FUZZ" --auto

拡張子パラメータ

root@kitploit:~
panoptic --url "http://target/view.php?file=test&type=txt" \
  --param file --ext-param type

プレフィックスによるフィルターバイパス

root@kitploit:~
panoptic --url "http://target/filtered.php?file=test.txt" \
  --prefix "....//....//....//....//"

フィルタリングされたスキャン

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --os "*NIX" --type conf
panoptic --url "http://target/include.php?file=test.txt" \
  --software PostgreSQL

再開機能付きJSON出力

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --output-format json --output-file results.json \
  --resume-file scan.checkpoint

SSLエラーを無視するプロキシ

root@kitploit:~
panoptic --url "https://target/include.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050" --invalid-ssl

利用可能なフィルターの一覧表示

root@kitploit:~
panoptic --list software
panoptic --list category
panoptic --list os

包括的スキャン

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --auto --all-versions --concurrency 8

FUZZマーカー

--header または --data の値のどこかに FUZZ を配置して、インジェクションポイントを指定します。Panopticはスキャン中に FUZZ を各ファイルパスに置き換えます。これにより、--param では到達できないインジェクションポイントをテストできます:

インジェクションタイプ例
Cookie値--header "Cookie: theme=FUZZ"
カスタムヘッダー--header "X-Include: FUZZ"
JSONボディ

FUZZ が存在する場合、--param は不要です。

設定

Panopticは永続的な設定のためのTOML設定ファイルをサポートしています:

root@kitploit:~
panoptic --url "http://target/include.php?file=test.txt" \
  --config ~/.config/panoptic/config.toml

デフォルトの設定場所: ~/.config/panoptic/config.toml(存在する場合は --config を指定しなくても自動的に読み込まれます)。

root@kitploit:~
[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"]

優先順位: CLI引数 > 設定ファイル > 組み込みデフォルト。

設定でサポートされるターゲットおよび出力オプション

[defaults] テーブルはパフォーマンス調整だけでなく、あらゆるスキャンオプションを受け入れます。具体的には以下を永続化できます:

  • url — デフォルトのターゲット(実行ごとに --url で上書き可能)
  • output_format、output_file — 機械可読な結果の出力先
  • log_file — コンソール出力をファイルにミラーリング
  • resume_file — 再開可能なスキャンのチェックポイント位置

Panopticが書き込む機密アーティファクト(ログファイル、結果/リスト出力ファイル、--write-files で保存されたファイル)は、POSIXでは所有者のみの 0600 パーミッションに強制されます。O_NOFOLLOW を公開しているプラットフォームでは、最終パス要素に既存のシンボリックリンクがある場合も原子的に拒否されます。O_NOFOLLOW がないプラットフォームでは、Panopticはオープン前のシンボリックリンク/ジャンクション確認をベストエフォートで行いますが、この確認ではレース状態を排除できません。WindowsのモードビットはNTFS ACLを設定しないため、アーティファクトに機密データが含まれる可能性がある場合は、適切に制限されたディレクトリを使用してください。

コマンドラインでの設定ブール値の上書き

すべてのブールフラグには --no- の対応物があり、設定ファイルで true に設定された値を、ファイルを編集せずに1回の実行だけオフにできます:

root@kitploit:~
# config.toml sets verbose = true and automatic = true
panoptic --url "http://target/x.php?file=test.txt" --no-verbose --no-auto

省略されたブールフラグは(false にデフォルト設定されるのではなく)未設定のままになるため、フラグまたはその --no- 形式を明示的に指定しない限り、設定値が使用されます。

プロキシ

HTTP(S)またはSOCKSプロキシ経由でトラフィックをルーティングします:

root@kitploit:~
panoptic --url "https://target/x.php?file=test.txt" \
  --proxy "socks5://127.0.0.1:9050"
  • 対応スキーム: http://、https://、socks5://、socks5h:// (socks5h はプロキシ経由でDNSを解決します — TorやローカルDNSリークの 回避に有用です)。SOCKS4は基盤となるHTTPクライアントではサポートされて いません。スキームとホストはスキャン開始前に検証されます。
  • SOCKSサポートはデフォルトでインストールされる httpx[socks] エクストラに由来します。
  • デフォルトでは、Panopticは標準の HTTP_PROXY / HTTPS_PROXY / NO_PROXY 環境変数を尊重します。--ignore-proxy を指定するとこれらを バイパスして直接接続します(環境で設定されたプロキシも無効になります)。
  • 独自のCAを持つプロキシを介してHTTPSをインターセプトする場合は、 --invalid-ssl と組み合わせてください。これにより証明書検証が無効になり、 信頼できないネットワークでは安全ではありません。

バージョン展開(--all-versions)

同梱されているパスの一部はバージョンテンプレートです(例: [JBOSS] と記述されたJBossリリースディレクトリ)。デフォルトでは、リテラルな [JBOSS] パスは実際のファイルに一致し得ないため、これらのテンプレート行はスキップされます。--all-versions を渡すと、各テンプレートが同梱のバージョンリストに対して展開され、既知のバージョンごとに1つの具体的なパスが追加されます — はるかに大規模ですが、より徹底的なスキャンになります:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" --auto --all-versions

レスポンス比較

Panopticは、ターゲットが制御する Content-Length ヘッダーだけからパスを分類することはありません。完全に正規化されたボディを無効パスのベースラインと比較します。安価な類似度の上限計算でボディが異なることを既に証明できる場合にのみ完全な比較を回避し、曖昧なレスポンスでは正確な比率を使用して、ボディの順序変更による偽陰性を回避します。

再開 / チェックポイント

--resume-file PATH は完了したケースを記録し、中断されたスキャンを中断箇所から続行できるようにします:

root@kitploit:~
panoptic --url "http://target/x.php?file=test.txt" \
  --resume-file scan.checkpoint
# ... interrupt with Ctrl-C, then re-run the same command to resume

チェックポイントは、完了したケースIDと、スキャン定義(URL、インジェクションパラメータ、検出オプション、ヘッダー、Cookie、User-Agent、正確なケースセット)のSHA-256 フィンガープリントのみを保存します。認証情報、ヘッダー、URLを平文で保存することは決してありません。

再開時、フィンガープリントが再計算され比較されます。スキャンの意味を変えるものが異なる場合(ターゲット、パラメータ、ヘッダー、Cookie、フィルターセット、または --all-versions の切り替えなど)は、チェックポイントは警告付きで拒否され、スキャンは新規に開始されるため、古いチェックポイントが異なるスキャンのケースを暗黙的にスキップすることは決してありません。レガシーなベアリスト形式のチェックポイントは警告付きで受け入れられ、現在のスキャンに存在するケースIDに制限されます。その古い形式にはフィンガープリントがないため、ユーザーは新しい形式に置き換える必要があります。失敗した(ネットワークエラーの)リクエストは意図的にチェックポイントされないため、再開時に再試行されます。

バージョンと更新

root@kitploit:~
panoptic --version   # print the installed version and exit
panoptic --update    # fast-forward update from the official GitHub repo

--update は、origin リモートがHTTPSまたはSSHを使用し、公式アップストリームと一致するgitチェックアウトからのみ機能します(プル前に検証され、安全でない、または改ざんされたリモート設定に耐性を持たせています)。明示的なアップストリームの main 参照から、チェックアウトされた main ブランチをfast-forwardします。チェックアウト以外のインストールは、公式のGitHubアーカイブから安全に更新できます:

root@kitploit:~
python -m pip install --upgrade https://github.com/lightos/Panoptic/archive/refs/heads/main.zip

チェックアウトから実行すると、バナーに現在の短いgitリビジョンも表示されます。

終了コード

Panopticはスクリプト化できるように、従来のプロセス終了コードを使用します:

  • 0 — 成功: スキャン(または --list / --update)が完了しました。再試行を 使い切った個々のリクエストは警告され、再開スキャンの対象として残りますが、 それ以外は成功した実行を失敗させることはありません。
  • 1 — 無効な使用法: 引数の欠落または無効、あるいはインジェクション可能な パラメータが見つかりませんでした。
  • 2 — 運用上の失敗: 接続できない、一致するテストケースがない、キューに入った すべてのリクエストが失敗した、またはワーカー、チェックポイント、出力書き込み、 設定が失敗しました。
  • 130 — ユーザーによる中断(Ctrl-C / SIGINT)。

コントリビューション

コントリビューションを歓迎します! GitHub でイシューまたはプルリクエストを開いてください。

テストベッド

安全で再現可能なエンドツーエンドのテストには、Panoptic LFI Testbed を参照してください。これは、Panopticがサポートするインジェクション手法とトラバーサル変換をカバーする、意図的に脆弱なエンドポイントを提供します。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。

ツールをダウンロード
  • リモートURL検証付きの自己更新(--update)
  • --data '{"template":"FUZZ"}'
    ネストされた値--header "Cookie: sid=abc; lang=FUZZ"