Extracción y análisis de los Registros de Eventos en Windows

Muy buenas amigos, ya estoy de vuelta para mostrar un tema del que se suele hablar poco y que yo considero importante para realizar un correcto análisis en entornos Windows. Nos valdrá para todo tipo de contextos (malware, ciberdelincuentes, incluso para esa especie maligna que cada día avanza mas y mas, los insiders). Estos registros (junto con otras evidencias que extraigamos y analizemos) nos ayudarán a poner fin a sus desmanes.

Uno de los archivos que si o si debemos analizar cuando investigamos un equipo (que en este caso, es aras de facilitar conceptos y asimilación, sera un Windows 10 pro) son los registros de Eventos.

Genial, eso esta muy bien, pero ¿qué son los registros de Eventos? Muy fácil, mirad los registros de eventos contienen el histórico de eventos producidos en la máquina. Registran todo tipo de eventos, desde eventos del sistema, a eventos de aplicación, pasando incluso por los eventos de seguridad. Esto ya empieza a gustar ¿verdad?

Muy bien, sigamos con lo nuestro, el analizar estos eventos nos permite trazar toda la actividad de la máquina: creación de cuentas, conexiones remotas, creación y arranque de servicios. Podemos recabar una ENORME cantidad de información sobre lo que ha pasado en y con esa máquina. Debemos analizarlos cuidadosamente para poder comprender en toda su dimensión lo que ha pasado.

Os aseguro que siempre que muestro esto, aquellas personas a quienes se lo enseño les asombra la cantidad y calidad de la información que se extrae, por tanto os recomiendo amigos míos, que le dediquéis un poco de tiempo a esta valiosa fuente de información.

Puestos en antecedentes, tan solo resta añadir que estos archivos tienen formato evt (o evtx desde Windows Vista, ¿alguien se acuerda aún de Vista?) y generalmente suelen guardarse en la siguiente dirección C:\Windows\system32\winevt, para muestra…

Como dicen que una imagen vale mas que mil palabras, aquí se puede ver donde están, no hay que hacer grandes historias para localizarlos.

Quiero asimismo comentar también que estos no son archivos de texto, por tanto para poderlos analizar con mas rapidez, comodidad y eficacia los pasaremos a formato .csv y desde ahí podremos analizarlos con total comodidad. ¿Cómo los pasaremos a ese formato? Con la utilidad log2timeline. Con esta utilidad escrita en perl, podremos calcular un timeline de cada registro de evento con total comodidad. ¿Y dónde se consigue? Pues podéis ir aquí https://code.google.com/archive/p/log2timeline/, lo bajáis, instaláis dependencias, compilar y demás (oye, para gustos los colores) o podéis optar por lo cómodo:


Tan difícil como esto. Vosotros decidís.

Ya puestos en antecedentes y explicado todo tan solo nos queda un pequeño detalle, los registros en si.

Obtención de los registros

En este ejemplo, va a extraerse usando la herramienta Fastir_Collector ( https://github.com/SekoiaLab/Fastir_Collector) de la gente de SekoiaLab. Es una herramienta sobre la que leí un mas que interesante post de Marcos (@_N4rr34n6_)  que os recomiendo leáis ya que explica muy bien su uso (https://www.fwhibbit.es/triage-en-windows-fastir-collector) .

Para este post de Registro de Eventos nos sirve de sobra…

 

También podéis extraerlo desde el visor de eventos del propio Windows…

Incluso por linea de comandos (https://technet.microsoft.com/es-es/library/cc749339(v=ws.11).aspx)

Lo hagáis como lo hagáis, como se puede apreciar aquí hay muchas alternativas, usad la que mejor os venga.

Ahora solamente queda parsear y analizar…

Instrucción:

log2timeline -f evtx ‘/media/diego/WD/fastir/2017-01-16_192053/evt/NEBUCHADNEZZAR_Security.evtx’ -w /home/diego/Escritorio/security.csv

Con la -f le indicamos el tipo de archivo que es (evtx) luego le indicamos con -w donde queremos que escriba el archivo con el resultado (/home/diego/Escritorio/security.csv) y ya está. Obviamente esta herramienta tiene muchas mas opciones, pero de momento nos quedaremos con lo básico.

Ahora lo abrimos con libreoffice

Y ahí tenemos un histórico de todos los logueos en el sistema.

Así veríamos eventos del sistema…

Podemos analizar registros del firewall, conexiones, usuarios…etc. Un ENORME caudal de información que nos ayudará mucho, si sabemos aprovecharlo lógicamente.

Ahora nos preparamos un script en bash para no complicarnos mucho, con un bucle por aquí y un par de cosillas por allá y ya tenemos todos los registros parseados en un momento con un trabajo mínimo por nuestra parte. Ahora toca hacer nuestro análisis y averiguar el que, cuándo, por qué y a ser posible quién.

Bueno, esto sería una primera toma de contacto, tampoco quiero aburrir mas. Debeis saber que esta misma aplicación se puede usar para analizar enlaces, archivos pcap, documentos office, papelera de reciclaje…etc. Os recomiendo encarecidamente que le dediquéis un poco de tiempo, sin duda os sorprenderán los resultados.

¡Hasta la próxima amigos!

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.

Nuevo canal de YouTube

Bueno, el titulo lo dice todo pero queríamos presentar el canal y sus contenidos, y lo que puede venir si ayudáis a ello.
Este canal nace como sustituto de nuestro utópico “El PODCAST” eso que llevamos intentando grabar desde antes incluso que juntarnos en este humilde blog para escribir sobre los que nos gusta, y la verdad que se ha convertido en algo casi imposible, ya sea por nuestras labores, otros proyectos, estudios, vamos, la vida en general, que hace que no seamos capaces de juntarnos para grabar todos como creemos que debería de ser.
Por esta razón nace este canal, en el que cada uno puede subir vídeos cuando quiera/pueda e incluso utilizarlo como complemento a las entradas como es el caso de los primeros vídeos grabados por Diego (@itzala74)

El primer vídeo que queremos presentar es la intro, o nuestro Tariler peliculero como dice Diego.

Y el siguiente vídeo es podríamos decir un complemento a la entrada “Obtención de $MFT de manera alternativa” que ya escribió en su día el amigo Diego.

Espero que paséis por el canal deis al “Me Gusta” os suscribáis, y comentéis, esto ultimo muy importante porque queremos saber que tipo de contendió os gustaría ver, y si vemos que gusta intentaremos hacer algún directo para que también participéis mas directamente si queréis.

Un saludo a todos Y DENTRO VÍDEO.

Informática Forense. Recuperación en la $MFT. Cuándo, cómo y a veces porque no se puede…

Muy buenas amigos, ya me encuentro de vuelta para seguir compartiendo mis escasos conocimientos con quien le puedan servir de algo. Lo se, tenía que haber vuelto a escribir antes pero, ¿qué queréis que os diga? Los sanfermines fueron muy duros señores…

Antes de nada, quisiera dedicar estas humildes líneas a un compañero que esta trabajando por el bien y la seguridad común de todos nosotros.Y además, creo que esta trabajando en mi tierra. Marcos, esta entrada como te prometí va por ti.

¿De que vamos a hablar hoy? De un tema que realmente siempre acaba saliendo cuando se realiza un análisis forense a Windows, los problemas que hay con la $MFT o Master File Table.

Hasta aquí se había comentado de su importancia  a la hora de realizar un dictamen pericial en entornos Windows y sin duda la tiene, pero, por poner un ejemplo, ¿qué pasa si se borra un archivo del disco duro? ¿Se puede recuperar siempre?¿Hasta dónde se puede recuperar información? ¿Se puede llegar a perder información del disco o de la $MFT? ¿Qué podemos llegar a extraer?¿Qué podemos perder?¿Qué pasaría si un presunto delincuente malintencionado, borra archivos y luego hace una restauración a un punto de, por poner un ejemplo, 2 años atrás? Por poner algunos ejemplos que os pongan en situación… Pues bien, para explicarlo va este post.

 

¿Qué es la $MFT? La $MFT, Master File Table, es el archivo más importante en un sistema de archivos NTFS. Realiza un seguimiento de todos los archivos en el volumen, su ubicación lógica en carpetas, su ubicación física en el disco, y los metadatos de los archivos, incluyendo:

  1. Fecha de Creación, de modificación, fecha de acceso, así como la última fecha de acceso al archivo, todo esto como información estandard.
  2. El tamaño y peso del archivo
  3. (Permisos de acceso de seguridad) para el archivo

Toda esta información se va almacenando como entradas dentro de la $MFT.

reading

Las entradas de la $MFT tienen un tamaño de 1024 bytes, de serie. Cada archivo y carpeta, tiene que tener una entrada en la $MFT, para ser reconocido por el ordenador, incluyendo la propia $MFT.

Las primeras 16 entradas de la $MFT están reservados para los archivos de sistema NTFS, éstos incluyen:

$MFT, $MFT Mirror(espejo) y $Bitmap (mapa de bits).

Llegado aquí, considero importante incidir en un par de puntos apara que los tengáis en cuenta de ahora en adelante:

  1. La primera entrada en la $MFT es una descripción muy completa de lo que hay dentro.
  2. La segunda entrada es el espejo (mirror) es una copia de seguridad de las primeras entradas de la $MFT por si hubiera algún problema de pérdida de datos en la primera. Quisiera insistir en este punto ya que es bastante importante y en mas de una ocasión os salvará el pellejo, si por el motivo que fuera le pasara algo a la principal.

 

Aprovecho, ya que estamos a ello, para recordar que la $MFT, contiene toda mucha información acerca de todo el sistema de archivos. Por poner un ejemplo, correos electrónicos, también son archivos, de modo que también se pueden buscar ahí.

 

Vale, todo esto está muy bien pero…

happend

La $MFT puede expandirse pero nunca contraerse (evidentemente  me estoy refiriendo a unas condiciones normales de uso).

Este punto es muy importante para la informática forense, amigos investigadores, ya que afecta tanto a la recuperación de datos, como a la identificación propiamente dicha de los archivos borrados, así como de la información  contenida (creación, accesos, modificación…etc).

Un dato que muchas personas no conocen, es que cuando se elimina un archivo del disco duro, su entrada $MFT se marca como lista para ser reutilizada. Esta entrada seguirá existiendo hasta que se sobrescriba con una nueva entrada generada por un archivo nuevo en el disco duro. Cuando un nuevo archivo es creado en el disco duro, se sobrescribe la siguiente entrada $MFT disponible, si no hay entradas disponibles para ser sobrescritas a continuación, la MFT comenzará a expandirse. Esto amigos míos, es importante tenerlo en cuenta de ello puede depender o no que podamos recuperar algo o no de información.

como-se-llama-el-inspector-de-la-pantera-rosa

Os pongo un ejemplo para facilitar su comprensión:

  • Un trabajador es despedido de su puesto y su equipo se reutiliza por otro compañero por aquello de optimizar recursos (una opción muy comprensible con los tiempos que corren).
  • Mientras se inicia un proceso de negociación para evitar tener que ir a juicio, el equipo sigue funcionando con total normalidad.
  • Se presupone que ha podido borrar información de la empresa, ¿qué podría pasar a nivel de investigación forense? Muy fácil, sobre las entradas en la $MFT de esas evidencias  “presuntamente” borradas, se van sobrescribiendo las nuevas entradas. Esto nos lleva a que nos podemos enfrentar a que no encontremos ni las evidencias, ni nada de información sobre ellas. Reflexionad sobre esto y sobre como lo podríamos evitar con planificación y sentido común.

Os pongo unos ejemplos mas:

  1. Ejemplo 1:

Si hay 200 entradas de la MFT y un archivo, el archivo X, se borra y luego 1.000 archivos más están creadas inmediatamente después de la entrada MFT para el archivo X se sobrescribe. Aunque los contenidos del archivo pueden existir en el disco duro, la entrada MFT que incluye el nombre, metadatos, etc., se sobrescribe.

 

  1. Ejemplo 2:

Hay 3000 entradas en la $MFT. 100 se suprimen y 2 nuevos archivos se añaden inmediatamente a la unidad. Por lo tanto 98  de las 100 entradas deben ser recuperables. Aunque si los datos de los ficheros son recuperables o no, dependerá de si han sido sobrescritos o no.

 

¿Mas claro así verdad?

 

Nota:

Los datos en si (el archivo en cuestión), están separados de la entrada MFT. Esto da lugar a varias posibilidades tanto durante la eliminación como el posterior uso de un disco duro. Se podría borrar la entrada y los archivos podrían ser extraidos. Unos ejemplos ayudarán a mejorar la comprensión de esto:

1) El archivo se elimina pero la entrada MFT y los datos del archivo son 100% recuperables. El archivo borrado puede ser 100% recuperado.

2) El archivo se elimina y la entrada en la $MFT es recuperable, pero una parte de los datos del archivo se sobrescribe. Esto significa que el archivo sólo se puede recuperar PARCIALMENTE.

3) El archivo se elimina y la entrada $MFT es recuperable, pero los datos del archivo están sobrescritos. El archivo no es recuperable, pero si el information about ( archivo, nombre, fechas, tamaños, etc ).

4) El archivo se elimina y la entrada y archivo de datos en la $MFT es 100% recuperable. El archivo se pierde el 100%. No obstante, con una adecuada investigación forense podríamos extraer una gran cantidad de información sobre el archivo, a través de la $MFT.

5) El archivo se elimina y la $MFT 100%, pero al sobreescribirse los datos del archivo no han sido del 100% sobrescritos. El archivo restante puede ser extraído desde el espacio no asignado en el disco duro. La capacidad de extraer los datos dependerá de la fragmentación, la cantidad de datos recuperables (que podría ser 100% o un 10%) y la naturaleza en si del propio archivo.

Como podéis ver es importante, sumamente importante para una análisis en entornos windows, el tener en cuenta este tema. Espero no haber aburrido mucho a nadie con este tema. 😉

De momento ya vale por hoy, me parece  bastante interesante este tema y os animo a que lo tengáis en cuenta para futuras indagaciones que os toque realizar. ¡Un saludo!