RootkitRevealer: guía definitiva para detectar ocultación en Windows

  • Comparación API vs datos crudos para destapar ocultación en archivos y Registro
  • Compatibilidad limitada (XP/2003, 32‑bit) y proyecto discontinuado
  • Opciones clave: -a, -c, -m, -r y ejecución remota con PsExec
  • Interpretación rigurosa de discrepancias y reducción de falsos positivos

herramienta para detectar rootkits en Windows

Si te preocupa la presencia de software capaz de esconderse en tu sistema, RootkitRevealer es uno de esos nombres que siguen saliendo en cualquier conversación técnica. Aunque es una utilidad veterana, su planteamiento sigue siendo didáctico para entender cómo se ocultan los rootkits y cómo descubrir señales de que algo no cuadra. En este artículo tienes una explicación completa, de arriba a abajo, sobre la herramienta, su funcionamiento, opciones y lectura de resultados.

Conviene arrancar con una advertencia: RootkitRevealer se diseñó para Windows XP y Windows Server 2003, en arquitecturas de 32 bits, y ya no se desarrolla. Aun así, su enfoque comparando resultados de la API con lo que hay en disco es una lección útil. Verás sus limitaciones, lo que sí detecta (ejemplos como AFX, Vanquish o HackerDefender) y lo que no (familias como Fu que no ocultan archivos/registro).

Qué es RootkitRevealer y de dónde viene

RootkitRevealer nació en Sysinternals de la mano de Mark Russinovich (con Bryce Cogswell), con una primera publicación fechada el 1 de noviembre de 2006. Es un freeware propietario de Microsoft, compilado en Microsoft C++, de apenas 231 KB, pensado para IA‑32 y disponible en inglés. Su trayectoria quedó marcada por un hito: fue la herramienta que destapó el escándalo del rootkit de Sony BMG asociado a su sistema de protección anticopia.

Microsoft integró Sysinternals y mantuvo el acceso a la utilidad, incluso via Sysinternals Live, con la opción de “Ejecutar ahora” sin descarga. Importante: RootkitRevealer está discontinuado y soportado exclusivamente en Windows XP y Windows Server 2003 (solo 32 bits). Aun así, su documentación, mensajes y metodología siguen sirviendo para comprender cómo rastrear signos de ocultación.

analizador de rootkits en Windows

Qué es un rootkit y por qué cuesta tanto verlo

El término “rootkit” describe técnicas de ocultación usadas por malware (virus, spyware, troyanos…) para pasar desapercibido ante antivirus, antispyware y utilidades de administración. Su objetivo no es solo infectar, sino camuflarse manipulando lo que el sistema “cree” que existe.

Hay varias formas de clasificarlos. Una distinción clave es su persistencia: los persistentes arrancan en cada inicio (guardan componentes en el Registro o el sistema de archivos y se autoejecutan sin intervención del usuario), mientras que los basados en memoria no sobreviven a un reinicio. Esta diferencia determina dónde mirar: si el rastro está en disco/Registro o solo en la sesión actual.

También se separan por el nivel en el que actúan: modo usuario o modo kernel. En modo usuario, un rootkit puede interceptar llamadas como FindFirstFile/FindNextFile para “limpiar” listados de directorios y ocultar archivos propios, o enganchar funciones nativas para tapar claves del Registro o procesos. Los más sofisticados se meten entre las aplicaciones y la API nativa para que cualquier enumeración salga “amañada”.

En modo kernel el panorama empeora: además de interceptar la API nativa dentro del propio kernel, pueden tocar estructuras de datos internas. Un clásico es ocultar un proceso borrándolo de la lista de procesos activos del kernel; así, herramientas como el Administrador de tareas o Process Explorer jamás lo verán. Cuando el atacante controla el kernel, puede oscurecer casi cualquier aspecto del sistema.

Cómo funciona RootkitRevealer

RootkitRevealer no busca firmas; busca incoherencias. Su idea es simple: si un rootkit manipula la API para alterar lo que se ve desde las herramientas, tiene que haber una diferencia con el contenido crudo en disco. Así que la utilidad contrasta la vista de alto nivel (API de Windows) con una lectura de bajo nivel (datos sin procesar de volúmenes FAT/NTFS y archivos de subárbol del Registro).

Ese doble examen destapa “discrepancias”: aquello que la API oculta o presenta de forma distinta frente a lo que verdaderamente está en el disco o en el hive del Registro. Da igual si la manipulación viene de un rootkit de usuario o de kernel; si la API se toca para esconder algo, el contraste puede delatarlo.

Ejemplos reales que delata: claves de servicio/controladores o archivos asociados a un rootkit de renombre como HackerDefender, invisibles a herramientas normales pero presentes cuando se leen directamente los datos crudos. Cuando la API y el almacenamiento no se ponen de acuerdo, saltan las alarmas.

rootkit

¿Puede un rootkit esconderse de RootkitRevealer?

En teoría sí, pero a costa de una complejidad enorme. Para taparse del todo tendría que interceptar también las lecturas “en crudo” que hace RootkitRevealer de los hives del Registro o de los volúmenes, reescribiendo los datos sobre la marcha para fingir que no existen. Eso implica conocer a fondo los formatos de NTFS, FAT y de los archivos de subárbol del Registro, y alterar estructuras sin dejar incoherencias laterales.

Hasta la fecha de su documentación no se veía ese nivel de sofisticación de forma generalizada. Aun así, hay que recordar que un rootkit en modo kernel, por definición, puede controlar prácticamente todo. Por eso conviene no confiar ciegamente en ningún escáner como “milagro universal”.

¿Existe una forma 100% segura de confirmar un rootkit?

