
CVE-2025-3464: эксплойт для локального повышения привилегий для ASUS AsIO3.sys
CVE-2025-3464: Эксплойт локального повышения привилегий для ASUS AsIO3.sys - обход аутентификации TOCTOU + декремент PreviousMode
Этот эксплойт работает только на Windows 11 22H2 и более ранних версиях. Microsoft исправила трюки с PreviousMode.
Эксплойт локального повышения привилегий для драйвера ASUS AsIO3.sys. Получает NT AUTHORITY\SYSTEM
Этот эксплойт связывает обход аутентификации (CVE-2025-3464) с примитивом декремента для повышения привилегий от любого локального пользователя до SYSTEM.
| Свойство | Значение |
|---|---|
| CVE | CVE-2025-3464 |
| Тип | Локальное повышение привилегий |
| Драйвер | AsIO3.sys (ASUS) |
| Протестировано | Windows 11 22H2 (Build 22621) |
Драйвер AsIO3.sys проверяет вызывающие процессы, проверяя, содержит ли их исполняемый путь AsusCertService, и верифицируя SHA256-хэш. Эта проверка подвержена состоянию гонки "время проверки — время использования" (TOCTOU) с использованием жестких ссылок NTFS.
Схема атаки:
AsusCertService, указывающую на исполняемый файл эксплойтаAsusCertService.exeПримечание: Драйвер проверяет только то, содержит ли путь подстроку AsusCertService. Любой путь, доступный для записи пользователю, подходит (например, C:\Users\Public\AsusCertService\), что делает эту уязвимость эксплуатируемой без прав администратора.
Драйвер предоставляет IOCTL, который вызывает ObfDereferenceObject для указателя, контролируемого пользователем. Это выполняет 8-байтовое атомарное уменьшение по адресу (ObjectPtr - 0x30), предоставляя примитив произвольного декремента.
Эксплуатация через PreviousMode:
NtQuerySystemInformation(SystemHandleInformationEx)KTHREAD + 0x232 (поле PreviousMode)NtReadVirtualMemory/NtWriteVirtualMemory могут получить доступ к памяти ядра# Compile (Linux cross-compile)
x86_64-w64-mingw32-gcc -O2 -o AsIO3_FullExploit.exe AsIO3_FullExploit.c -lntdll -lshlwapi
AsIO3_FullExploit.exe
Предварительные требования:
Структурные смещения (Windows 11 22H2)
KTHREAD + 0x232 = PreviousMode KTHREAD + 0x220 = Process (EPROCESS pointer) EPROCESS + 0x440 = UniqueProcessId EPROCESS + 0x448 = ActiveProcessLinks EPROCESS + 0x4B8 = Token
Примечание: Смещения зависят от версии. Проверьте для вашей сборки Windows. Windows 23H2 вызывает PREVIOUS_MODE_MISMATCH (0x1f9). Это способ защиты от этих трюков с PreviousMode.
Технические примечания
Ссылки
Отказ от ответственности
Этот код предоставляется только для авторизованных исследований в области безопасности и образовательных целей. Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное разрешение. Несанкционированный доступ к компьютерным системам незаконен.