Forense Manual al Archivo de Paginación en Windows

  • Posted on: 16 May 2014
  • By: ReYDeS

La RAM (Random-Access Memory) o Memoria de Acceso Aleatorio es un recurso limitado, mientras que para propósitos prácticos, la memoria virtual es ilimitada. Pueden existir varios procesos, y cada proceso tener su propio espacio de 2GB en memoria virtual. Cuando la memoria que está siendo utilizada por todos los procesos existentes excede la RAM disponible, el sistema operativo mueve páginas (piezas de 4-KB) de uno o más espacios de direcciones virtuales al disco duro de la computadora. Esto libera la estructura de la RAM para otros usuarios. En los sistemas Windows, estas páginas “paginadas fuera” son almacenada en uno o más archivos de nombre “Pagefile.sys” ubicadas en la raíz de una partición (%SystemDrive%\pagefile.sys).

Debido a que las ubicaciones de almacenamiento dentro del archivo de paginación no son necesariamente secuenciales, es improbable encontrar páginas secuenciales en el. Sin embargo es posible encontrar datos en trozos más pequeños o iguales a 4KB, esto es lo máximo que es examinar puede esperar encontrar.

Uno de los métodos más productivos para realizar el análisis a los archivos de paginación es realizar una búsqueda de cadenas. Es posible extraer archivos, pero anotar que es improbable encontrar algo mayor a 4KB.

Para siguiente práctica se utilizará la imagen forense del disco duro de un Sistema Windows 7 y SIFT.

Luego de realizar correctamente el montado de la imagen forense, se lista el directorio y el archivo pagefile.sys.

Se procede a extraer las cadenas desde el archivo “pagefile.sys” utilizando el comando “strings”. La opción “-a” define no solo el escaneo a las secciones inicializadas y cargadas de archivos objeto sino todos los archivos. La opción “-td” imprime el desplazamiento dentro del archivo antes de cada linea, "d" es para decimal, "o" es para octal y "x" es para hexadecimal. La opción “-e” permite definir la codificación de caracteres de la cadena encontrada, "l" define Little Endian de 16 bits.

$ strings -a -td -el pagefile.sys > /tmp/pagefile.sys.strings

Los resultados obtenidos por el proceso de extracción de cadenas será almacenados en el archivo de nombre “pagefile.sys.strings”. Anotar que el tamaño de este archivo es de 22M, mientras que el tamaño del archivo “pagefile.sys” es de 1GB. Se visualizan las primeras lineas de este archivo.

$ ls -lh /tmp/pagefile.sys.strings
$ head /tmp/pagefile.sys.strings

El número expuesto en el lado izquierdo de cada linea corresponde al “offset” o desplazamiento. Utilizando este valioso dato es factible utilizar las herramientas “dd” y “xxd” para realizar un volcado hexadecimal, teniendo como punto de referencia este “offset” o desplazamiento.

La opción “if=” del comando "dd" define el archivo a leer o la entrada. La opción “bs=” lee y escribe un número definido de bytes a la vez. Y la opción “skip=” salta un número definido de bloques desde el inicio de la entrada. La salida resultante del comando "dd" se “entuba” como entrada para la herramienta "xxd", la cual permite realizar un volcado hexadecimal de esta entrada. Adicionalmente se utiliza el comando “less” para navegar a través del resultado.


$ dd if=pagefile.sys bs=1 skip=6476 | xxd | less

Entender el propósito del archivo “pagefile.sys” es importante, esto debido a que muchas búsquedas realizadas en este archivo pueden generar algún resultado. El ser capaz de visualizar estos resultados y comprender como podrían haber sido creados ayuda a determinar si este resultado es algo que viene del acceso a un archivo o si este archivo se ha cargado en la memoria.

Fuentes:

http://www.forensicswiki.org/wiki/Pagefile.sys
http://blog.roberthaist.com/2013/12/restoring-windows-cmd-sessions-from-...
http://support.microsoft.com/kb/2160852
http://en.wikipedia.org/wiki/Random-access_memory

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense