Menú principal

viernes, 3 de septiembre de 2010

Analizando el fichero .DS_Store

Los sistemas operativos Mac OS X generan en los directorios visualizados con el ‘Finder’ un fichero llamado .DS_Store de forma automática. Este fichero es el encargado de almacenar los metadatos que indican como debe ser abierto el directorio en el que está contenido. Estos metadatos hacen referencia al tamaño de la ventana, modo de visualización, tamaño de los iconos, etcétera.

Actualmente, no existe documentación sobre la estructura de este fichero por parte de Apple, sin embargo ‘Mark Mentovai’ y ‘Wim Lewis’ han realizado trabajos de ingeniería inversa sobre el mismo.

.DS_Store es interesante a la hora de realizar un análisis forense en el equipo, ya que nos puede proporcionar información sobre los nombres de los ficheros de determinado directorio. En la siguiente captura de pantalla, se puede ver como se realiza un listado de ficheros con el comando ‘ls -al’, visualizando dos ficheros de texto y una foto. Posteriormente se ejecuta el comando ‘strings’ sobre el fichero .DS_Store. Como es conocido, este comando busca cadenas de texto imprimibles en ficheros binarios y es muy útil, tanto en el análisis forense, como en los procesos de análisis de malware o ingeniería inversa en general.


Figura 1: Análisis con strings

Una vez ejecutado, debería haber mostrado los nombres de los archivos contenidos en este directorio, sin embargo esto no ha ocurrido. Tratemos de buscar la solución abriendo el fichero .DS_Store con un editor hexadecimal. Como se ve en la imagen, están marcados de color rojo los nombres de los ficheros, sin embargo ¿por qué ‘strings’ no los encuentra?


Figura 2: Análisis con editor hexadecimal

El motivo es porque los nombres de los ficheros están escritos en UFT-16 al contrario de la cadena ‘Ilocblob’ la cual está en UTF-8 y que como se pudo ver sí era encontrada por el comando ‘strings’.

Esto quiere decir que para la representación de cada carácter del nombre del fichero se están utilizando 16 bits (2 bytes) en lugar de 8 bits (1 byte). Por lo tanto, durante el estudio de este fichero durante un análisis forense deberíamos realizar una conversión de formato de UTF-16 a UTF-8, y posteriormente aplicar el comando ‘strings’.

Esto es posible mediante el comando ‘iconv’, el cual permite realizar diversos tipos de conversiones. Para realizar la conversión de UTF-16 a UTF-8 basta con utilizar los parámetros ‘-f UTF-16 –t UTF-8’. Este comando devolverá la conversión en la salida estándar, la cual ya podrá ser analizada por ‘strings’ de forma adecuada.


Figura 3: Conversión y análisis con strings

2 comentarios:

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares