
произвольное чтение/запись в ядре в dbutil_2_3.sys, Proof of Concept локальное повышение привилегий до nt authority/system
Простой PoC для эксплуатации CVE-2021-21551 для LPE путем запуска системной командной строки.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21551
Проблема была обнаружена в подписанном драйвере Dell для Windows (dbutil_2_3.sys), которая может привести к компрометации всей локальной системы. Подпрограмма диспетчеризации IOCTL драйвера не проверяет буфер, предоставленный пользователем.
Любой может создать дескриптор и отправлять запросы IOCTL с этими кодами IOCTL, которые нарушают модель безопасности Windows:
Этот PoC использует коды IOCTL 0x9b0c1ec4/0x9b0c1ec8 для произвольного чтения/записи памяти ядра соответственно. Сначала он находит PsInitialSystemProcess в ядре, чтобы получить системный токен, а затем записывает этот токен в структуру EPROCESS текущего процесса. Перед компиляцией обновите свои смещения EPROCESS, чтобы избежать BSOD, используя https://www.vergiliusproject.com/
DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
DWORD EPROCESS_Token = 0x348;
Используйте Visual Studio для компиляции (требуется заголовочный файл Windows). Заголовочный файл Ntdll SDK: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h
Протестировано на:
Успешная эксплуатация запустит системную командную строку. Если вы получите ошибку PAGE_FAULT_IN_NONPAGED_AREA, то, вероятно, смещения неверны. Пример вывода:
