Analisis del registro de windows – RegRipper – Part II

En el post anterior empezamos a conocer y dar los primeros pasos con RegRipper, instalación, manejo básico, etc. en este post voy a intentar que se conozca un poco mejor esta herramienta y su flexibilidad para nuestra labor de forense .

En el anterior post hablábamos de rip.pl o rip.exe antes de empezar hoy quiero que veáis el rr.exe, que es básicamente un gui para rip que nos automatiza un poco las cosas, veamos que aspecto tiene:

 

Como podéis ver, su uso es bastante intuitivo… Seleccionar el HIVE, seleccionar la ruta y archivo de salida de la ejecución, y el perfil que queremos utilizar… veamos un ejemplo claro.

Si os fijáis en el resultado, podemos ver que nos ha dejado el reporte en F:\reportessoftwareall.txt y además ha creado un reportessoftwareall.log (donde nos muestra el log de la ejecución de los plugins y si ha habido algún error, etc.), además se observa que ha aplicado todos los plugins que se pueden aplicar a ese Hive, previa selección mía claro esta.

¿Podemos modificar ese profile?

Pues si, en el directorio de RegRipper hay otro directorio que se llama plugins y dentro encontraremos archivos sin extensión con el nombre de cada profile, en ellos se ve todos los plugins que ejecuta dicho profile. Bien podemos eliminar los plugins que no queramos ejecutar o ponerles una # delante para que parezcan un comentario y listo. Os he querido comentar este detalle porque si bien es cierto que el RR.exe nos automatiza el trabajo, tal vez no queráis ejecutarle todos los plugins a la vez, y solo necesitéis unos cuantos. Este método es el más sencillo, aunque otra forma de automatizar la ejecución de un conjunto de plugins sería creando un script y es un poco, solo un poco más engorroso, pero igualmente válido. Os adjunto un pantallazo del aspecto que tiene estos archivos.

Volvamos a nuestro rip.pl, hay una opción del rip.pl que nos permite también la ejecución de todos los plugins que se le pueden aplicar a un Hive, es la opción -f y utiliza los mismos archivos que RR.exe pero desde línea de comandos.

Como podéis ver, la herramienta es realmente flexible y práctica. A partir de aquí iba a poner unos ejemplo de ejecución de unos cuantos plugins, pero veo que en Internet hay ingentes cantidades de información al respecto, desde la web del autor con casos prácticos y he preferido mostraros un poco más el cómo funciona, que el mostraros X ejemplos de uso,  información que podéis encontrar fácilmente con lo que ya os he explicado o con una búsqueda sencilla en tito google. Como siempre la práctica hace al maestro y es evidente que con esta herramienta si no sabéis como funciona, como está estructurada y que opciones tiene, no podréis validarla en lab y comprobar si se ajusta a vuestras necesidades.

En mi caso, es una aplicación que no falta en mi caja de herramientas.

Espero que os guste el post. Como siempre los comentarios son siempre bien recibidos.

Analisis del registro de windows – RegRipper – Part I

Hoy toca hablar de RegRipper, aunque antes… deberíamos hablar del registro de windows, pero como hay mucha información sobre el mismo por internet y no me gusta repertir lo mismo una y otra vez, os agrego un par de links para los que no sepáis qué es el registro de windows y como está estructurado os vayáis haciendo a la idea.

En la Wikipedia: https://es.wikipedia.org/wiki/Registro_de_Windows

En MS:  https://support.microsoft.com/es-es/kb/256986

Maxim Suhanov, 2015-2016:  https://github.com/msuhanov/regf/blob/master/Windows%20registry%20file%20format%20specification.md

RegRipper, es una herramienta extensible con un gran número de plugins creado por Harlan Carvey aka @keydet89 en twitter y con esta más que recomendable web windowsir.blogspot.com  sus herramientas están desarrolladas en perl, aunque su creador también ha creado binarios con perl2exe para facilitarnos un poco la vida, gracias Harlan.

¿Y para que sirven sus herramientas?

PARA ANALIZAR EL REGISTRO DE WINDOWS, nos permitirá parsear el registro de windows y extraer información muy valiosa a la hora de realizar un análisis forense de un equipo.

Podremos analizar el registro offline, o sea, desde una imagen creada con anterioridad, existen otras herramientas, pero personalmente esta me encanta. Como he comentado anteriormente podemos ejecutar el script en perl o con los binarios, nos podremos descargar ambas desde aqui:

https://github.com/keydet89?tab=repositories  

Si quieres utilizar el script en perl, recomiendo que instales el activeperl y posteriormente instales el módulo en la que se basa gran parte del trabajo de RegRipper ( Parse::Win32Registry  de James Macfarlane), para instalarlo desde un CMD ejecutaremos lo siguiente:

