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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/mein-0/cve-2026-29923
Повышение привилегийАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubmein-0/cve-2026-29923

cve-2026-29923

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

Популярное

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

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

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

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

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

CVE-2026-29923 — локальное повышение привилегий в pstrip64.sys

Минимальный proof-of-concept для CVE-2026-29923 — уязвимости в драйвере ядра pstrip64.sys (EnTech Taiwan PowerStrip ≤ 3.90.736), которая позволяет непривилегированному процессу в режиме пользователя повысить привилегии до NT AUTHORITY\SYSTEM.


Суть уязвимости

pstrip64.sys предоставляет IOCTL (0x80002008), который принимает физический адрес, указанный пользователем, и напрямую отображает его в виртуальное адресное пространство вызывающего процесса, открывая \Device\PhysicalMemory и вызывая ZwMapViewOfSection с дескриптором текущего процесса. Никакой проверки привилегий, никакой валидации адресов, кроме той, что выполняет HalTranslateBusAddress, и никакого контроля доступа к символической ссылке \\.\PSTRIP64.

В результате непривилегированный процесс получает неограниченный примитив чтения/записи физической памяти.


Эксплуатация

Имея произвольное чтение/запись физической памяти, эксплойт выполняет четыре шага.

1. Поиск структур EPROCESS

Физическая память сканируется блоками по 2 МБ. В каждом блоке ищется тег пула ядра Proc (0x636F7250), который отмечает выделение пула, содержащее структуру _EPROCESS процесса. Кандидаты проверяются с помощью трёх лёгких эвристик, прежде чем PID начинает считаться достоверным:

  • PriorityClass == 0x2 — все активные процессы работают с обычным приоритетом
  • ProcessLock == 0x0 — поле блокировки сброшено у стабильного процесса
  • ImageFileName[0] — печатный ASCII; мусорные данные редко удовлетворяют этому условию

2. Поиск обоих указателей на токен

Нужны два целевых значения:

  • Физический адрес поля Token нашего собственного процесса внутри _EPROCESS
  • Значение токена, хранящееся в _EPROCESS системного процесса (PID 4)

3. Перезапись нашего токена

Страница 4 КБ, содержащая наше поле Token, отображается, и поле перезаписывается значением системного токена. С этого момента ядро Windows обрабатывает наш процесс как NT AUTHORITY\SYSTEM.

4. Запуск оболочки

cmd.exe запускается через CreateProcessA. Поскольку дочерние процессы наследуют токен родительского процесса, полученная оболочка работает как SYSTEM.


Предостережение об MMIO

Окно физических адресов от 3 до 4 ГБ на системах x86 зарезервировано под MMIO. Попытка отобразить страницы в этом диапазоне приводит к тому, что драйвер возвращает ошибку 74 (сбой HalTranslateBusAddress). Сканирование пропускает это окно и продолжается с 0x100000000, чтобы перехватить структуры ядра, которые Windows размещает выше отметки 4 ГБ.


Требование 32-битной сборки

Обработчик отображения драйвера записывает возвращаемый виртуальный адрес в поле DWORD (LowPart), усекая 64-битный VA до 32 бит. 64-битная сборка получает повреждённый указатель и немедленно падает. Компилируйте как x86.


Затронутое ПО

Программное обеспечениеВерсии
EnTech Taiwan PowerStrip≤ 3.90.736

Хэш драйвера (SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

Смещения EPROCESS

Жёстко заданные смещения рассчитаны на Windows 10 22H2 x64. Для других сборок требуются обновлённые значения — используйте dt nt!_EPROCESS в WinDbg для проверки.


Сборка

Откройте командную строку разработчика x86 Visual Studio и выполните:

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

Или установите целевую платформу x86 в Visual Studio и соберите проект в конфигурации Release. Бинарный файл не требует внешних зависимостей, кроме Windows SDK.


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

Сначала загрузите pstrip64.sys (для загрузки драйвера требуются права администратора, но не для запуска самого эксплойта после его загрузки), затем:

root@kitploit:~
poc.exe

Откроется новое окно cmd.exe, работающее от имени NT AUTHORITY\SYSTEM.


Меры защиты

Заблокировать загрузку драйвера (рекомендуется)

  • Добавьте указанный выше хэш драйвера в блок-лист вашей организации
  • Включите список блокировки уязвимых драйверов Microsoft через WDAC
  • Включите защиту целостности кода под управлением гипервизора (HVCI)

Обнаружение попыток эксплуатации

  • Оповещайте об установке новых сервисов режима ядра для неизвестных бинарных файлов драйверов
  • Отслеживайте процессы с низким/средним уровнем целостности, порождающие дочерние процессы уровня SYSTEM
  • Помечайте любой процесс, чей токен изменился на NT AUTHORITY\SYSTEM вне легитимного события аутентификации

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

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


Ссылки

  • Microsoft Vulnerable Driver Blocklist
  • Обзор WDAC
  • Внутреннее устройство EPROCESS в Windows
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
Скачать инструмент
ПолеСмещение
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8