
Exploit de prova de conceito para o CVE-2024-24824 demonstrando como uma primitiva de carregamento arbitrário de classes pode ser transformada em execução remota de código em implantações vulneráveis do Graylog.
Este repositório contém o exploit de prova de conceito apresentado na minha palestra:
Explorando Carregamento Arbitrário de Classes na JVM
Assista aqui se tiver interesse: Youtube
O exploit tem como alvo CVE-2024-24824 (pequeno erro de digitação nos slides), uma vulnerabilidade de carregamento arbitrário de classes que afeta as versões do Graylog 2.0.0 até 5.2.3.
Em vez de tratar o carregamento arbitrário de classes como um objetivo final, esta pesquisa explora como a primitiva pode ser abusada para descobrir e construir técnicas de exploração cada vez mais poderosas, analisando o classpath da JVM disponível.
Dada a capacidade de instanciar classes arbitrárias com dados controlados pelo atacante, o desafio se torna:
O que podemos realmente fazer com isso?
A resposta depende inteiramente de quais classes existem no classpath da aplicação alvo.
A pesquisa acompanhante explorou como uma primitiva de carregamento arbitrário de classes poderia ser transformada em múltiplas primitivas de exploração, incluindo:
Este repositório se concentra no exploit de execução remota de código demonstrado durante a palestra.
Abaixo está o resultado esperado da execução do exploit em uma instância vulnerável:

exploit/
exploit source
docs/
slides
A palestra acompanhante percorre o processo de exploração do início ao fim:
O objetivo é demonstrar o processo de pensamento por trás do desenvolvimento de exploits, em vez de simplesmente disponibilizar um exploit.
Este código é disponibilizado apenas para fins educacionais, pesquisa em segurança e testes de segurança autorizados.
Teste apenas sistemas que você possui ou para os quais tenha permissão explícita para avaliar.