Categoría: Utilidades de Seguridad
Versión: v1.71
Última actualización: 01/11/2006
Resumen: RootkitRevealer
OS: Cliente: Windows Vista y Superior
Servidor: Windows Server 2008 y Superior
Nano Server: 2016 y Superior:
RootkitRevealer es una utilidad avanzada de detección de rootkits. Se ejecuta en Windows XP (32 bits) y Windows Server 2003 (32 bits), y su resultado enumera las discrepancias de la API del sistema de archivos y del Registro que pueden indicar la presencia de un rootkit en modo usuario o en modo kernel. RootkitRevealer detecta con éxito muchos rootkits persistentes, incluidos AFX, Vanquish y HackerDefender (nota: RootkitRevealer no está diseñado para detectar rootkits como Fu que no intentan ocultar sus archivos o claves de registro). Si lo usa para identificar la presencia de un rootkit, ¡háganoslo saber!
La razón por la que ya no existe una versión de línea de comandos es que los autores de malware han comenzado a apuntar al análisis de RootkitRevealer utilizando su nombre ejecutable. Por lo tanto, hemos actualizado RootkitRevealer para ejecutar su análisis desde una copia de sí mismo con un nombre aleatorio que se ejecuta como un servicio de Windows. Este tipo de ejecución no es propicio para una interfaz de línea de comandos. Tenga en cuenta que puede usar las opciones de la línea de comandos para ejecutar un análisis automático con los resultados registrados en un archivo, que es el equivalente al comportamiento de la versión de la línea de comandos.
El término rootkit se usa para describir los mecanismos y técnicas mediante los cuales el malware, incluidos virus, spyware y troyanos, intentan ocultar su presencia a los bloqueadores de spyware, antivirus y utilidades de administración del sistema. Hay varias clasificaciones de rootkits dependiendo de si el malware sobrevive al reinicio y si se ejecuta en modo usuario o en modo kernel.
Un rootkit persistente es uno asociado con malware que se activa cada vez que se inicia el sistema. Debido a que dicho malware contiene código que debe ejecutarse automáticamente cada vez que se inicia el sistema o cuando un usuario inicia sesión, deben almacenar el código en un almacenamiento persistente, como el Registro o el sistema de archivos, y configurar un método por el cual el código se ejecuta sin la intervención del usuario.
Los rootkits basados en memoria son malware que no tiene un código persistente y, por lo tanto, no sobrevive a un reinicio.
Hay muchos métodos por los cuales los rootkits intentan evadir la detección. Por ejemplo, un rootkit en modo de usuario podría interceptar todas las llamadas a las API FindFirstFile/FindNextFile de Windows, que utilizan las utilidades de exploración del sistema de archivos, incluido Explorer y el símbolo del sistema, para enumerar el contenido de los directorios del sistema de archivos. Cuando una aplicación realiza una lista de directorios que, de otro modo, arrojaría resultados que contienen entradas que identifican los archivos asociados con el rootkit, el rootkit intercepta y modifica la salida para eliminar las entradas.
La API nativa de Windows sirve como interfaz entre los clientes en modo usuario y los servicios en modo kernel y los rootkits en modo usuario más sofisticados interceptan el sistema de archivos, el registro y las funciones de enumeración de procesos de la API nativa. Esto evita que los detectores los detecten cuando comparan los resultados de una enumeración de la API de Windows con los devueltos por una enumeración de la API nativa.
Los rootkits en modo kernel pueden ser incluso más potentes, ya que no solo pueden interceptar la API nativa en modo kernel, sino que también pueden manipular directamente las estructuras de datos en modo kernel. Una técnica común para ocultar la presencia de un proceso de malware es eliminar el proceso de la lista de procesos activos del núcleo. Dado que las API de administración de procesos se basan en el contenido de la lista, el proceso de malware no se mostrará en las herramientas de administración de procesos como el Administrador de tareas o el Explorador de procesos.
Dado que los rootkits persistentes funcionan cambiando los resultados de la API para que la vista del sistema que usa las API difiera de la vista real en el almacenamiento, RootkitRevealer compara los resultados de un análisis del sistema en el nivel más alto con el del nivel más bajo. El nivel más alto es la API de Windows y el nivel más bajo es el contenido sin procesar de un volumen del sistema de archivos o subárbol del Registro (un archivo subárbol es el formato de almacenamiento en disco del Registro). Por lo tanto, RootkitRevealer considerará los rootkits, ya sea en modo de usuario o en modo kernel, que manipulan la API de Windows o la API nativa para eliminar su presencia de una lista de directorios, como una discrepancia entre la información devuelta por la API de Windows y la vista. en el análisis sin formato de las estructuras del sistema de archivos de un volumen FAT o NTFS.
En teoría, es posible que un rootkit se oculte de RootkitRevealer. Hacerlo requeriría interceptar las lecturas de RootkitRevealer de los datos de la sección del Registro o los datos del sistema de archivos y cambiar el contenido de los datos de modo que los datos o archivos del Registro del rootkit no estén presentes. Sin embargo, esto requeriría un nivel de sofisticación que no se ha visto en los rootkits hasta la fecha. Los cambios en los datos requerirían un conocimiento profundo de los formatos de subárbol NTFS, FAT y Registry, además de la capacidad de cambiar las estructuras de datos de modo que oculten el rootkit, pero no causen estructuras incoherentes o no válidas o discrepancias de efectos secundarios que serían marcado por RootkitRevealer.
En general, no desde dentro de un sistema en ejecución. Un rootkit en modo kernel puede controlar cualquier aspecto del comportamiento de un sistema, por lo que la información devuelta por cualquier API, incluidas las lecturas sin procesar de la sección del Registro y los datos del sistema de archivos realizados por RootkitRevealer, pueden verse comprometidas. Si bien comparar un análisis en línea de un sistema y un análisis fuera de línea desde un entorno seguro, como un arranque en una instalación de sistema operativo basada en CD, es más confiable, los rootkits pueden apuntar a tales herramientas para evadir la detección incluso por parte de ellos.
La conclusión es que nunca habrá un escáner universal de rootkits, pero los escáneres más potentes serán escáneres de comparación en línea/fuera de línea que se integren con el antivirus.
RootkitRevealer requiere que la cuenta desde la que se ejecuta tenga asignados los privilegios de copia de seguridad de archivos y directorios, carga de controladores y realización de tareas de mantenimiento de volumen (en Windows XP y superior). Al grupo Administradores se le asignan estos privilegios de forma predeterminada. Para minimizar los falsos positivos, ejecute RootkitRevealer en un sistema inactivo.
Para obtener los mejores resultados, cierre todas las aplicaciones y mantenga el sistema inactivo durante el proceso de análisis de RootkitRevealer.
Si tiene preguntas o problemas, visite el foro Sysinternals RootkitRevealer Forum.
Para escanear un sistema, inícielo en el sistema y presione el botón Escanear. RootkitRevealer escanea el sistema informando sus acciones en un área de estado en la parte inferior de su ventana y notando discrepancias en la lista de salida. Las opciones que puedes configurar:
RootkitRevealer admite varias opciones para sistemas de escaneo automático:
rootkitrevealer [-a [-c] [-m] [-r] outputfile]
Parámetro | Descripción |
---|---|
-a | Escanear automáticamente y salir cuando haya terminado. |
-c | Formato de salida como CSV. |
-m | Mostrar archivos de metadatos NTFS. |
-r | No escanear el Registro. |
Tenga en cuenta que la ubicación de salida del archivo debe estar en un volumen local.
Si especifica la opción -c, no informa sobre el progreso y las discrepancias se imprimen en formato CSV para importarlas fácilmente a una base de datos. Puede realizar escaneos de sistemas remotos ejecutándolos con la utilidad Sysinternals PsExec usando una línea de comando como la siguiente:
psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log
Esta es una captura de pantalla de RootkitRevealer detectando la presencia del popular rootkit HackerDefender. Las discrepancias de las claves del Registro muestran que las claves del Registro que almacenan el controlador del dispositivo y la configuración del servicio de HackerDefender no son visibles para la API de Windows, pero están presentes en el escaneo sin procesar de los datos de la sección del Registro. Del mismo modo, los archivos asociados con HackerDefender no son visibles para los análisis de directorios de la API de Windows, pero están presentes en el análisis de los datos del sistema de archivos sin procesar.
Debe examinar todas las discrepancias y determinar la probabilidad de que indiquen la presencia de un rootkit. Desafortunadamente, no existe una forma definitiva de determinar, según el resultado, si hay un rootkit presente, pero debe examinar todas las discrepancias informadas para asegurarse de que sean explicables. Si determina que tiene un rootkit instalado, busque en la web las instrucciones de eliminación. Si no está seguro de cómo eliminar un rootkit, debe volver a formatear el disco duro del sistema y reinstalar Windows.
Además de la información a continuación sobre posibles discrepancias de RootkitRevealer, el foro de RootkitRevealer en Sysinternals analiza los rootkits detectados y los falsos positivos específicos.
Estas discrepancias son las que presentan la mayoría de los rootkits; sin embargo, si no ha marcado Ocultar archivos de metadatos NTFS, debe esperar ver una cantidad de tales entradas en cualquier volumen NTFS, ya que NTFS oculta sus archivos de metadatos, como $MFT y $Secure, de la API de Windows. Los archivos de metadatos presentes en los volúmenes NTFS varían según la versión de NTFS y las características de NTFS que se han habilitado en el volumen. También existen productos antivirus, como Kaspersky Antivirus, que utilizan técnicas de rootkit para ocultar los datos que almacenan en flujos de datos alternativos de NTFS. Si está ejecutando un detector de virus de este tipo, verá una discrepancia Oculto de la API de Windows para un flujo de datos alternativo en cada archivo NTFS. RootkitRevealer no admite filtros de salida porque los rootkits pueden aprovechar cualquier filtrado. Finalmente, si se elimina un archivo durante un escaneo, también puede ver esta discrepancia.
Esta es una lista de archivos de metadatos NTFS definidos a partir de Windows Server 2003:
RootkitRevealer nunca debe reportar esta discrepancia ya que utiliza mecanismos que le permiten acceder a cualquier archivo, directorio o clave de registro en un sistema.
Visible en la API de Windows, índice de directorio, pero no en MFT.
Visible en la API de Windows, pero no en MFT ni en el índice de directorio.
Visible en la API de Windows, MFT, pero no en el índice del directorio.
Visible en el índice del directorio, pero no en la API de Windows ni en la MFT.
Un análisis del sistema de archivos consta de tres componentes: la API de Windows, la tabla maestra de archivos (MFT) de NTFS y las estructuras de índice de directorios en disco de NTFS. Estas discrepancias indican que un archivo aparece solo en uno o dos de los escaneos. Una razón común es que un archivo se crea o se elimina durante las exploraciones. Este es un ejemplo del informe de discrepancia de RootkitRevealer para un archivo creado durante el escaneo:
C:\nuevoarchivo.txt
1/3/2005 17:26
8 bytes
Visible en la API de Windows, pero no en MFT ni en el índice de directorio.
La longitud de la API de Windows no es coherente con los datos de subárbol sin procesar.
Los rootkits pueden intentar ocultarse tergiversando el tamaño de un valor del Registro para que su contenido no sea visible para la API de Windows. Debe examinar cualquier discrepancia de este tipo, aunque también puede aparecer como resultado de los valores del Registro que cambian durante una exploración.
Tipo de discrepancia entre la API de Windows y los datos de colmena sin procesar.
Los valores de registro tienen un tipo, como DWORD y REG_SZ, y esta discrepancia señala que el tipo de un valor informado a través de la API de Windows difiere del de los datos de subárbol sin procesar. Un rootkit puede enmascarar sus datos almacenándolos como un valor REG_BINARY, por ejemplo, y haciendo que la API de Windows crea que es un valor REG_SZ; si almacena un 0 al comienzo de los datos, la API de Windows no podrá acceder a los datos posteriores.
El nombre de la clave contiene valores nulos incrustados.
La API de Windows trata los nombres de clave como cadenas terminadas en nulo, mientras que el núcleo los trata como cadenas contadas. Por lo tanto, es posible crear claves de registro que sean visibles para el sistema operativo, pero solo parcialmente visibles para herramientas de registro como Regedit. El código de muestra de Reghide en Sysinternals demuestra esta técnica, que es utilizada tanto por el malware como por los rootkits para ocultar los datos del Registro. Utilice la utilidad Sysinternals RegDelNull para eliminar claves con valores nulos incrustados.
Falta de coincidencia de datos entre la API de Windows y los datos de colmena sin procesar.
Esta discrepancia se producirá si se actualiza un valor del Registro mientras se realiza la exploración del Registro. Los valores que cambian con frecuencia incluyen marcas de tiempo como el valor de tiempo de actividad de Microsoft SQL Server, que se muestra a continuación, y los valores de “último análisis” del detector de virus. Debe investigar cualquier valor informado para asegurarse de que sea un valor válido del Registro de la aplicación o del sistema.
HKLM\SOFTWARE\Microsoft\Microsoft SQL
Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc
3/1/2005 4:33 PM
8 bytes
Los siguientes sitios web y libros son fuentes de más información sobre rootkits:
Sony, Rootkits and Digital Rights Management Gone Too Far (Sony, los rootkits y la gestión de derechos digitales han ido demasiado lejos)
Lea la entrada de blog de Mark sobre su descubrimiento y análisis de un rootkit de Sony en una de sus computadoras.
Unearthing Rootkits (Descubriendo rootkits)
El artículo de junio de la revista Windows IT Pro de Mark proporciona una descripción general de las tecnologías de rootkit y cómo funciona RootkitRevealer.
Rootkits: Subverting the Windows Kernel (Rootkits: subvirtiendo el kernel de Windows)
Este libro de Greg Hoglund y Jamie Butler es el tratamiento más completo disponible sobre los rootkits.
www.phrack.org
Este sitio almacena el archivo de Phrack, una revista orientada a los crackers donde los desarrolladores discuten fallas en productos relacionados con la seguridad, técnicas de rootkit y otros trucos de malware.
The Art of Computer Virus Research and Defense El arte de la investigación y defensa contra virus informáticos, por Peter Szor
Malware: Fighting Malicious Code Malware: lucha contra el código malicioso, por Ed Skoudis y Lenny Zeltser
Windows Internals, 4th Edition, por Mark Russinovich y Dave Solomon (el libro no habla sobre rootkits, pero comprender la arquitectura de Windows es útil para comprender los rootkits).
Si encuentras algún error o aporte a la información proporcionada por favor dirígela a soporte@ehack.mx
RootkitRevealer: Imágenes cortesía by Nala Systems
RootkitRevealer by Roberto C. González traducido y ampliado para Ethical Hack algunas partes se adaptan directamente del sitio SysInternals de Microsoft ©2022, Ethical Hack, Todos los derechos reservados sobre la traducción. ©2022, Ethical Hack, Todos los derechos reservados sobre el contenido propio.
El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…
En esta entrada te presento 24 de las listas negras más comunes que los servidores…
ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…
WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…
Whois realiza el registro de registro para el nombre de dominio o la dirección IP…
VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…