domingo, 8 de marzo de 2009

RegRipper

En la última entrada vimos como en este momento ya es posible ejecutar Volatility y RegRipper de forma combinada, permitiendo así obtener gran cantidad de información relacionada con las claves del registro cargadas en memoria. Ha llegado el momento de analizar la funcionalidad ofrecida por RegRipper como herramienta independiente.

Esta herramienta, desarrollada por Harlan Carvey, permite parsear diferentes claves del registro de forma offline, mostrando los resultados en un formato comprensible y que puede ser integrado de forma sencilla con el resto de informes generados durante una investigación forense de un sistema Windows.

Liberado bajo licencia GPL, RegRipper está escrito en perl, aunque no será necesario disponer de dicho entorno de ejecución dado que Harlan Carvey se ha preocupado de obtener binarios totalmente funcionales en Windows, utilizando para ello la herramienta perl2exe de IndigoStar. También dispone de una interfaz gráfica para lo cual Harlan se ha valido del uso del módulo Win32::GUI. No obstante, si lo nuestro no es la GUI, el paquete también incluye un binario para ejecutarlo desde la línea de comandos.

Nótese que para el desarrollo de RegRipper Harlan Carvey ha utilizado el modulo de perl Parse::Win32Registry, creado por James Macfarlane, y que permite abrir y leer el contenido de las claves de componen el registro de Windows sin necesidad de utilizar para ello las llamadas de la API de Win32; por lo tanto RegRipper puede ejecutarse también en sistemas Linux, al menos en su versión para la línea de comandos, rip.pl.

Ficheros que componen el registro

Recordemos que las diferentes claves que componen el registro de Windows se almacenan en varios ficheros repartidos por todo el sistema en la forma siguiente:

  • HKEY_LOCAL_MACHINE\SAM
    Fichero %SystemRoot%\system32\config\SAM

  • HKEY_LOCAL_MACHINE\Security
    Fichero %SystemRoot%\system32\config\Security

  • HKEY_LOCAL_MACHINE\Software
    Fichero %SystemRoot%\system32\config\Software

  • HKEY_LOCAL_MACHINE\System
    Fichero %SystemRoot%\system32\config\System

  • HKEY_USERS\[User SID]
    Fichero %SystemDrive%\Documents and Settings\[username]\NTUser.dat

  • HKEY_USERS\Default
    Fichero %SystemRoot%\system32\config\default

En el registro de Windows se almacena toda la configuración del sistema, así como las personalizaciones realizadas por los diferentes usuarios del equipo, de ahí la existencia de diferentes ficheros NTUSER.DAT para cada una de las cuentas de usuario que hayan iniciado sesión en algun momento en el sistema.

Uso básico de RegRipper

El primer paso, obviamente, será descargar la aplicación. Para ello accederemos a la siguiente url y descargaremos la última versión disponible (rr_20080909.zip en el momento de escribir estas líneas):

http://regripper.net/RegRipper/RegRipper/rr_20080909.zip

Ahora extraeremos el contenido del paquete descargado en un directorio y lanzaremos el binario rr.exe, con lo que obtendremos el interfaz gráfico de la aplicación:


El primer paso será seleccionar el fichero componente del registro que vamos a analizar. Podremos hacerlo mediante la opción "Open" del menu "File" o pulsando el boton "Browse" situado junto al cuadro de texto "Hive File". En ambos casos buscaremos y seleccionaremos el fichero adecuado en nuestro sistema. Recuérdese que regripper está pensado para analizar ficheros de forma offline, por lo que no podremos seleccionar ninguno de los archivos que pueblan el registro para el sistema en ejecución.

El siguiente paso será especificar la ruta y nombre para el fichero que almacenará el informe resultante del análisis, el cual tendra extensión .txt. Además de este fichero obtendremos, en la misma ruta, otro fichero con un nombre similar pero con la extensión .log, el cual contendrá un breve registro del resultado de la ejecución de RegRipper, incluyendo marcas de tiempo para cada una de las acciones realizadas.

Por último, y mediante el desplegable "Plugin File", seleccionaremos la lista de plugins que serán ejecutados. Las posibilidades son:
  • all: todos los plugins
  • ntuser: plugins para el fichero ntuser.dat
  • sam: plugins para el fichero sam
  • security: plugins para el fichero security
  • software: plugins para el fichero software
  • system: plugins para el fichero system

Podemos ver que plugins están englobados dentro de cada categoría si abrimos el fichero correspondiente que encontraremos en la carpeta plugins, la cual forma parte del contenido de la aplicación. Las líneas que comienzan por el caracter "#" se corresponden con comentarios, por lo que serán ignoradas.

Ahora ya estamos preparados, pulsaremos el botón "Rip It" y observaremos el estado en que se encuentra la ejecución mediante los mensajes que aparecerán en el cuadro de texto multilínea, y que serán los mismos que se almacenarán en el fichero de log. Una vez el programa haya terminado podremos abrir el fichero de informe para analizar tranquilamente los resultados.

RegRipper desde la línea de comandos

La herramienta CLI es el script rip.pl, o su correspondiente binario rip.exe si el sistema no dispone de un entorno de perl instalado. Para obtener un resumen de la funcionalidad ofrecida por el programa así como las opciones admitidas:
rip.exe -h

Supongamos ahora que queremos analizar un fichero NTUSER.DAT que tenemos en el directorio C:\ficheros, utilizando para ello todos los plugins asociados a dicha clave del registro y queremos almacenar el informe resultante en el mismo directorio, con el nombre informe.txt:
rip.exe -r C:\ficheros\NTUSER.DAT -f ntuser > C:\ficheros\informe.txt

Ahora vamos a analizar un fichero SAM, ubicado en C:\ficheros, utilizando únicamente el módulo samparse y mostrando el resultado por pantalla:
rip.exe -r C:\ficheros\SAM -p samparse

Por último vamos a obtener un listado de todos los plugins disponibles, en formato CSV y por lo tanto compatible con Excel, incluyendo la clave del registro sobre la que se aplica y una breve descripción de la funcionalidad ofrecida:
rip.exe -l -c > plugins.csv

El resultado de este último comando nos permitirá generar definiciones de análisis particulares. ¿Qué quiere decir esto? Supongamos que tenemos un fichero "system", en el directorio C:\ficheros, que proviene de un sistema objeto de análisis pero sobre el cual no queremos aplicar todos los plugins disponibles, sino únicamente unos pocos. Para ello generaremos un fichero sin extensión (p.e. mianalisis) en el directorio plugins y completaremos su contenido con la lista de plugins que deseamos ejecutar, uno por linea. Ahora, y mediante el siguiente comando, obtendremos el resultado del analisis por pantalla:
rip.exe -r C:\ficheros\system -f mianalisis

Si utilizamos la version en formato grafico, rr.exe, observaremos como aparece una nueva entrada para "mianalisis" en el desplegable "Plugin File".

Y esto ha sido todo de momento, en breve mas, y mejor, espero.

Addendum 09/03/2009:

El compañero Pedro Sanchez ha publicado una entrada en su blog que bien puede servir para complementar la información recogida en este artículo.