TGViewer
Похек Похек @poxek · 16.9K subscribers
Post #6349 2.12K
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
  • 🔥 10
  • ⚡ 1
More from @poxek
  1. Oct 1, 2026USN Journal и VSS diffing: детектирование Timestomping на уровне NTFS Техника Timestomping…
  2. Sep 30, 2026Кто должен сказать последнее слово, если бизнес готов запускать продукт, а CISO требует ус…
  3. Sep 30, 2026Разбор PhaaS-кампании против Steam: от BitB до инжекторов Prosper Исследователи вскрыли ма…
  4. Sep 29, 2026Скрытые каналы передачи данных через Named Pipes и RPC в Active Directory Использование пр…
  5. Sep 28, 2026Кто станет новым лицом кибербезопасности? SecPost запустил рейтинг «Новая элита кибербеза»…
  6. Sep 27, 2026DarkSword: full-chain для iOS 18.4–18.7 из шести уязвимостей — от Safari до ядра Google Th…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →