Alteración de evidencias I – Modificación de timestamps

Al realizar una intrusión, es esencial pasar desapercibido frente a los equipos de respuesta en la mayor medida posible. Esto se logra eliminando el rastro que haya quedado de nuestra actividad, dificultando así la tarea de encontrar tanto el origen de la intrusión como las actividades del atacante dentro del sistema. En este post se verán listadas distintas técnicas de modificación de marcas de tiempo en la fase de post-explotación.

Es necesario aclarar que si bien estas técnicas son útiles y serán de ayuda en muchas ocasiones, existen métodos para detectarlas.

Las marcas de tiempo son metadatos asociados a ficheros que indican momentos concretos relacionados con su interacción por parte de un usuario. En el contexto de los sistemas comunes, las marcas de tiempo suelen incluir:

  • Fecha de creación: Cuándo se creó el archivo
  • Fecha de modificación: La última vez que se modificó el contenido del fichero
  • Fecha de acceso: La última fecha de lectura o ejecución

Estos metadatos son importantes para crear una cronología de eventos, identificar el acceso no autorizado y correlacionar eventos.

Windows

Existen diversas formas de realizar esta acción en sistemas Windows. Una de ellas, y seguramente la más fácil, es modificando los atributos del archivo desde PowerShell:

> Get-ChildItem <archivo> | % {$_.<atributo> = '01/01/1984 00:13:12'}

Donde <atributo> puede corresponder a las siguientes opciones:

  • CreationTime
  • LastWriteTime
  • LastAccessTime

Para consultar las marcas de tiempo de un archivo, puedes usar este comando en PowerShell:

> Get-Item "<archivo>" | Select-Object Name, CreationTime, LastAccessTime, LastWriteTime

También pueden interesarte herramientas como nTimetools y Timestomp para hacer el mismo trabajo.

Unix-like

En sistemas como Linux, BSD y MacOS puede usarse el comando touch para modificar las marcas de tiempo. Para esto, el comando ofrece varias opciones.

Cambiar la fecha de acceso y modificación:

$ touch -t [[CC]YY]MMDDhhmm[.SS] <archivo>

Cambiar solo la fecha de acceso:

$ touch -a -t [[CC]YY]MMDDhhmm[.SS] <archivo>

Cambiar la fecha de modificación:

$ touch -m -t [[CC]YY]MMDDhhmm[.SS] <archivo>

El formato para la opción -t es:

  • CC: Siglo (opcional)
  • YY: Año (dos dígitos)
  • MM: Mes (01-12)
  • DD: Día (01-31)
  • hh: Hora (00-23)
  • mm: Minuto (00-59)
  • SS: Segundo (opcional)

Puedes consultar los timestamps de un archivo usando stat:

$ stat <archivo>

Cambiar la fecha de creación de un archivo no es una operación común en muchos sistemas de archivos, y no siempre es posible hacerlo a través de herramientas estándar. Sin embargo, hay varias formas de hacerlo en distintos sistemas.

Para cambiar la fecha de creación de un archivo en un sistema de archivos ext2/ext3/ext4 puede usarse debugfs.

En primer lugar, identifica el dispositivo donde se encuentra el archivo:

$ df <archivo>

Usa stat para encontrar el inode del archivo:

$ stat <archivo> | grep Inode

A continuación ejecuta debugfs en el dispositivo correspondiente y cambia la fecha de creación del archivo usando el comando set_inode_field:

$ sudo debugfs -w <dispositivo>
debugfs> set_inode_field crtime 1984-01-01 13:12:00
debugfs> quit

Manipular directamente los inodes y los timestamps por esta vía puede afectar la integridad del sistema de archivos. Asegúrate de que el sistema de archivos esté en un buen estado antes de realizar cambios.

En sistemas MacOS, puedes usar SetFile para cambiar la fecha de creación. Para ello, deberás instalar XCode Command Line Tools previamente:

$ xcode-select --install

A continuación ya puedes cambiar la marca de tiempo:

$ SetFile -d "1984-01-01 13:12:00" <archivo>

Referencias

Puedes profundizar más en este tema accediendo a estos enlaces:


napalm@cryptolab.net