Desde dentro de un sistema en ejecución, la respuesta corta es no. Un rootkit de kernel puede comprometer cualquier API, incluso las lecturas de bajo nivel que ejecuta RootkitRevealer. Comparar un análisis en línea con uno fuera de línea (arranque desde un entorno seguro, por ejemplo un sistema en CD) mejora la fiabilidad, pero ni eso es infalible.

La lección que deja RootkitRevealer es clara: no habrá un escáner universal definitivo. Los mejores resultados llegan combinando enfoques (en línea/fuera de línea) e integrando antivirus. La detección moderna descansa en correlacionar múltiples señales y no en una sola herramienta.

Requisitos, versiones y consideraciones previas

Antes de ejecutarlo, necesitas privilegios específicos: Copia de seguridad de archivos y directorios, Cargar controladores y Realizar tareas de mantenimiento de volumen (en Windows XP y superiores). El grupo Administradores los tiene por defecto, así que ejecútalo con esa cuenta para evitar bloqueos.

Para reducir falsos positivos, lo ideal es cerrar aplicaciones y dejar el equipo lo más ocioso posible durante el análisis. RootkitRevealer ya no ofrece una versión clásica de línea de comandos: los autores de malware comenzaron a vigilar el nombre del ejecutable, así que pasó a clonarse con nombres aleatorios y ejecutarse como servicio. Aun así, mantiene opciones por línea de comandos para automatizar un escaneo y volcar resultados en un archivo.

rootkit

Uso manual: lanzar y configurar el análisis

El uso básico es directo: arrancas la utilidad y pulsas “Scan”. Durante el proceso verás el progreso en la parte inferior de la ventana y, al final, un listado de discrepancias. Cuanto menos cambie el sistema mientras analiza, más “limpia” será la señal.

Puedes ajustar algunas opciones importantes: ocultar archivos de metadatos de NTFS (activada por defecto, evita ruido de entradas como $MFT o $Secure) y activar o desactivar el examen del Registro. Si desmarcas el análisis del Registro reducirás el ámbito, pero también la información útil que puedas obtener.

Escaneo automático y opciones por línea de comandos

La herramienta admite ejecución desatendida, con volcado de resultados a fichero local. La sintaxis publicada es: rootkitrevealer outputfile]. Recuerda que el archivo de salida debe ubicarse en un volumen local.

  • -a: ejecuta el análisis y cierra al terminar.
  • -c: da formato de salida CSV.
  • -m: muestra también los archivos de metadatos NTFS.
  • -r: no analiza el Registro.

Si usas -c, el progreso no se muestra y las discrepancias se imprimen en formato CSV para importarlas más fácilmente en una base de datos. También puedes lanzarlo de forma remota con PsExec (de Sysinternals) con un comando del estilo: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log.

Interpretar la salida: qué significan realmente las “discrepancias”

El valor de RootkitRevealer está en saber leer su resultado. Cuando ha detectado familias como HackerDefender, por ejemplo, aparecen claves del Registro de servicios/controladores y archivos propios visibles en el “raw scan” pero invisibles desde la API. Esa desalineación entre ambas vistas es lo que te orienta.

Debes revisar cada discrepancia y ponderar si encaja con un comportamiento legítimo o no. No hay una marca única que “certifique” la infección: se trata de interpretar el contexto y decidir si tiene sentido. Si confirmas un rootkit, busca un procedimiento de desinfección específico y valora la opción más drástica (formateo y reinstalación) si no estás seguro de haber limpiado todo.

Combinaciones de visibilidad y por qué aparecen

El examen del sistema de archivos se apoya en tres fuentes: la API de Windows, la MFT (Master File Table de NTFS) y los índices de directorio en disco. Una discrepancia típica es que un archivo aparezca en una o dos de esas vistas, pero no en todas.

Mensajes como Visible en la API de Windows, pero no en el índice de directorios o MFT, o las variantes intercambiando los elementos, suelen deberse a creaciones/borrados en mitad del escaneo. Por ejemplo, al crear un fichero durante el análisis puedes ver una línea como C:\newfile.txt, con 8 bytes y esa visibilidad “a caballo”.

Detalles prácticos y comportamiento “raro” que en realidad es normal

Cuando Microsoft eliminó la versión clásica de línea de comandos, RootkitRevealer adoptó una estrategia para eludir detecciones por nombre: se duplica con un nombre aleatorio y se ejecuta como servicio. Por ese motivo es posible que, tras lanzarlo, veas ficheros con nombres crípticos apareciendo temporalmente.

En un caso descrito por la comunidad, tras intentos fallidos de ejecución en un sistema moderno, detectores de terceros marcaron archivos residuales como YC.exe o NOWBRTZ.exe, con firmas SHA‑1 antiguas de Microsoft y alguna detección aislada en meta‑escáneres. Es coherente con el modo de operación de RootkitRevealer (copias con nombres aleatorios), no necesariamente con malware. Aun así, si los has borrado y ya no necesitas la herramienta, puedes mantenerlos en cuarentena o eliminarlos de forma segura si estás tranquilo con su origen (descarga legítima de Microsoft) y el resto de señales no apuntan a compromiso; si dudas, consulta cómo detectar y eliminar malware en la carpeta C:\Windows.

Si has llegado hasta aquí, ya tienes una idea clara de qué señales investigar: discrepancias API vs datos crudos, claves con NULL incrustados, tipos y longitudes sospechosas, y ruido legítimo como metadatos NTFS o valores que cambian. La clave no es pulsar “Scan” y ya, sino interpretar con cabeza fría y, si procede, tomar medidas proporcionales al riesgo.