sábado, octubre 31, 2009

Dumphive: Volcar los registros de Windows NT/2000/XP/Vista desde Linux

Ayer me encontré con un problema: Necesitaba extraer el registro de una máquina Windows, que había sido infectada con un virus, y necesitaba hacerlo, sin modificar el disco original. La idea era conectarlo a un USB externo, montar el disco de sólo lectura desde un sistema operativo Linux, puesto que soporta particiones NTFS y extraer el registro de Windows para su posterior análisis.

Los archivos que configuran el registro de Windows están situados en el directorio %WINDIR%\system32\config1. A este directorio un usuario sin los privilegios suficiente (Windows vista, incluso pide credenciales al usuario administrador para poder acceder al mismo). Cuando hemos montado el disco duro en Linux (por ejemplo, voy a suponer que se está montando en el Linux en el directorio /mnt/discoc), no tenemos problemas de permisos, podremos acceder directamente al directorio, /mnt/discoc/Windows/System32/config. Los archivos que definen las diferentes claves del registro son las siguientes, en un sistema Windows Vista.

  • SYSTEM. Corresponde a la rama bajo HKEY_LOCAL_MACHINE\SYSTEM
  • SOFTWARE. Corresponde a la rama bajo HKEY_LOCAL_MACHINE\SOFTWARE.
  • SAM. Corresponde a la rama bajo HKEY_LOCAL_MACHINE\SAM.
  • COMPONENTS. Corresponde a la rama bajo HKEY_LOCAL_MACHINE\COMPONENTS.
  • DEFAULT.Corresponde a la rama bajo HKEY_USERS\.DEFAULT.
Acceder a estos ficheros no se puede desde un sistema Windows ejecutándose, porque abrir los ficheros e impide su copia. Se puede acceder a los mismos, usando por ejemplo, un LiveCD de Linux, montando la partición y copiándolos a un USB, o bien metiendo el disco en un adaptador externo que usamos para conectarlo a otro ordenador. Decir que los ficheros que acaban en .SAV que se encuentran en el mismo directorio,se usan para restaurar el sistema, puesto que contienen la información del registro en el momento que una instalación del sistema operativo se ha llevado a cabo de manera correcta.

Una vez que tenemos estos ficheros, es necesario buscar algún programa que sea capaz de lidiar con el formato no documentado de estos ficheros. Ha habido personas que han hecho ingeniería inversa, y publicado información (por ejemplo The Windows NT Registry File Format by Timothy D. Morgan), y a partir de toda la información que hay disponible en Internet, Markus Stephany, realizó dumphive, un programa que permite analizar los ficheros de registro binarios de Windows y volcar la información en modo texto. Está realizado en pascal, y para compilarlo en Linux (u en otra plataforma Unix) , es necesario tener instalado Free Pascal.Si este es el caso, es fácil compilar el programa y obtener el ejecutable que nos va a servir para analizar los archivos de registro. Una cosa importante: El programa debe de ser compilado en una arquitectura litte endian (Intel). No funciona en una big endian (PowerPC).

Uso de dumphive

Usar el programa es sencillo: Le pasamos cualquiera de los archivos anteriores, y el sistema se encargará de mostrar en formato texto la información contenida en el registro.
dumphive SYSTEM system.reg

El comando anterior analizará todo el fichero de registro SYSTEM y lo volcará en formato .reg al archivo system.ref, que podremos analizar.

Las opciones que tiene son sencillas:

  • -h, muestra la ayuda.
  • -e, salida extendida, no compatible con los archivos de texto de registro (.reg) de Windows. En este caso vuelca la información de las entradas de registro de tipo REG_EXPAND_SZ y REG_MULTI_SZ como cadenas, y además, en el caso de un sistema de Windows NT/2000/XP/Vista, vuelca la información de seguridad y las clases de las claves de registro.

Referencias

  1. Reading Windows Registry from Linux
  2. Cómo recuperar un Registro dañado que impide que Windows XP se inicie
  3. WinReg.txt
  4. The Windows NT Registry File Format by Timothy D. Morgan
  5. dumphive
  6. free pascal

Notas

1 %WINDIR% es un variable de entorno del sistema Windows, que hace referencia al directorio donde está instalado.Por ejemplo, C:\WINDOWS


Technorati Tags: ,,

No hay comentarios: