## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JEFFAF-CVE-2025-3464-ASIO3-LPE
# CVE-2025-3464-AsIO3-LPE
CVE-2025-3464: Эксплойт локального повышения привилегий для ASUS AsIO3.sys - обход аутентификации TOCTOU + декремент PreviousMode
# CVE-2025-3464: Локальное повышение привилегий AsIO3.sys
Этот эксплойт работает только на 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)
## Уязвимости
### CVE-2025-3464 - Обход аутентификации через TOCTOU
Драйвер AsIO3.sys проверяет вызывающие процессы, проверяя, содержит ли их исполняемый путь `AsusCertService`, и верифицируя SHA256-хэш. Эта проверка подвержена состоянию гонки "время проверки — время использования" (TOCTOU) с использованием жестких ссылок NTFS.
**Схема атаки:**
1. Создать жесткую ссылку по пути, содержащему `AsusCertService`, указывающую на исполняемый файл эксплойта
2. Запустить дочерний процесс через жесткую ссылку (путь образа процесса теперь проходит проверку подстроки)
3. Перенаправить жесткую ссылку на `AsusCertService.exe`
4. Дочерний процесс открывает дескриптор устройства
5. Авторизация предоставляется процессу, контролируемому атакующим
**Примечание:** Драйвер проверяет только то, содержит ли путь _подстроку_ `AsusCertService`. Любой путь, доступный для записи пользователю, подходит (например, `C:\Users\Public\AsusCertService\`), что делает эту уязвимость эксплуатируемой без прав администратора.
### Примитив декремента (IOCTL 0xA0402450)
Драйвер предоставляет IOCTL, который вызывает `ObfDereferenceObject` для указателя, контролируемого пользователем. Это выполняет 8-байтовое атомарное уменьшение по адресу `(ObjectPtr - 0x30)`, предоставляя примитив произвольного декремента.
**Эксплуатация через PreviousMode:**
* Получить адрес KTHREAD через `NtQuerySystemInformation(SystemHandleInformationEx)`
* Цель: `KTHREAD + 0x232` (поле PreviousMode)
* Уменьшить PreviousMode с 1 (UserMode) до 0 (KernelMode)
* При PreviousMode=0, `NtReadVirtualMemory`/`NtWriteVirtualMemory` могут получить доступ к памяти ядра
* Пройтись по списку EPROCESS, украсть токен SYSTEM
* Восстановить PreviousMode до 1 перед запуском оболочки
## Использование
root@kitploit:~
# Compile (Linux cross-compile)
x86_64-w64-mingw32-gcc -O2 -o AsIO3_FullExploit.exe AsIO3_FullExploit.c -lntdll -lshlwapi
# On target (requires AsIO3.sys loaded)
AsIO3_FullExploit.exe
Предварительные требования:
* Загружен драйвер AsIO3.sys (входит в состав ASUS Armoury Crate, AI Suite и т.д.)
* Доступен AsusCertService.exe (поиск в стандартных путях установки ASUS)
Структурные смещения (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.
Технические примечания
* 8-байтовое уменьшение по адресу KTHREAD+0x232 влияет на соседние поля (UserAffinityPrimaryGroup, BasePriority)
* Критически важно: PreviousMode ДОЛЖЕН быть восстановлен до 1 перед вызовом CreateProcess или любых операций в пользовательском адресном пространстве
* Невыполнение восстановления PreviousMode вызывает BSOD в nt!PspLocateInPEManifest при создании процесса
Ссылки
* https://blog.talosintelligence.com/decrement-by-one-to-rule-them-all/
* Компоненты драйвера ASUS Armoury Crate / AI Suite
Отказ от ответственности
Этот код предоставляется только для авторизованных исследований в области безопасности и образовательных целей. Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное разрешение. Несанкционированный доступ к компьютерным системам незаконен.