Automáticamente se instalará el módulo y podremos empezar a trabajar, aunque también tenemos el binario rip.exe y rr.exe de momento voy a trabajar con la herramienta en perl. Antes de empezar, como recordatorio: Extraed los Hive y el ntuser.dat de sus correspondientes  ubicaciones en caso de que tengais encendido el equipo, con FTK los podréis extraer, ubicaciones habituales:

c:\windows\system32\config
c:\users\nombredeusuario\ntuser.dat

Empecemos a ver que nos permite hacer esta herramienta:

Lo primero, como siempre, recomiendo leer la ayuda que nos ofrece la herramienta para saber que opciones tenemos.

 

mmmmm, con -r elegimos el HIVE con el que queremos trabajar y con -p le pasamos el plugin a utilizar, bien, y además puedo sacar un listado de todos los plugins uepaaaaaa!!!!! veamos que pasa

Con la opción -l nos muestra todos los plugins, y el hive relacionado entre corches, además de una descripción. Vale, pero estaría bien poder exportarlo en algún tipo de formato más manejable como un csv, para eso tenemos la opción -c que con -l podemos redireccionar la salida a un .csv y posteriormente abrirlo desde excel, para no hacer demasiado extenso este post solo os pongo el comando en cuestión.

Así es como se verá el contenido desde la línea de comandos:

 

Y el comando para escribirlo en un archivo es este:

También podemos buscar un plugin en concreto con el | find “nombre plugin” ejemplo:

Y ahora podemos ejecutar rip.pl con el plugin  y el hive apropiado y tachan …. Obtenemos el Product name y la fecha de instalación….

Un momento, para que buscas el nombre del plugin en el listado, ¿me he perdido algo?

Sencillo, cuidado con el plugin que seleccionáis ya que nos podemos encontrar distintas versiones del mismo dependiendo del sistema operativo en cuestión, por ejemplo:

Ups, 2 versiones del auditpol, una para windows xp y otra para el resto…. bueno esto se tendrá que tener en cuenta para evitar confusiones y de momento hasta aquí el post de hoy, espero que os haya gustado esta primera parte,  continuaremos otro día y siempre intentado ser mejor.

Recuperando las contraseñas de las wifi a las que nos hemos conectado – NETSH

Hola a todos!

Este post es un TIP rápido que puede ser útil a muchos, ya sea a nivel forense, nivel de pentester o incluso para los pobres sysadmins, pero antes de empezar como siempre os recomiendo leer nuestra renuncia de responsabilidad.

Escenario: Tenemos acceso físico a un equipo windows y necesitamos por cualquier motivo recuperar a que WIFIs se ha conectado el equipo, obteniendo el SSID, configuración de seguridad de la mismo el tipo de red, contraseña de acceso, etc.

Bueno, llegados a este punto y de forma muy rápida os comento que con un triste comando obtendremos toda esta información, cosa que para algunos nos va genial 🙂 y para otros puede ser un marrón….

netshwlanshowprofiles

Evidentemente, he ocultado un poco la información para proteger dichas redes, pero os podéis hacer una idea con el resultado, con el comando anterior veremos todos los perfiles de conexión realizados con la wifi del equipo en cuestión.

Genial @fpalenzuela pero no veo la información que me has prometido.

Efectivamente, seguimos …..

netshwlanprofiles2

El parámetro name=”*” es para que nos muestre TODOS los perfiles y el parámetro key=clear es autoexplicativo.

Bueno, ya tenemos todos los datos de todas las redes wifi , ya que con el comando ejecutado nos aparecerá en pantalla todas las redes, con todas las configuraciones y contraseñas, para facilitar la lectura de todos los resultados podemos redirigir la salida de todos los datos a un archivo con el siguiente comando.

c:\>netsh wlan show profiles name=”*” key=clear > salidawlans.txt

 

BONUS…

Hay otro comando que os dejo aquí tambien, que os dará otra info… incluyendo las conexiones realizadas, abrid una “cmd” en modo administrador y …..

wlanreport

El parámetro duration=”64″ equivale a que nos muestre la información de los últimos 64 días….

Echad un vistazo a la info que os genera este comando…..     conocer las herramientas que disponemos en nuestros sistemas, puede ser una grata sorpresa….  os invito a investigar todo lo que se puede hacer con este comando… NETSH una pequeña navaja suiza disponible en windows… y olvidada por muchos…

Espero que os sea de utilidad.       🙂

— Como siempre los comentarios son siempre bien recibidos… nos gusta tener feedback… —

 

Análisis forense en Windows. Sistema de archivos NTFS

Introducción

