
チェーンされた 事前認証リモートコード実行 の脆弱性に対する PaperCut の曝露を確認・理解するための 防御用 ツールキットです:
チェーン時: インターネット → 認証なし → 設定操作 → 安全でないクラスローディング → 任意の Java 実行 → ホストコマンド実行。
| ファイル | 目的 |
|---|---|
papercut-exposure-checker.py | 詳細な防御的検出: バージョンとパッチの比較、Web 曝露、IOC ペイロードスキャン、設定異常スキャン、ドロップされた .class ペイロードスキャン |
papercut-cve-prevention.md | CWE-306 と安全でないクラスローディングの両方について、脆弱なコードパターンと安全なコードパターンを示すリファレンス |
スキャナーはバージョン確認を超えて動作します。実際に観測された 攻撃アーティファクト を検出します (Huntress / PaperCut アドバイザリ):
< 24.1.10、< 25.0.13、< 26.0.5) と比較します。--log) — server.log 内の攻撃者アーティファクトを検出します:
jdbc:derby:memory:pwn (ガジェットチェーンで使用される Derby メモリ DB)No suitable driver found for jdbc:no:xdatabase error looking up cardIDwhoami & ver、whoami & ver & tasklist)--config) — 攻撃者によって変更された外部ユーザールックアップ設定にフラグを立てます:
jdbc:h2、)# PaperCut サーバーの Web 曝露を確認 (非破壊的)
python3 papercut-exposure-checker.py --url https://print.server:9191
# ビルドバージョンをパッチ適用済みビルドと評価
python3 papercut-exposure-checker.py --version 25.0.11.75758
# 公開された IOC (ペイロードアーティファクト) のサーバーログをスキャン
python3 papercut-exposure-checker.py --log /usr/local/papercut/server/logs/server.log
# 攻撃者によって変更されたユーザールックアップ設定の設定ファイルをスキャン
python3 papercut-exposure-checker.py --config /usr/local/papercut/server/server.properties
# ドロップされた .class ペイロードの lib ディレクトリをスキャン
python3 papercut-exposure-checker.py --lib /usr/local/papercut/server/lib
# 完全な詳細スキャン + HTML/JSON レポート
python3 papercut-exposure-checker.py \
--url https://print.server:9191 \
--version 25.0.11.75758 \
--log /usr/local/papercut/server/logs/server.log \
--config /usr/local/papercut/server/server.properties \
--lib /usr/local/papercut/server/lib \
--html report.html --json report.json
pc-app.exe アクティビティ (侵害後の活動)server.log の欠落、切り詰め、または削除No suitable driver found、特定の CardID ルックアップエラー注記: IOC がないことは、サーバーがクリーンであることを証明するものではありません。
このツールキットは 防御専用 です。何も悪用せず、テストを許可されたサーバーでのみ 使用してください。予防リファレンスは、学習と強化のための 正しい/安全なコードパターン を示しています — 攻撃のためではありません。
本番環境で使用する前に、ベンダーのアドバイザリから 緊急パッチリリース 2 の正確なビルド番号 を確認し、スキャナー内の PATCHED_BUILDS を更新してください (プレースホルダー値が使用されています)。
jdbc:derby:memoryINIT/CALL を含む値 (Derby→H2 ガジェットのヒント)--lib) — server/lib 内の攻撃者によってドロップされた .class ファイルを検出します (観測例: Udydn.class、Moo97.class)。