
Implementação JavaScript autônoma educacional do exploit público para CVE-2016-9079 (Firefox Use-After-Free), adaptada do módulo original do Exploit-DB/Metasploit.
Implementação educacional do exploit público para CVE-2016-9079, adaptado do módulo original do Exploit-DB/Metasploit para uso independente.
Aviso
Este repositório é fornecido estritamente para fins educacionais e de pesquisa. Ele contém uma portabilidade JavaScript de um exploit publicamente disponível para estudo de técnicas históricas de exploração de navegadores. Não se destina ao uso não autorizado contra sistemas que você não possui ou não tem permissão para testar.
Este repositório contém uma implementação JavaScript independente do exploit público para CVE-2016-9079, uma vulnerabilidade Use-After-Free (UAF) que afeta versões antigas do Mozilla Firefox.
A vulnerabilidade existe no subsistema de animação SMIL (Linguagem de Integração Multimídia Sincronizada) do Firefox e pode permitir execução remota de código sob condições específicas.
Diferentemente do exploit público original, distribuído como um módulo do Metasploit, este repositório fornece uma implementação baseada em navegador que pode ser servida a partir de um servidor HTTP simples.
Este repositório destina-se como uma referência educacional histórica, e não como uma ferramenta moderna de exploração.
Enquanto me preparava para o OSCP, encontrei uma máquina CTF rodando uma versão antiga e vulnerável do Firefox.
Após enumeração, a exploração do navegador parecia ser o caminho pretendido para escalonamento de privilégios.
O exploit disponível publicamente no Exploit-DB estava implementado como um módulo do Metasploit. Como o exame OSCP restringe o uso do Metasploit, eu queria uma versão independente que pudesse ser executada sem o framework.
Após pesquisar o exploit público, adaptei-o para esta implementação JavaScript.
É importante observar que:
CVE: CVE-2016-9079
Tipo: Use-After-Free (UAF)
Componente Afetado: Animação SMIL do Firefox (nsSMILTimeContainer)
Impacto: Execução Remota de Código
A vulnerabilidade é acionada através de objetos de animação SVG especialmente manipulados que causam uma condição use-after-free dentro do motor de animação do Firefox. O exploit então realiza manipulação de heap antes de executar uma cadeia ROP para obter execução de código.
Este repositório preserva a técnica de exploração documentada publicamente para fins educacionais.
index.htmlO ponto de entrada principal.
Carrega os componentes JavaScript e aciona a vulnerabilidade quando aberto em uma versão compatível do Firefox.
worker.jsContém a maior parte da lógica do exploit, incluindo:
A implementação é adaptada do exploit publicamente disponível.
README.mdDocumentação descrevendo a vulnerabilidade, o propósito do repositório e o uso.
Nenhuma compatibilidade com versões mais recentes do Firefox é esperada.

python3 -m http.server 8000
Navegue para:
http://<ip-do-servidor>:8000/index.html
a partir da instância vulnerável do Firefox.

Nota - Pode ser necessário tentar o exploit várias vezes.
Este repositório é intencionalmente minimalista e não deve ser considerado um framework geral de exploração.
Em comparação com a implementação original do Metasploit:
Como resultado, esta implementação deve ser usada apenas em ambientes controlados com versões compatíveis conhecidas.
Embora eu não tenha sido o autor do exploit original, adaptá-lo para uma implementação independente proporcionou uma exposição valiosa a conceitos como:
Este repositório complementa meu trabalho em segurança de aplicações e bug bounty ao documentar parte do meu processo de preparação para o OSCP.
Este repositório é distribuído apenas para fins educacionais.
O crédito pela técnica de exploração original pertence aos pesquisadores originais e aos autores do exploit público. Este repositório apenas adapta a implementação publicamente disponível em um formato independente para uso educacional.