jueves, 16 de octubre de 2014

Usando RegRipper para obtener información del registro SAM

En el principio de este blog hablamos acerca de que aprenderíamos a utilizar herramientas libres, EnCase es muchas cosas menos libre, aunque debo confesarlo soy un asiduo (y certificado) usuario de EnCase.

Sin embargo y fieles a lo que queremos inculcar entre la comunidad de DFIR en México, es el uso de herramientas libres veamos como analizar el archivo SAM con RegRipper para los que no lo hayan utilizado RegRipper es una herramienta sumamente poderosa creada por Harlan Carvey y escrita en perl para poder analizar de forma profunda el registro de windows, conforme escribamos más posts acerca de IR iremos utilizando mas esta herramienta.

Hoy utilizaremos un módulo llamado samparse.pl o sam esto nos va a permitir ver mucha información de la que tratamos en el post pasado.

Para poder analizar mi llave registro comenzare por montar mi imagen E01 en SIFT , se que este no es un post en donde estamos aprendiendo a montar imágenes (lo trataremos después) pero nos sirve de repaso  y  les mostrare con que opciones acostumbro a montar mis imágenes, antes que nada y como recordatorio, tengan en mente que no podemos montar directamente un archivo de imagen E01 por lo que primero tenemos que convertir de formato E01 a raw, se preguntaran porque sigo utilizando E01 y no Raw para montarlo de forma directa, como mencione utilizo mucho EnCase ya que en muchas de las empresas de IP es un estándar, aparte de otras razones que ya discutiremos en otro post (donde abordaremos los diferentes tipos de archivos de imágenes que existen).

Para convertir mi imagen  utilizare el siguiente comando:


root: ~# mount_ewf.py <nombre de la imagen>.E01 /mnt/ewf/ 

Una vez convertida mi imagen, esta se encuentra en /mnt/ewf/  (Se debió haber creado el directorio ewf primeramente) entonces cambio mi ubicacion al directorio ewf con cd /mnt/ewf  y monto mi imagen  utilizando el siguiente comando :

root:~# mount -o ro,loop,show_sys_files,streams_interface=windows /mnt/ewf/<nombre de la imagen raw>  /mnt/windows_mount 

Una de las opciones que me gustaría discutir es show_file_sys y streams_interface=windows y los beneficios de utilizarlas al montar una imagen;

  • Show_sys_files: esta opción muestra los metafiles de los listados de directorios, es decir vamos a poder ver archivos utilizados para almacenar la estructura de NTFS o FAT que normalmente no estarían visibles por ejemplo la $MFT.
  • Streams_interface=windows: esta opción controla como el usuario puede acceder a Alternate Data Streams (ADS) al utilizar la opción =windows les va a permitir visualizar los archivos como comunmente se verían en windows.


Para hacerlo mas claro en mi maquina virtual de SIFT tengo activada la opcion de  "Compartir Carpetas" como "permitir siempre" con lo cual puedo ingresar a mi SIFT desde mi Windows Host con \\siftworkstation:


Puedo ir a la imagen que monté y ver las carpetas y archivos como normalmente los vería en windows y tengo acceso a los archivos que antes estaban protegidos.


Con mi imagen ya montada entonces ahora puedo navegar en mi SIFT hacia donde se encuentra el registro de sam que deseo parsear:

cd /mnt/windows_mount/WINDOWS/system32/config/

Y entonces le doy un comando ls -la, esto último únicamente para ver los archivos y poder visualizar el archivo... todos lo hacemos aunque sepamos que esta ahí acéptenlo! :P



Una vez en esa carpeta podemos correr el plugin de RegRipper, y aquí hay algunas opciones a considerar en cuanto a la nomenclatura del comando que utilizaremos:

root:~# rip.pl  -r SAM -p samparse > /cases/testsam/saminfo.txt

rip.pl = invocamos la aplicación

  • -r =  indicamos la llave del registro que queremos analizar
  • -p= indica un único modulo a utilizar contra la llave del registro seleccionada, si quisiéramos utilizar un plugin general para llave del registro utilizaríamos la variable –f (ntuser, sam, system, software, security, usrclass)
  • >: output de la ejecución del plugin contra la llave del registro, RegRipper como muchas herramientas en Linux no pueden sobre escribir, así que si por alguna razón se equivocan al introducir el comando el archivo se va a generar  de todas formas, así que asegúrense de o eliminar el archivo resultante o darle otro nombre único.

Una vez finalizado el proceso, esto es lo que esperaríamos ver: 


Reggripper nos permite parsear toda una llave del registro y obtener información mas concreta, eso depende del plugin que estemos utilizando. Por ejemplo si yo quisiera obtener unicamente los usuarios de esta maquina mi comando seria el siguiente:


Al ejecutarlo entonces vería que el output es únicamente información de los usuarios y nada mas.

Esto es replicable para cualquier sub-llave del registro, aqui pueden encontrar una lista bastante completa de los plugins para pasear información más especifica de las llaves del registro, así si pensaban que RegRipper parseaba unicamente información general pueden intentar con alguna de estas opciones.

Como pueden ver es mucha de la información que hemos discutido, claro no tan a bajo nivel pero es más para saber de dónde sale la información que nuestras herramientas nos dan, finalmente cuando estamos enfrentado un incidente, el archivo SAM nos puede dar información crucial de las cuentas de los usuarios en un sistema, sobre todo si hemos identificado una cuenta que no formaba parte del sistema original, o bien si una cuenta ya existente está teniendo comportamiento sospechoso.

Hay mucha información que RegRipper nos permite obtener, es cosa de aprendernos los plugins mas utilizados, existe también un RR en GUI para windows por si los comandos no son lo suyo lo pueden descargar de aqui

Espero que este post les haya gustado era mas un complemento del post pasado mas que un tema nuevo. 

Ya saben que cualquier duda o comentario lo pueden dejar aqui o escribirnos a bugbu5t3r5@gmail.com o seguirnos en Twitter.

Happy Busting!

No hay comentarios.:

Publicar un comentario

Déjanos tu opinion