pfichtner/log4shell-hunter
GitHub: pfichtner/log4shell-hunter
基于字节码分析的本地文件Log4Shell漏洞扫描器,能够检测被重打包、混淆或嵌入的易受攻击log4j版本。
Stars: 6 | Forks: 4
# log4shell-hunter
[](https://github.com/pfichtner/log4shell-hunter/actions/workflows/maven.yml)
[](https://gitlicense.com/license/pfichtner/log4shell-hunter)
[](https://snyk.io/test/github/pfichtner/log4shell-hunter?targetFile=pom.xml)
[](https://codecov.io/gh/pfichtner/log4shell-hunter)
[](https://bettercodehub.com/)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fpfichtner%2Flog4shell-hunter?ref=badge_shield)
你是否担心 JAR 文件甚至商业(例如闭源)应用程序中包含了(经过 shaded 处理的)易受攻击的 log4j 版本,或者你的开发人员在他们的一些项目中复制了易受攻击的 log4j 类?这是大多数扫描器会出现漏报(false negatives)的地方,因为它们依赖于描述 log4j 版本的元数据(如 pom.xml)。
该扫描器进行字节码分析!因此它**不**依赖于:
- 经过指纹识别的 jar 文件
- 经过指纹识别的 class 文件
- 类名(例如 ```JndiLookup```)
- pom 文件/pom 条目
因此,即使出现以下情况,log4shell-hunter 也能找到易受攻击的 log4j 版本:
- log4j 的源代码已被第三方编译(无论使用何种编译器/编译器版本)
- log4j(或其部分)已被包含/复制到其他 jar 中
- log4j 被重新打包(uberjar、fatjar),即使包已被重命名,例如 org.apache.logging -> org.acme.foo.logger.bar
扫描器分析 jar 包并尝试检测:
- 带有 log4j Plugin 注解 ```org.apache.logging.log4j.core.config.plugins.Plugin``` 的类。
- 即使 Plugin 已被重命名甚至混淆(取决于 log4shell-hunter 的模式参数),这依然有效
### 用法
示例用法
```
find \( -name "*.jar" -o -name "*.zip" -o -name "*.ear" -o -name "*.war" \) -exec java -jar log4shell-hunter-0.0.3.jar -m obfuscatorComparator {} \;
```
示例输出
```
./log4j-samples/true-hits/springboot-executable/spiff-0.0.1-SNAPSHOT.war
> Possible 2.1+ match found in class org.apache.logging.log4j.core.lookup.JndiLookup in resource /WEB-INF/lib/log4j-core-2.10.0.jar
```
模式可以设置为 ```defaultComparator```、```repackageComparator```、```obfuscatorComparator``` 之一。
- defaultComparator:Log4j 类必须与预期的类名+包名完全匹配。其方法也是如此。
- repackageComparator:Log4j 类必须与预期的名称匹配,但会忽略包名。方法名必须完全匹配(**默认**)
- obfuscatorComparator:log4shell-hunter 不依赖任何类或方法名称,而是尝试通过某些标准检测 log4 类。即使 jar 被混淆,此模式也能找到重新打包的 log4j
### 从源码构建
```
git clone https://github.com/pfichtner/log4shell-hunter.git
cd log4shell-hunter/
# 使用包含的 maven wrapper 构建
# 当然,你也可以使用本地安装的 "mvn" 而不是 maven wrapper "./mvnw"
./mvnw package
java -jar target/log4shell-hunter-0.0.3.jar
```
### 许可证
[GNU General Public License v3.0](LICENSE.txt)
标签:CVE-2021-44228, FatJar扫描, GHAS, Go语言工具, Java安全, JNDI注入, JS文件枚举, Log4j, Log4Shell, PE 加载器, UberJar扫描, 云安全监控, 加密, 反混淆, 后门检测, 域名枚举, 域名枚举, 文档安全, 漏洞扫描器, 网络安全, 隐私保护, 静态分析