Hasta aquí hemos iniciado labores forenses, hemos empezado a utilizar herramientas de la suite Sleuthkit y hemos trabajado sobre un sistema Windows. Antes de profundizar más, debemos entender bien cómo funciona el sistema de archivos sobre el que vamos a trabajar la gran mayoría de las veces, debemos entender que corre por debajo de las herramientas, que hacen las herramientas, en que se basa su funcionamiento y esto, os lo aseguro, en algún momento os salvará de una situación comprometida. Vamos a aprender algo del sistema de archivos NTFS que usan por defecto los sistemas modernos Windows.

Obviamente, es imposible explicar en un solo post todo sobre NTFS, por ello, lo primero que debo decir es que esto va a ser una introducción. Más adelante, según vayamos avanzando iremos profundizando más y más en cómo funciona, de momento tan solo quiero explicar cuatro cosillas breves para ayudar en esos primeros pasos tambaleantes que damos todos. AVISO: Este post va a ser más aburrido que los anteriores, pero es un paso que debemos dar si queremos llegar a ser realmente buenos. Mas tarde, llegaremos a Ext3-4, Reiser, ZFS, os lo prometo.

Pero hoy toca Windows, la vida es dura chavales.

 

Historia NTFS

Para comprender el presente, dicen los legos que hay que remitirse al pasado y desde ahí comprender el presente. Es lo que voy a hacer ahora, porque seguro que todos nos hemos  preguntado de donde viene este sistema ¿Verdad?

NTFS se basa, proviene si lo queréis decir así,  del sistema de archivos HPFS (Sistema de Archivos de Altas Prestaciones, es decir un sistema de archivos de alto rendimiento), que fue creado por Microsoft con el sistema operativo de IBM OS/2. Se caracterizaba por permitir nombres largos, metadatos e información de seguridad, así como de autocomprobación e información estructural. Además, aunque poseía tabla de archivos (como FAT), ésta se encontraba posicionada físicamente en el centro de la partición, de tal manera que redundaba en menores tiempos de acceso a la hora de leerla/escribirla.

 

Vale, esto esta genial, pero ¿Qué es NTFS?

NTFS, amigos lectores, significa  “New Technology File System” o Sistema de Archivos de Nueva Tecnología y es  el último tipo de archivos soportados por sistemas Windows. Es un sistema de archivos de alto desempeño que (en teoría) se repara a sí mismo y aporta diversas características avanzadas como seguridad a nivel de archivos, compresión, y auditoría.

Aporta seguridad para los datos, ya que tiene la capacidad de cifrar y descifrar todo tipo de datos, archivos y carpetas. Asimismo usa un conjunto de caracteres Unicode de 16 bits para los archivos y carpetas. Se supone también, que es un sistema tolerante a fallos. Este sistema puede examinar el archivo de registros (logs) y utilizarlo para restaurar el disco hacia un estado suficientemente sólido con una pérdida mínima de datos.

Los volúmenes que contienen NTFS, tienen dentro de si una “Master File Table” (MFT) o Tabla Maestra de Archivos. La cual contiene un registro para cada archivo y carpeta sobre el volumen. Los primeros bytes de la tabla están reservadas para los metadatos utilizados en implementar y mantener la estructura del sistema de archivos. Estos metadatos son almacenados en un conjunto de archivos del sistema.

Veamos cuáles son sus diversas partes y funciones tomando como ejemplo nuestro ya viejo conocido Windows 7 Pro de 64 bits.

Típica imagen de un sistema de archivos NTFS

Captura_ftk

A continuación os voy a contar la función de cada uno de los componentes principales dentro de un sistema de archivos NTFS típico y tópico. Por orden en la imagen:

  1. $AttrDef – Lista que  contiene los atributos de los archivos.
  2. $BadClus – Esto contiene una lista de clústers o sectores que tienen errores irrecuperables.
  3. $Bitmap – Lista que muestra la disponibilidad y uso de los clústers.
  4. $Boot – Se utiliza para montar el volumen NTFS durante el proceso de “bootstrap”.
  5. $I30: – Papelera, índice de elementos borrados.
  6. $LogFile – Las transacciones previas son listadas y almacenadas para furutas posibles restauraciones.
  7. $MFT – Archivo de registro base para un volumen NTFS, muy importante para análisis forense.
  8. $MftMirr – Los primeros cuatro registros del MFT son almacenados aquí para posibles restauraciones en caso de fallo o corrupción de la MFT primaria.
  9. $Secure – Lista de control de acceso, tiene descriptores de seguridad únicas para los archivos sobre el volumen.
  10. $Volumen – Mucha información relacionada al volumen, es almacenada en esta tabla.
  11. $Upcase – Esto es utilizado para convertir todos los caracteres en mayúscula a caracteres Unicode minúscula.
  12. $ – Esta es la carpeta Raíz.
  13. $Extend – Extensiones opcionales como cuotas e identificadores de objetivos son listados aquí.

¿Y cómo funciona NTFS?

La estructura NTFS es bastante simple, aunque es más complicada que, por ejemplo, en el sistema FAT.

