
Implementazione JavaScript standalone educativa dell'exploit pubblico per CVE-2016-9079 (Firefox Use-After-Free), adattata dal modulo originale Exploit-DB/Metasploit.
Implementazione educativa dell'exploit pubblico per CVE-2016-9079, adattata dal modulo originale Exploit-DB/Metasploit per uso standalone.
Disclaimer
Questo repository è fornito esclusivamente a scopo educativo e di ricerca. Contiene un porting JavaScript di un exploit pubblicamente disponibile per lo studio delle tecniche storiche di sfruttamento dei browser. Non è destinato a un uso non autorizzato contro sistemi di cui non si è proprietari o per i quali non si ha il permesso di test.
Questo repository contiene un'implementazione JavaScript standalone dell'exploit pubblico per CVE-2016-9079, una vulnerabilità Use-After-Free (UAF) che colpisce le versioni precedenti di Mozilla Firefox.
La vulnerabilità risiede nel sottosistema di animazione SMIL (Synchronized Multimedia Integration Language) di Firefox e può consentire l'esecuzione remota di codice in determinate condizioni.
A differenza dell'exploit pubblico originale, distribuito come modulo Metasploit, questo repository fornisce un'implementazione basata su browser che può essere servita da un semplice server HTTP.
Questo repository è pensato come riferimento storico educativo piuttosto che come strumento di sfruttamento moderno.
Mentre mi preparavo per l'OSCP, mi sono imbattuto in una macchina CTF che eseguiva una vecchia versione vulnerabile di Firefox.
Dopo l'enumerazione, lo sfruttamento del browser è apparso come il percorso di escalation dei privilegi previsto.
L'exploit disponibile pubblicamente su Exploit-DB era implementato come modulo Metasploit. Poiché l'esame OSCP limita l'uso di Metasploit, volevo una versione standalone che potesse essere eseguita senza il framework.
Dopo aver studiato l'exploit pubblico, l'ho adattato in questa implementazione JavaScript.
È importante notare che:
CVE: CVE-2016-9079
Tipo: Use-After-Free (UAF)
Componente interessato: Animazione SMIL di Firefox (nsSMILTimeContainer)
Impatto: Esecuzione remota di codice
La vulnerabilità viene attivata tramite oggetti di animazione SVG appositamente modificati che causano una condizione use-after-free all'interno del motore di animazione di Firefox. L'exploit esegue quindi manipolazioni dell'heap prima di eseguire una catena ROP per ottenere l'esecuzione del codice.
Questo repository preserva la tecnica di sfruttamento pubblicamente documentata per scopi educativi.
index.htmlIl punto di ingresso principale.
Carica i componenti JavaScript e attiva la vulnerabilità quando aperto in una versione compatibile di Firefox.
worker.jsContiene la maggior parte della logica dell'exploit, inclusi:
L'implementazione è adattata dall'exploit pubblicamente disponibile.
README.mdDocumentazione che descrive la vulnerabilità, lo scopo del repository e l'utilizzo.
Non è prevista la compatibilità con versioni più recenti di Firefox.

python3 -m http.server 8000
Navigare su:
http://<server-ip>:8000/index.html
dall'istanza vulnerabile di Firefox.

Nota - Potrebbe essere necessario provare l'exploit più volte.
Questo repository è intenzionalmente minimale e non deve essere considerato un framework di sfruttamento generale.
Rispetto all'implementazione Metasploit originale:
Di conseguenza, questa implementazione dovrebbe essere utilizzata solo in ambienti controllati con versioni compatibili note.
Sebbene non sia l'autore dell'exploit originale, adattarlo in un'implementazione standalone ha fornito una preziosa esposizione a concetti tra cui:
Questo repository completa il mio lavoro di sicurezza delle applicazioni e bug bounty documentando parte del mio processo di preparazione per l'OSCP.
Questo repository è distribuito esclusivamente a scopo educativo.
Il merito per la tecnica di sfruttamento originale appartiene ai ricercatori e agli autori originali dell'exploit pubblico. Questo repository adatta solo l'implementazione pubblicamente disponibile in un formato standalone per uso educativo.