Buscar Texto en el Espacio No Asignado y Espacio de Holgura o Residual

  • Posted on: 13 September 2016
  • By: ReYDeS

El realizar un análisis forense sobre una imagen montada permite verificar todos los archivos y directorios; es decir permite realizar una visualización lógica. Pero, ¿Y el espacio no asignado y el espacio de holgura o residual?; es decir la visualización física. Por esta razón se procede a analizar la imagen forense por si misma, pues la copia bit a bit contiene los datos en las áreas no asignadas del disco.

Para la siguiente demostración se asume; el disco ha sido capturado de un empleado trabajando para una corporación. Él podría haber enviado una carta hacia la corporación para esparcir un virus en su red. El sospechoso niega el haber enviado esta carta. Se trata entonces de una simple acción para encontrar texto desde un archivo borrado; es decir el espacio no asignado.

Primero, se crea un archivo de nombre “/tmp/palabrasclave.txt”, donde se incluyen las palabras claves a buscar en toda la imagen forense. Para nuestro ejemplo; se utilizan las palabras “ransom”, “$50,000” (la cantidad del rescate), y “unleash a virus”. Esta son algunas de las palabras clave y frases decididas a utilizar desde la carta original recibida por la corporación.

$ nano /tmp/palabrasclave.txt
$ cat /tmp/palabrasclave.txt

Es importante mencionar, el archivo no debe contener líneas en blanco al final del mismo.

Ahora se utiliza el comando “grep” para buscar en la imagen por cualquier instancia de una expresión o patrón. Se utilizan diversas opciones para hacer la salida del comando “grep” más útil.

La opción “-a” procesa la imagen forense como si fuese un archivo de texto, pues es un archivo binario. La opción “-b” proporciona un desplazamiento en bytes de cada coincidencia encontrada, de tal manera luego se pueda utilizar este dato con el comando “xxd”. La opción “-i” ignora mayúsculas y minúsculas en la búsqueda. La opción “-f” especifica utilizar patrones incluidos en un archivo. (/tmp/palabrasclave.txt).

$ grep -a -b -i -f /tmp/palabrasclave.txt practical.floppy.dd

El resultado del anterior comando puede ser redireccionado hacia un archivo, donde residirán todas las coincidencias encontradas.

En frente de cada línea está un número, representando el desplazamiento en bytes de la coincidencia encontrada en la imagen forense.

Es factible entonces utilizar el comando “xxd” para mostrar lo datos encontrados en cada desplazamiento de bytes. Esto proporcionará interesantes resultados. La opción “-s” define el inicio de la visualización en el byte indicado. Y la opción “-l” define detener la escritura en los octetos indicados.

$ xxd -s 75441 -l 550 practical.floppy.d

Se debe anotar sin embargo, la utilización del comando “grep” de esta manera puede ser algo limitado. Existen algunos conjuntos de caracteres en versiones comunes de “grep” los cuales no son soportados. Podrían por lo tanto también existir falsos negativos en la búsqueda, pues algunas cadenas o palabras claves podrían residir en la imagen forense en una forma la cual no es reconocida por el comando “grep” o “strings”. Por lo cual se recomienda utilizar otras herramientas más especializadas.

Fuentes:

http://linux.die.net/man/1/grep
http://linux.die.net/man/1/xxd
http://linuxleo.com/

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