Cada archivo está representado en un registro en la MFT (Tabla Maestra de Archivos). Asimismo, cada entradas en la MFT se clasifica en orden alfabético, esto le permite utilizar una búsqueda binaria, lo que acelera enormemente el trabajo del sistema con ese archivo. Para optimizar aún más el gestor de memoria caché utiliza un algoritmo lazywriter al escribir los datos directamente en el disco, y se almacena en la memoria hasta que la carga en la CPU no se reduce,  después esta carga en memoria disminuye en  un proceso de fondo.

Llegados aquí, la aviesa y avispada gente de sistemas ya está gritando: “¿Y qué pasa si hay un apagón mientras los datos aún están almacenados en la memoria? Obviamente se pierden, pero no tembléis, desde esta humilde web os damos la solución, se llama SAI (Sistema de Alimentación Ininterrumpida). Problema arreglado. Bromas aparte, al trabajar si o si, con este tipo de sistemas en entornos que requieran estabilidad y seguridad de no pérdida de los datos, estos aparatos son de obligada instalación.

 

Sector de Arranque de una partición NTFS

Cuando se asigna a un volumen de almacenamiento la configuración  por defecto de  NTFS, el programa de formato asigna los primeros 16 sectores para el sector de arranque y el código “bootstrap”. Al referirme a “Bootstraping” normalmente me refiero al inicio de un proceso auto sostenible, que se supone, actúa sin ingresos externos. Cuando hablo de ordenadores el término se refiere al proceso de cargar el software básico en la memoria de la computadora después de la puesta en funcionamiento o reinicio.

Captura-boottrap

Tabla Maestra de Archivos (MFT) NTFS     

El sistema de archivos NTFS contiene un único archivo llamado Tabla Maestra de Archivos (o MFT). Los volúmenes NTFS tienen, al menos, una entrada almacenada en la MFT.

La información relacionada a los atributos como tamaño, tiempo, fecha, además de permisos,  son guardados o bien, dentro de entradas MFT o en memoria asignada fuera del MFT, que es descrita por entradas MFT. Cuando el número de archivos sobre el volumen NTFS se incrementa, el tamaño del MFT aumenta también. También, cuando un archivo es borrado desde un volumen NTFS, los valores en el MFT son marcados como libres y este espacio puede ser reutilizado de nuevo. Inciso breve para los amigos forenses y aspirantes a forenses (Este tabla es MUY IMPORTANTE para nosotros, permite entre otras muchas cosas, extraer timelines muy completos de la vida de ese equipo). Por favor repasad algún post anterior del que ha escrito esto aquí. Continuemos…

Las utilidades que desfragmentan volúmenes NTFS sobre sistemas Windows no pueden mover entradas MFT, y como la desfragmentación innecesaria del MFT descompone el desempeño del sistema de archivos, NTFS reserva espacio para que el MFT mantenga su desempeño conforme se expanda, manteniendo así de manera eficaz su desenpeño.

hd-ntfs

Por último y no por ello menos importante aquí se aprecia la copia de los 16 primeros records de la MFT, también llamada MFT Mirror,  en caso de análisis forense no debemos olvidarnos nunca de esto, en un fallo que todos hemos cometido y que yo os recuerdo para que no os pase a vosotros.

 

Ventajas y desventajas NTFS

Ventajas:

  • NTFS es la mejor opción para volúmenes de unos 400 MB o más. El motivo es que el rendimiento no se degrada en NTFS, como ocurre en FAT, con tamaños de volumen mayores.
  • La posibilidad de recuperación está diseñada en NTFS de manera que un usuario nunca tenga que ejecutar ningún tipo de utilidad de reparación de disco en una partición NTFS.
  • Compatibilidad mejorada para discos duros más grandes.
  • Mejor seguridad porque puede utilizar permisos y cifrado para restringir el acceso a archivos específicos para usuarios aprobados.

Desventajas:

  • No se recomienda utilizar NTFS en un volumen de menos de unos 400 MB, debido a la sobrecarga de espacio que implica.
  • No es posible formatear un disco con el sistema de archivos NTFS; Windows NT formatea todos los discos con el sistema de archivos FAT porque la sobrecarga de espacio que implica NTFS no cabe en un disco.

 

De momento con esto ya vale por hoy, en próximas entregas hablaremos sobre permisos NTFS, las reglas ACL, privilegios y permisos, para ir abriendo boca jugaremos un poco con una opción muy poco conocida como son los ADS (o Alternate Data Stream). Iremos poco a poco adentrándonos en este sistema de archivos con el que, os lo aseguro, os va a tocar pegaros muuuuuchas veces, ya que para bien o para mal, a nivel escritorio es el más utilizado y en servers también tiene una buena cuota.

 

¡Hasta la próxima!