
Mise en œuvre JavaScript autonome à but éducatif de l'exploit public pour CVE-2016-9079 (Use-After-Free de Firefox), adaptée du module original Exploit-DB/Metasploit.
Implémentation éducative de l'exploit public pour CVE-2016-9079, adaptée du module Exploit-DB/Metasploit d'origine pour une utilisation autonome.
Avertissement
Ce dépôt est fourni strictement à des fins éducatives et de recherche. Il contient un port JavaScript d'un exploit disponible publiquement pour l'étude de techniques historiques d'exploitation de navigateurs. Il n'est pas destiné à une utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester.
Ce dépôt contient une implémentation JavaScript autonome de l'exploit public pour CVE-2016-9079, une vulnérabilité de type Use-After-Free (UAF) affectant les anciennes versions de Mozilla Firefox.
La vulnérabilité réside dans le sous-système d'animation SMIL (Synchronized Multimedia Integration Language) de Firefox et peut permettre une exécution de code à distance dans des conditions spécifiques.
Contrairement à l'exploit public original, distribué sous forme de module Metasploit, ce dépôt fournit une implémentation basée sur le navigateur qui peut être servie depuis un simple serveur HTTP.
Ce dépôt se veut une référence éducative historique plutôt qu'un outil d'exploitation moderne.
En préparant le OSCP, j'ai rencontré une machine de CTF exécutant une ancienne version vulnérable de Firefox.
Après l'énumération, l'exploitation du navigateur semblait être la voie d'élévation de privilèges attendue.
L'exploit disponible publiquement sur Exploit-DB était implémenté sous forme de module Metasploit. Comme l'examen OSCP restreint l'utilisation de Metasploit, je souhaitais une version autonome pouvant être exécutée sans le framework.
Après avoir étudié l'exploit public, je l'ai adapté en cette implémentation JavaScript.
Il est important de noter que :
CVE : CVE-2016-9079
Type : Use-After-Free (UAF)
Composant affecté : animation SMIL de Firefox (nsSMILTimeContainer)
Impact : exécution de code à distance
La vulnérabilité est déclenchée via des objets d'animation SVG spécialement conçus qui provoquent une condition de use-after-free dans le moteur d'animation de Firefox. L'exploit effectue ensuite une manipulation du tas avant d'exécuter une chaîne ROP pour parvenir à l'exécution de code.
Ce dépôt préserve la technique d'exploitation documentée publiquement à des fins éducatives.
index.htmlLe point d'entrée principal.
Charge les composants JavaScript et déclenche la vulnérabilité lorsqu'il est ouvert dans une version compatible de Firefox.
worker.jsContient la majeure partie de la logique de l'exploit, notamment :
L'implémentation est adaptée de l'exploit disponible publiquement.
README.mdDocumentation décrivant la vulnérabilité, l'objectif du dépôt et son utilisation.
Aucune compatibilité avec les versions plus récentes de Firefox n'est attendue.

python3 -m http.server 8000
Naviguez vers :
http://<server-ip>:8000/index.html
depuis l'instance vulnérable de Firefox.

Remarque - Vous devrez peut-être tenter l'exploit plusieurs fois.
Ce dépôt est volontairement minimal et ne doit pas être considéré comme un framework d'exploitation général.
Comparé à l'implémentation Metasploit d'origine :
En conséquence, cette implémentation ne doit être utilisée que dans des environnements contrôlés avec des versions connues et compatibles.
Bien que je ne sois pas l'auteur de l'exploit original, son adaptation en une implémentation autonome m'a permis de me familiariser avec des concepts tels que :
Ce dépôt complète mon travail en sécurité applicative et en bug bounty en documentant une partie de mon processus de préparation à l'OSCP.
Ce dépôt est distribué à des fins uniquement éducatives.
Le crédit pour la technique d'exploitation originale revient aux chercheurs et auteurs originaux de l'exploit public. Ce dépôt ne fait qu'adapter l'implémentation disponible publiquement dans un format autonome à des fins éducatives.