
📟 небольшой код, выполняющий чтение/запись в режиме ядра с использованием CVE-2023-38817.

Это код, который просто предоставляет возможность чтения/записи памяти в режиме ядра из пользовательского режима с использованием уязвимого подписанного драйвера. Он просто использует MmCopyVirtualMemory — недокументированный, но один из самых распространённых API в режиме ядра, — чтобы вы могли читать/записывать любую память пользовательского режима, не беспокоясь о защите страницы памяти. Кроме того, здесь есть функция получения дескриптора процесса по заданному PID в качестве дополнительного средства. Поскольку создание дескриптора выполняется в режиме ядра, стандартные проверки доступа и колбэки, я полагаю, не срабатывают.
Этот проект создан в учебных целях, и использовать его вне виртуальной машины не рекомендуется.
Я видел, что на форуме UC у этого конкретного драйвера есть уязвимость повышения привилегий. Поэтому я начал реверсить драйвер самостоятельно, и действительно, у драйвера нет контроля доступа к его мощным ioctl.
В этом проекте используется уязвимость, о которой сообщалось как CVE-2023-38817. https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
Поскольку мне было лень реализовать это как следует, вам нужно просто включить всё и скомпилировать. Все функциональные возможности инкапсулированы в класс kur_t.
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14