
Implementación educativa independiente en JavaScript del exploit público para CVE-2016-9079 (Firefox Use-After-Free), adaptada del módulo original de Exploit-DB/Metasploit.
Implementación educativa del exploit público para CVE-2016-9079, adaptada del módulo original de Exploit-DB/Metasploit para uso independiente.
Aviso legal
Este repositorio se proporciona estrictamente con fines educativos y de investigación. Contiene una adaptación en JavaScript de un exploit disponible públicamente para estudiar técnicas históricas de explotación de navegadores. No está destinado a un uso no autorizado contra sistemas que no posees o para los que no tienes permiso de prueba.
Este repositorio contiene una implementación JavaScript independiente del exploit público para CVE-2016-9079, una vulnerabilidad de Use-After-Free (UAF) que afecta a versiones antiguas de Mozilla Firefox.
La vulnerabilidad existe dentro del subsistema de animación SMIL (Synchronized Multimedia Integration Language) de Firefox y puede permitir la ejecución remota de código bajo condiciones específicas.
A diferencia del exploit público original, que se distribuye como un módulo de Metasploit, este repositorio ofrece una implementación basada en navegador que puede servirse desde un simple servidor HTTP.
Este repositorio está pensado como una referencia educativa histórica y no como una herramienta de explotación moderna.
Mientras me preparaba para el OSCP, me encontré con una máquina CTF que ejecutaba una versión antigua y vulnerable de Firefox.
Tras la enumeración, la explotación del navegador parecía ser la ruta prevista para la escalada de privilegios.
El exploit disponible públicamente en Exploit-DB estaba implementado como un módulo de Metasploit. Dado que el examen OSCP restringe el uso de Metasploit, quería una versión independiente que pudiera ejecutarse sin el framework.
Después de investigar el exploit público, lo adapté a esta implementación en JavaScript.
Es importante señalar que:
CVE: CVE-2016-9079
Tipo: Use-After-Free (UAF)
Componente afectado: Firefox SMIL Animation (nsSMILTimeContainer)
Impacto: Ejecución remota de código
La vulnerabilidad se desencadena mediante objetos de animación SVG especialmente manipulados que provocan una condición de use-after-free dentro del motor de animación de Firefox. El exploit realiza entonces una manipulación del heap antes de ejecutar una cadena ROP para lograr la ejecución de código.
Este repositorio preserva la técnica de explotación documentada públicamente con fines educativos.
index.htmlEl punto de entrada principal.
Carga los componentes JavaScript y desencadena la vulnerabilidad cuando se abre en una versión compatible de Firefox.
worker.jsContiene la mayor parte de la lógica del exploit, incluyendo:
La implementación está adaptada del exploit disponible públicamente.
README.mdDocumentación que describe la vulnerabilidad, el propósito del repositorio y su uso.
No se espera compatibilidad con versiones más recientes de Firefox.

python3 -m http.server 8000
Navega a:
http://<server-ip>:8000/index.html
desde la instancia vulnerable de Firefox.

Nota - Puede que tengas que intentar el exploit varias veces.
Este repositorio es intencionalmente mínimo y no debe considerarse un framework de explotación general.
En comparación con la implementación original de Metasploit:
Como resultado, esta implementación solo debe utilizarse en entornos controlados con versiones compatibles conocidas.
Aunque no soy el autor del exploit original, adaptarlo a una implementación independiente me proporcionó una valiosa exposición a conceptos como:
Este repositorio complementa mi trabajo en seguridad de aplicaciones y bug bounty al documentar parte de mi proceso de preparación para el OSCP.
Este repositorio se distribuye únicamente con fines educativos.
El crédito por la técnica de explotación original pertenece a los investigadores y autores originales del exploit público. Este repositorio solo adapta la implementación disponible públicamente a un formato independiente para uso educativo.