MXStat
MXStat
Введите текст для поиска
Расширенный поиск каналов
  • Вход на сайт
  • Каталог
    Каталог каналов Региональные подборки Поиск каналов
    Добавить канал
  • Рейтинги
    Рейтинг каналов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Max
Похек

28 Sep, 11:12

Открыть в Max Поделиться

⁣Kernel Pool Forensics: обнаружение DKOM и скрытых модулей в ядре Windows

Техника DKOM (Direct Kernel Object Manipulation, T1014) позволяет руткитам скрывать присутствие в Ring 0 путем исключения элементов из двусвязных списков ядра без вызова документированных API деинициализации.

При скрытии драйвера вредоносный код удаляет запись LDR_DATA_TABLE_ENTRY из циклического списка PsLoadedModuleList (nt!PsLoadedModuleList), модифицируя указатели Flink и Blink. Аналогично скрытие потоков или процессов обходит ActiveProcessLinks в структуре EPROCESS. Поскольку стандартные системные утилиты и EDR-сенсоры верхнего уровня полагаются на обход активных структур списка, модуль исчезает из выдачи EnumDeviceDrivers и NtQuerySystemInformation.

// Модификация указателей в LDR_DATA_TABLE_ENTRY (DKOM)
Entry->InLoadOrderLinks.Blink->Flink = Entry->InLoadOrderLinks.Flink;
Entry->InLoadOrderLinks.Flink->Blink = Entry->InLoadOrderLinks.Blink;

Для выявления таких аномалий в дампах памяти применяется сканирование пулов памяти (NonPagedPool / PagedPool) по пуловым тегам (Pool Tags) и сигнатурам структур без привязки к активным спискам. В старых версиях Windows валидация опиралась на 4-байтные теги заголовков _POOL_HEADER. Начиная с Windows 10 (версии 1903+) и в Windows 11 за счет Segment Heap и Pool Quota структура _POOL_HEADER для пулов больших страниц упразднена, что требует поиска по паттернам самих объектов — в частности, сигнатурам структур _DRIVER_OBJECT (тип объекта IoDriverObjectType) и таблицам MajorFunction.

Для Blue Team
сверяйте результаты сканирования объектов в Volatility/Rekall (плагины windows.driverscan, windows.modscan) со списком windows.modules. Несовпадение адреса базы драйвера в пуле со связным списком PsLoadedModuleList однозначно указывает на раслинковку. Дополнительные векторы верификации: анализ целостности цепочек DriverObject->DriverInit, перехваты в MajorFunction[], проверка IRP-хуков и сопоставление страниц памяти исполняемого пула с диапазонами легитимно загруженных PE-образов (VAD/ System PTEs).

@poxek | @poxek_ai | MAX

163
Каталог
Каталог каналов Подборки каналов Поиск каналов Добавить канал
Рейтинги
Рейтинг каналов Max
Контакты
Написать в Max Написать в Telegram Написать на почту
Всякая всячина
Пользовательское соглашение Политика конфиденциальности
Наши каналы
MXStat в Telegram MXStat в Max
Наши боты
MXAuthBot MXAnalyticsBot
Made by TGStat