Hooking Nirvana: el paper sobre interceptación en Windows
Análisis del paper Hooking Nirvana: técnicas de hooking en Windows, desde IAT hooking hasta inline hooks y SSDT hooks. Fundamentos de cómo rootkits y EDR interceptan funciones.
Contexto histórico
"Hooking Nirvana" es un término que la comunidad de security research usa para referirse a los papers y presentaciones seminales sobre técnicas de interceptación de funciones en Windows. El concepto abarca múltiples trabajos de principios y mediados de los 2000 que documentaron cómo modificar el flujo de ejecución de funciones del sistema operativo.
El hooking es la técnica fundamental que comparten rootkits (para ocultar actividad) y productos de seguridad (para monitorizar actividad). Entender hooking es entender la capa más profunda de la interacción entre malware y defensas.
Técnicas de hooking documentadas
IAT Hooking (Import Address Table)
La técnica más simple. Cada ejecutable PE tiene una IAT que contiene punteros a las funciones importadas. Modificar un puntero en la IAT redirige las llamadas a esa función hacia código controlado por el atacante (o el EDR).
Cómo funciona:
- Localizar la IAT del proceso objetivo
- Encontrar la entrada de la función a hookear (ej:
CreateFileW) - Reemplazar el puntero con la dirección de la función hook
- La función hook hace su trabajo (logging, filtrado) y opcionalmente llama a la función original
Detección: comparar los punteros de la IAT con las direcciones reales de las funciones en la DLL. Si no coinciden, hay un hook.
Estado 2026: técnica básica, fácil de detectar y bypassear. Usada principalmente por malware simple y como técnica educativa.
Inline Hooking
Modificar los primeros bytes de una función para insertar un JMP a la función hook. Más potente que IAT hooking porque funciona independientemente de cómo se llame a la función.
Cómo funciona:
- Guardar los primeros bytes de la función original (trampoline)
- Sobrescribir con un JMP a la función hook
- La función hook ejecuta su lógica
- Para llamar a la original: ejecutar los bytes guardados + JMP al resto de la función
Detección: comparar los primeros bytes de funciones críticas con los bytes originales en disco. Los EDR modernos usan esta técnica para detectar unhooking.
Estado 2026: es la técnica que los EDR usan para monitorizar ntdll.dll. Y la que el malware intenta evadir con unhooking, direct syscalls o fresh copy de ntdll.
SSDT Hooking (System Service Descriptor Table)
Técnica de kernel mode. La SSDT es una tabla que mapea syscall numbers a funciones del kernel. Hookear una entrada de la SSDT permite interceptar cualquier llamada al sistema.
Cómo funciona:
- Localizar la SSDT en memoria del kernel
- Reemplazar el puntero de la función objetivo con un puntero a la función hook
- Toda llamada al syscall pasa primero por el hook
Detección: comparar las entradas de la SSDT con los valores esperados. Herramientas como GMER y Volatility detectan SSDT hooks.
Estado 2026: PatchGuard (KPP) de Microsoft previene la modificación de la SSDT en Windows 64-bit. Los rootkits modernos buscan alternativas. Los EDR legítimos usan kernel callbacks en lugar de SSDT hooks.
IRP Hooking
Interceptar I/O Request Packets en la stack de drivers. Permite filtrar operaciones de I/O: acceso a archivos, operaciones de red, operaciones de registro.
Cómo funciona:
- Localizar el driver objetivo (ej: filesystem driver)
- Reemplazar los punteros de las dispatch routines en el DRIVER_OBJECT
- Las operaciones de I/O pasan por el hook antes de llegar al driver real
Estado 2026: los minifilter drivers son la alternativa legítima y soportada por Microsoft. Los rootkits que hookean IRPs directamente son detectados por PatchGuard y herramientas forenses.
Relevancia en 2026
Para entender EDR
Los EDR modernos funcionan mediante hooking de ntdll.dll (inline hooks en userland) + kernel callbacks (registrados legítimamente vía APIs del kernel). Entender hooking = entender cómo tu EDR ve lo que ve.
Para entender evasión
Las técnicas de evasión modernas (unhooking, direct syscalls, indirect syscalls) son contramedidas específicas contra el hooking de EDR. Sin entender el hook, no entiendes por qué el bypass funciona.
Para análisis forense
Volatility y otros tools de memoria forense detectan hooks como indicador de rootkit. Los plugins ssdt, idt, apihooks buscan exactamente las técnicas documentadas en estos papers.
La evolución: de hooks a callbacks
La industria ha evolucionado de hooking (modificar código existente) a callbacks (registrar funciones que el SO llama). Los callbacks son más estables, soportados por Microsoft y no requieren parchear código.
| Técnica | Uso actual | Quién la usa |
|---|---|---|
| IAT hooking | Obsoleto | Malware simple |
| Inline hooking (userland) | Activo | EDR (ntdll hooks) |
| SSDT hooking | Bloqueado | PatchGuard previene |
| Kernel callbacks | Estándar | EDR legítimos |
| Minifilter drivers | Estándar | EDR, AV, DLP |
Veredicto
Hooking es el fundamento de toda la batalla entre malware y defensas en Windows. Los papers sobre hooking son lectura obligatoria para cualquiera que quiera entender rootkits, EDR o técnicas de evasión modernas. Los hooks han evolucionado hacia callbacks, pero el concepto fundamental (interceptar el flujo de ejecución) sigue siendo la base de toda la seguridad de endpoints.
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.