AvanzadopapersrootkitsDKOMkernelWindows

DKOM: manipulación directa de objetos del kernel

Análisis de la técnica DKOM (Direct Kernel Object Manipulation): cómo funciona a nivel de estructuras del kernel Windows, qué puede ocultar y cómo se detecta con Volatility.

MalwareIntel Research··4 min lectura
Serie: Papers Técnicos — Parte 2

Contexto

DKOM (Direct Kernel Object Manipulation) es la familia de técnicas que manipulan estructuras internas del kernel de Windows para ocultar actividad maliciosa. Iniciada por FU Rootkit (2003) y documentada formalmente en papers posteriores, DKOM se convirtió en la técnica de ocultación más elegante y difícil de detectar en rootkits de kernel.

Estructuras manipulables

EPROCESS (procesos)

Windows mantiene una lista doblemente enlazada de estructuras EPROCESS. Cada proceso tiene un campo ActiveProcessLinks que lo conecta con el siguiente y el anterior. DKOM desenlaza el proceso objetivo:

Antes:  ProcessA ←→ ProcessB ←→ ProcessC
Después: ProcessA ←→ ProcessC  (ProcessB desenlazado pero vivo)

ProcessB sigue ejecutándose (el scheduler usa otra lista interna), pero no aparece en TaskManager, Process Explorer ni cualquier herramienta que recorra ActiveProcessLinks.

Drivers y módulos

Similar a procesos, los drivers cargados están en una lista enlazada (PsLoadedModuleList). DKOM puede ocultar un driver malicioso desenlazándolo de esta lista. El driver sigue ejecutándose pero no aparece en lm de WinDbg ni en herramientas de listado de drivers.

Tokens de seguridad

DKOM puede modificar el token de seguridad de un proceso para escalar privilegios. Copiar el token de SYSTEM y asignarlo a un proceso de usuario da privilegios de SYSTEM sin necesitar un exploit de escalamiento.

Handles y puertos

Manipular la tabla de handles de un proceso para ocultar conexiones de red, archivos abiertos y objetos de sincronización. Más sutil que ocultar el proceso completo: el proceso es visible pero sus actividades no.

Detección con Volatility

Cross-view analysis

La detección clásica de DKOM compara múltiples fuentes de información sobre el mismo dato:

MétodoQué encuentraDetecta DKOM
pslistRecorre ActiveProcessLinksNo (DKOM desenlaza de esta lista)
psscanEscanea memoria buscando firmas EPROCESSSí (estructura sigue en memoria)
pstreeReconstruye árbol padre-hijoParcial
psxviewCombina múltiples métodosSí (cross-view comparison)

Verificación de integridad

Comparar valores esperados de estructuras del kernel con valores actuales:

  • Offsets de EPROCESS deben coincidir entre versiones de Windows
  • Pool tags de objetos del kernel deben ser consistentes
  • Contadores de referencia deben ser coherentes

Thread enumeration

Aunque un proceso está oculto por DKOM, sus threads siguen referenciados en la lista de threads del scheduler. Volatility threads puede encontrar threads huérfanos que pertenecen a procesos no listados.

Evolución y contramedidas

PatchGuard (KPP)

Microsoft introdujo PatchGuard en Windows Vista x64 para prevenir modificaciones no autorizadas de estructuras críticas del kernel. PatchGuard verifica periódicamente la integridad de SSDT, IDT, GDT, MSRs y otras estructuras. Detectar DKOM en estas estructuras causa un BSOD.

Sin embargo, PatchGuard no protege la lista de procesos EPROCESS directamente. DKOM sobre procesos sigue siendo posible en Windows 10/11 x64, aunque es más arriesgado porque PatchGuard puede detectar los efectos secundarios.

Kernel Callback Objects

Las APIs modernas de callback (PsSetCreateProcessNotifyRoutine, etc.) reportan la creación de procesos independientemente de la lista EPROCESS. Un proceso ocultado por DKOM habría sido reportado por el callback en su creación. Los EDR que registran estas callbacks tienen un registro independiente de la lista manipulable.

Estado en 2026

DKOM es menos prevalente que en 2005-2010 gracias a PatchGuard y callbacks. Pero el concepto sigue vivo:

  • Rootkits que modifican estructuras no protegidas por PatchGuard
  • Manipulación de handle tables para ocultar actividad sin ocultar el proceso
  • Técnicas de DKOM en kernel mode combinadas con BYOVD para evadir PatchGuard

Veredicto

DKOM es la técnica que define la disciplina de rootkits de kernel. Entenderla es requisito para análisis de memoria forense (por eso pslist vs psscan es la primera comparación que enseñan en cursos de Volatility). Los papers sobre DKOM son la base teórica que justifica toda la metodología de detección de rootkits en memoria.

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.