Este documento no pretende ni tiene la finalidad de convertirse en manual de referencia. Este documento relata los aspectos básicos relacionados en el campo de la informática forense, explicando de una forma simple y concisa las herramientas utilizadas para la captura de evidencias. También explicará los aspectos técnicos relativos a la arquitectura de un sistema Windows. Probablemente esto ayudará al lector a comprender mejor cómo un sistema Windows recopila y almacena la información, ayudando también a entender la arquitectura del sistema.

Prohibida la reproducción total o parcial de este texto sin poner la fuente (http://www.elhacker.net)
Prohibida la modificación o eliminación de enlaces e imágenes en este documento.
Redactado por Silverhack el 06 de Septiembre de 2006
Versión 0.1

 

General

Recogida de archivos Log del sistema

Rebuscando en la Papelera de Reciclaje

Sacando información del archivo Index.dat

NtUser.dat y archivos de registro de Windows

Cookies. Estructura, funcionamiento y metodología de acceso a la información

El archivo de paginación de Windows. El archivo pagefile.sys

 

 

 

Recogida de archivos Log del sistema

Los ficheros Log de una máquina, sea la que sea, son una fuente de información importantísima en un análisis forense. Empezaremos con estos ficheros. Los sistemas Windows basados en NT tienen su principal fuente de Log en los archivos de sistema siguientes:

  • SysEvent.Evt. Registra los sucesos relativos al sistema
  • SecEvent.Evt. Registra los sucesos relativos a la seguridad
  • AppEvent.Evt. Registra los sucesos relativos a aplicaciones


Estos ficheros se encuentran en el directorio %systemroot%\system32\config. Si están auditadas las opciones de inicio de sesión, cambio de directivas y permisos, nos centraremos con especial atención en el archivo Log SecEvent.Evt. Para visualizar este fichero podremos utilizar la herramienta de Windows eventvwr.msc, comúnmente llamada Visor de Sucesos. Abriremos con esta herramienta el archivo SecEvent.Evt, que es el encargado de almacenar los sucesos relativos a la seguridad, tales como ingresos en la máquina, cambio de directivas, etc... Por ejemplo, podríamos buscar todo acceso físico a la máquina, cambio de directivas y creación de cuentas de usuario. Eso nos podría dar una idea de quién toca el sistema.
Por ejemplo, el evento 624 es el referido por Windows para un suceso de creación de cuenta de usuario. En la siguiente imagen podréis ver como lo registra Windows:

Event 624

 

Otro ejemplo de suceso, sería el relativo al inicio de sesión. Windows almacena este suceso con el identificador 528.

 

Event 528

 

Como podréis comprobar, Windows almacena información sobre el usuario que ha iniciado sesión, ID de sesión, tipo de inicio de sesión, nombre de estación de trabajo, etc...
Windows tiene distintos archivos Log para auditar los posibles sucesos y/o errores que puedan surgir en la vida útil del sistema operativo. Algunos de ellos son:

  • WindowsUpdate.log (Log de Windows Update)
  • memory.dump (Archivos de volcado de memoria)
  • Archivos de registro de Windows (Software, System, etc...)


En internet disponemos de muchos sitios en donde buscar información y/o solución a un evento determinado. Algunos de ellos son:

EventID
Knowledge base Microsoft

 

Rebuscando en la Papelera de Reciclaje

Sabiendo más o menos como funciona la estructura de la papelera de reciclaje y de cómo Windows indexa sus archivos, entenderemos mejor la información que podamos sacar de la papelera.
Para recomponer un archivo INFO2 utilizaremos la herramienta llamada Rifiuti, palabra italiana que se utiliza para llamar a la basura. La estructura de comandos de Rifiuti es tan simple como este comando:
 
Rifiuti.exe INFO2 >INFO2

En una ventana de MS-DOS teclearemos lo siguiente:

Rifiuti c:\recycler\S-1-5-21-27800051451-1340124367-2516573698-1128\INFO2 > C:\INFO2.TXT**

Podremos redirigir la salida del comando a un archivo .txt para poder visualizarlo con el notepad o con cualquier editor de texto.

** El UserID es diferente para cada máquina y para cada usuario. Este número es creado por Windows y diferencia de forma unívoca a cada usuario.

 

Sacando información del archivo Index.dat

Sabiendo más o menos como Internet Explorer indexa sus páginas, y sabiendo la ruta en donde se encuentran, vamos a ver el contenido de lo que hay en los archivos Index.dat. Hay bastantes soluciones para hacerlo. Aquí explicaremos dos formas:

  • Desde línea de comandos (MS-DOS) y sin aplicación de terceros
  • Desde línea de comandos con aplicación de terceros


Son dos técnicas muy sencillas y que cualquier persona sin amplios conocimientos sobre informática puede realizar.

Desde línea de comandos

Si quisiésemos visualizar que tenemos en nuestro Index.dat desde línea de comandos y sin aplicación de terceros podríamos utilizar este comando:

C:\Documents and Settings\tu_user_name\Configuración local\Historial\History.IE5> find /i "http://" index.dat | sort > C:\history.txt

Explicación: Nos situaremos en el directorio en donde se encuentra el archivo Index.dat de nuestra carpeta Historial, y una vez dentro utilizaremos el comando find para buscar cadenas dentro del archivo que empiecen por http://. La opción /i indica que no distinga entre mayúsculas y minúsculas y el comando sort lo utilizaremos para ordenar la salida.

Desde línea de comandos con Herramientas de terceros

La segunda opción que podemos utilizar para visualizar este archivo sería con aplicaciones de terceros. Por ejemplo Pasco. Esta aplicación reporta la salida en un fichero con texto delimitado. Nuestra vista lo agradecerá, ya que podremos visualizar este archivo en cualquier hoja de cálculo como Excel, y nos facilitará mucho la tarea a la hora de husmear. Otra cosa interesante que nos brinda este programa es la opción undelete. El modo undelete hace caso omiso a la información que hay en la tabla HASH y reconstruye cualquier dato válido de actividad. Gracias a esto podremos recuperar información que con otra aplicación no podríamos.
La línea de comandos que utiliza Pasco es muy sencilla:


 

Tan solo tendríamos que poner este sencillo comando:

Pasco –d –t index.dat >index.csv

Una vez creado index.csv, podremos importar este texto a cualquier hoja de cálculo, como Microsoft Excel por ejemplo.
Un ejemplo de salida con este comando podemos verlo en el siguiente párrafo:

URLindex.datVisited: Silverhack@http://170.110.240.150:8080/AccountUser.wmf index.datSun Feb 9 22:51:10 2006

 

Ntuser.dat y archivos de Registro de Windows

Dado que Windows utiliza como referencia toda la información que se encuentra en el registro, un analista forense puede utilizar como referencia esta gran base de datos para recabar información sobre la máquina. En la base de datos de registro que se encuentra en el sistema Windows, podremos averiguar:

  • Versión del Sistema Operativo
  • Ruta de instalación
  • Clave de Producto
  • Tipo de Procesador de la máquina
  • Aplicaciones Instaladas
  • HotFix y parches instalados
  • Servicios corriendo en la máquina
  • Configuración y enumeración de los adaptadores de red

Podemos utilizar varias herramientas para analizar el registro. Algunas de ellas son:

  • WRR (Windows Registry Recovery de MiTec)
  • Comando nativo XP FC (Compara ficheros)
  • Access Data Registry Viewer
  • Windows Registry File Viewer
  • Windiff (Herramienta para comparar ficheros)


Una vez abierto estos archivos de sistema que referencian al registro de Windows (SECURITY, SYSTEM, SOFTWARE, SAM, DEFAULT) con alguna de estas aplicaciones, podremos movernos por sus distintas ramas, y poder así analizar los datos que contienen estos ficheros.

Ejemplo práctico: Por ejemplo podríamos averiguar los criterios de búsqueda de un usuario en particular, buscando en el registro del perfil de usuario (ntuser.dat) la clave del historial de navegación de la barra de búsqueda de Google (si la tuviese instalada)

HKCU\Software\Google\NavClient\1.1\History

Ejemplo práctico2: Podríamos también investigar si un usuario determinado utilizó alguna cuenta de mensajero (Messenger) sin autorización en un sistema comprometido. La clave que nos mostraría esta información (cuenta de correo utilizada) se encontraría en la parte del registro perteneciente al usuario (ntuser.dat), y en la clave siguiente:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UnreadMail

 

 

 

 

Cookies. Estructura, funcionamiento y metodología de acceso a la información

Una cookie no es más que un fichero de texto. El funcionamiento es bastante sencillo. Algunos servidores piden a nuestro navegador que escriba en nuestro disco duro, y nuestro navegador escribe en un fichero de texto información acerca de lo que hemos estado haciendo por sus páginas.
Una de las mayores ventajas de las cookies es que se almacenan en el equipo del usuario. Con esto conseguimos liberar al servidor de una sobrecarga en su espacio de disco. Cuando el servidor solicite esa información, nuestro navegador se la enviará en forma de cookie. Las cookies poseen una fecha de caducidad, que puede oscilar desde el tiempo que dure la sesión hasta una fecha especificada, a partir de la cual dejan de ser operativas.
En un sistema Windows 2K/XP/2K3, las cookies se encuentran en la ruta:

C:\Documents and Settings\Nombre_Usuario\Cookies

En Internet Explorer existe una cookie por cada dirección de Internet que visitamos, con la nomenclatura siguiente:

Identificador_Usuario@dominio.txt

Para ver el contenido de una cookie, sólo tenemos que editarla con un editor de texto.
Las cookies se almacenan en memoria hasta que salimos del navegador, momento en el que se escriben en el disco.  Para ver las cookies que nos pide un determinado sitio Web cuando estamos conectados, podremos escribir en la barra de direcciones este simple comando:

JavaScript:alert(document.cookie);

Acto seguido nos saldrá un cuadro de alerta, con el contenido de la cookie que nos pide el servidor.

Limitaciones de las Cookies

  • Trescientas cookies en total en el archivo de cookies. Si llega la número 301, se borra la más antigua
  • Veinte cookies por servidor o dominio
  • 4 Kb por cookie, para la suma del nombre y valor de la cookie
  • Ninguna máquina fuera del dominio de la cookie puede leerla

Riesgos reales de una cookie
  • Visualizar los datos contenidos en las cookies
  • Utilizar los servicios a los que permiten acceder los username y passwords almacenados en una cookie
  • Conocer las preferencias del usuario (posibilidad de envío de propaganda personalizada)



Galleta (Aplicación para visualizar Cookies)

Galleta es una herramienta diseñada por FoundStone que analiza todas los cookies y genera un reporte con el detalle de cada una en formato *.csv (Se puede visualizar en Excel).
El funcionamiento de esta herramienta es bastante sencillo.

Usage: galleta [options] <filename>
-t Field Delimiter (TAB by default)


Ejemplo:

galleta silverhack@dominio.txt >CookieSilverhack.txt

 

El archivo de paginación de Windows. Pagefile.sys

El archivo de paginación (Pagefile.sys) es un archivo que Windows utiliza como si fuera memoria RAM (Memoria de acceso aleatorio). Este archivo está situado en la raíz del disco duro y por defecto lo marca como oculto. El archivo de paginación y la memoria física conforman la memoria virtual. De manera predeterminada, Windows almacena el archivo de paginación en la partición de inicio, que es la partición que contiene el sistema operativo y sus archivos auxiliares. El tamaño predeterminado o recomendado del archivo de paginación es igual a 1,5 veces la cantidad total de memoria RAM.

Para visualizar el contenido del archivo de paginación, podemos utilizar una herramienta de SysInternals, llamada Strings.exe.

Esta herramienta busca cadenas de texto (ASCII o Unicode) en archivos.
Podemos conjugar esta herramienta con la herramienta nativa de Windows findstr. Esta herramienta busca patrones de texto en archivos utilizando expresiones regulares.

Por ejemplo, podríamos buscar información relativa a conversaciones de Messenger, buscando cadenas de texto que contengan las palabras MSNMSGR o MSNSLP.
El comando resultante:

strings C:\pagefile.sys | findstr /i MSNMSGR

El resultado que podríamos sacar sería algo similar a esto:

MSNMSGR:silverhack@elhacker.net MSNSLP/1.0
To: <msnmsgr:silverhack@elhacker.net>
From: <msnmsgr:silverhacker@hotmail.com>
Via: MSNSLP/1.0/TLP; branch= {5B3DFCC7-7BB5-4C2E-9351-5B8033C6A0CF}
CSeq: 0
Call-ID: {43C326E3-6109-4B3D-9E4D-F9AB0C5FF0C}
Max-Forwards: 0
Content-Type: application/x-msnmsgr-sessionreqbody
Content-Length: 219

Introducción a la informática forense en entornos Windows 1ª parte

Introducción a la informática forense en entornos Windows 3ª parte