Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Log4JShell-Bytecode-Detector — 用于 Log4JShell 漏洞 (CVE-2021-44228) 的本地字节码扫描器 | Kitploit
工具/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
静态分析漏洞扫描器代码分析二进制分析供应链安全事件响应
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

用于 Log4JShell 漏洞 (CVE-2021-44228) 的本地字节码扫描器

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库网站
499184年前Kitploit 审核通过

🔍 Log4JShell 字节码检测器

Log4JShell 字节码检测器是一款开源工具,可帮助识别 jar 文件是否受严重漏洞 CVE-2021-44228 影响。该工具扫描 jar 文件,并将其中的类与一组预先计算好的易受攻击类的哈希值进行比对。这些哈希值已针对 Maven Central 上的工件预先计算。

重要更新:我们扩展了 Maven Central 上 受影响工件列表。该列表包含 18,816 个工件。这些工件要么将 log4j-core 声明为依赖项,要么我们在其中识别出与受影响版本的 log4j-core 相匹配的 .class 文件。

📝 运行方法

  1. 在发布页面下载 jar 文件。
  2. 运行 java -cp <已下载JAR的路径> de.codeshield.log4jshell.Log4JDetector <待检查JAR的绝对路径>

如果 jar 文件受影响,工具会在命令行输出信息:

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 在运行中的服务器上运行(无需停止正在运行的 Java 实例)

  1. 在发布页面下载 jar 文件。
  2. 运行 java -cp <已下载JAR的路径> de.codeshield.log4jshell.Log4JProcessDetector
  3. 该 jar 会搜索所有正在运行的 Java 进程的类路径,查找易受攻击的 log4j 实例

❓ CVE-2021-44228 背景信息

log4j 中发现了一个严重的远程代码执行漏洞,版本 2.0-beta9 到 2.14 受影响。该漏洞被归类为严重级别,因为它影响了 log4j 这一 Java 中最常用的日志库之一。网上已有大量参考文献和文章。

  • 黑客新闻
  • 德国联邦信息安全办公室 (BSI)
  • 漏洞利用的概念验证
  • Log4JShell 速查表

👀 为什么它很重要?

Log4j 当前和过去一直被用于几乎所有的 Java 项目中进行日志记录。现在我们需要了解哪些项目和库实际上受到影响。由于 Java 的依赖机制,如果应用程序传递性地包含了易受攻击的库版本,那么该应用程序也可能受到影响。当项目 A 的直接依赖项 B 依赖于库 lib 时,项目 A 就传递性地包含了库 lib。一个简单的检查是否受影响的方法是通过 Maven 依赖树:

示例:在 Maven 项目上执行命令 mvn dependency:tree。

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

然而,这种检查仅是初步指示,因以下原因并不充分:

Java 程序经常:

  • 打包为 fatjar 或 uberjar:所有类文件(包括直接和传递依赖项)都被打包到单个 jar 文件中(就像我们为这个软件工件所做的那样)
  • 重新打包或重新捆绑:原始包名称被更改以避免命名冲突(某些编译器和打包机制会应用代码转换)
  • 重新编译:源代码用不同的编译器编译并打包为新版本,导致字节码发生变化

因此,任何 Java 项目所使用的库都可能将漏洞引入你的项目。深入的字节码分析有助于解决这一问题,而这正是我们在本仓库中发布的内容。

📕 脚本步骤

  1. 从 jar 中提取 pom.xml 文件
  2. 将声明的依赖项与 Maven Central 上托管的受影响 groupId:artifactId:version 列表(预先计算的列表)进行比对
  3. 从 jar 中提取 .class 文件
  4. 计算类文件的 SHA 哈希值
  5. 将 SHA 与 预先计算的列表 进行匹配

🛠 构建说明

要构建此工具,请运行

mvn compile

要组装可运行的 jar,请使用

mvn clean compile assembly:single

💡 易受攻击类的预计算哈希值

易受攻击类的哈希集已对整个 Maven Central 仓库进行了预计算。这些类的哈希包含我们通过指纹识别技术识别为字节码相似的所有哈希。

预计算的信息包括:

  • 所有直接包含任何易受攻击版本 log4j 的工件
  • 所有包含具有受影响版本范围内 log4j 易受攻击哈希的类的工件
  • 所有重新捆绑了 log4j 易受攻击类的工件
  • 所有拥有受影响版本范围内 log4j 类重新编译版本的工件

我们考虑的受影响版本范围为 [2.0-beta9, 2.15) 参考。

💻 指纹识别技术

该工具使用一种由 Andreas Dann 发明的 Java 字节码指纹识别新技术。基本流程如下:

  1. 利用可用的修复提交 提交1、提交2 和 提交3 来识别哪些类受到影响。
  2. 计算受影响类的字节码“指纹”。
  3. 在 Maven Central 上搜索其他具有相同“指纹”的类。

注意:为简化部署,本仓库确实提供了受影响类的 SHA 哈希,这些信息是通过指纹识别计算得出的。

📌 免责声明

哈希列表和 Maven 工件列表并不完整。我们将定期更新这些列表。

📯 贡献者

本工具由 CodeShield 联合创始人共同创建

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

欢迎反馈!

我们正在努力扩展受影响工件的列表,并始终寻求改进我们的服务。欢迎贡献

另外,如果我们的扫描程序对你有帮助,请给本仓库 ⭐️!

✍️ 联系方式

如果你需要支持,或者想了解我们的技术,请通过 [email protected] 联系我们。

你的 CodeShield 团队 💚

下载工具