![](https://habrastorage.org/webt/qz/fo/tx/qzfotx-ph1-q-7z411gspmuocm8.jpeg)
Файлы трассировки, или Prefetch-файлы, появились в Windows еще со времен XP. С тех пор они помогали специалистам по цифровой криминалистике и реагированию на компьютерные инциденты находить следы запуска программ, в том числе вредоносных. Ведущий специалист по компьютерной криминалистике Group-IB Олег Скулкин рассказывает, что можно найти с помощью Prefetch-файлов и как это сделать.
Prefetch-файлы хранятся в каталоге %SystemRoot%\Prefetch и служат для ускорения процесса запуска программ. Если мы посмотрим на любой из этих файлов, то увидим, что его имя состоит из двух частей: имени исполняемого файла и контрольной суммы от пути к нему, состоящей из восьми символов.
Prefetch-файлы содержат массу полезной с криминалистической точки зрения информации: имя исполняемого файла, количество его запусков, списки файлов и каталогов, с которыми взаимодействовал исполняемый файл, и, разумеется, временные метки. Обычно криминалисты используют дату создания того или иного Prefetch-файла для определения даты первого запуска программы. Кроме того, данные файлы хранят дату ее последнего запуска, а начиная с версии 26 (Windows 8.1) — временные метки семи последних запусков.
Давайте возьмем один из Prefetch-файлов, извлечем из него данные средствами PECmd Эрика Циммермана и посмотрим на каждую их часть. Для демонстрации я извлеку данные из файла CCLEANER64.EXE-DE05DBE1.pf.
Итак, начнем сверху. Разумеется, у нас есть временные метки создания, модификации и доступа к файлу:
![](https://habrastorage.org/webt/u1/gh/uj/u1ghujj7plvhk5wwcrlwrvkxol4.png)
За ними следуют имя исполняемого файла, контрольная сумма пути к нему, размер исполняемого файла, а также версия Prefetch-файла:
![](https://habrastorage.org/webt/99/b1/af/99b1afl_ahgisejuyetwy5u8oha.png)
Так как мы имеем дело с Windows 10, далее мы увидим количество запусков, дату и время последнего запуска и еще семь временных меток, указывающих на предыдущие даты запуска:
![](https://habrastorage.org/webt/_n/n6/lq/_nn6lqn99py-wbkorga_2k6xr2e.png)
За ними следует информация о томе, включая его серийный номер и дату создания:
![](https://habrastorage.org/webt/zo/f7/ur/zof7urr3spmk8fowq19tlm1dtms.png)
И последнее, но не менее важное — список каталогов и файлов, с которыми взаимодействовал исполняемый файл:
![](https://habrastorage.org/webt/sj/ut/uc/sjutucejd0bdtl7lqj4jyxvn3bu.png)
Итак, каталоги и файлы, с которыми взаимодействовал исполняемый файл, — это как раз то, на чем я хочу сегодня сосредоточиться. Именно эти данные позволяют специалистам по цифровой криминалистике, реагированию на компьютерные инциденты или проактивному поиску угроз установить не только факт исполнения того или иного файла, но и, в некоторых случаях, — реконструировать конкретные тактики и техники атакующих. Сегодня злоумышленники достаточно часто используют инструменты для безвозвратного удаления данных, например, SDelete, поэтому способность восстанавливать хотя бы следы использования тех или иных тактик и техник просто необходима любому современному защитнику — компьютерному криминалисту, специалисту по реагированию на инциденты, ThreatНunter-эксперту.
Давайте начнем с тактики Initial Access (TA0001) и самой популярной техники — Spearphishing Attachment (T1193). Некоторые киберпреступные группы относятся к выбору таких вложений довольно творчески. Например, группа Silence использовала для этого файлы в формате CHM (Microsoft Compiled HTML Help). Таким образом, перед нами еще одна техника — Compiled HTML File (T1223). Такие файлы запускаются с помощью hh.exe, следовательно, если мы извлечем данные из его Prefetch-файла, то узнаем, какой именно файл был открыт жертвой:
![](https://habrastorage.org/webt/rz/u-/qs/rzu-qs_1gqkqozlylsktzgbixeq.png)
Продолжим работать с примерами из реальных дел и перейдем к следующей тактике Execution (TA0002) и технике CSMTP (T1191). Microsoft Connection Manager Profile Installer (CMSTP.exe) может использоваться атакующими для запуска вредоносных сценариев. Хороший пример — группа Cobalt. Если мы извлечем данные из Prefetch-файла cmstp.exe, то снова сможем узнать, что именно было запущено:
![](https://habrastorage.org/webt/_a/d6/w6/_ad6w6l4kie1jzvqlghmofdjkmy.png)
Еще одна популярная техника — Regsvr32 (T1117). Regsvr32.exe также часто используется атакующими для запуска. Вот и еще один пример от группы Cobalt: если мы извлечем данные из Prefetch-файла regsvr32.exe, то снова увидим, что было запущено:
![](https://habrastorage.org/webt/9e/z5/qi/9ez5qisulx1rhfpgpph2lqsg2io.png)
Следующие тактики — Persistence (TA0003) и Privilege Escalation (TA0004), а также Application Shimming (T1138) в качестве техники. Эта техника использовалась Carbanak/FIN7 для закрепления в системе. Обычно для работы с базами данных с информацией о совместимости программ (.sdb) используется sdbinst.exe. Следовательно, Prefetch-файл данного исполняемого файла может помочь нам узнать имена таких баз данных и их расположение:
![](https://habrastorage.org/webt/ps/40/rj/ps40rjgtsih7brdssonnfi05ug0.png)
Как видно на иллюстрации, мы имеем не только имя файла, использованного для инсталляции, но и имя инсталлированной базы данных.
Давайте взглянем на один из наиболее типичных примеров продвижения по сети (TA0008) — PsExec, использующего административные общие ресурсы (T1077). Служба с именем PSEXECSVC (разумеется, может использоваться и любое другое имя, если атакующие использовали параметр -r) будет создана на целевой системе, следовательно, если мы извлечем данные из Prefetch-файла, то увидим, что было запущено:
![](https://habrastorage.org/webt/fb/x6/oq/fbx6oqbuwsqjx4n7rlwxepbokg0.png)
Закончу я, пожалуй, на том, с чего начинал — удаление файлов (T1107). Как я уже отмечал, многие атакующие используют SDelete для безвозвратного удаления файлов на разных стадиях жизненного цикла атаки. Если мы взглянем на данные из Prefetch-файла sdelete.exe, то увидим, что именно было удалено:
![](https://habrastorage.org/webt/_s/7r/ow/_s7rowf7rwit15k0or2byyp0gkk.jpeg)
Разумеется, это не исчерпывающий список техник, которые можно обнаружить в ходе анализа Prefetch-файлов, но этого должно быть вполне достаточно, чтобы понять, что такие файлы могут помочь не только найти следы запуска, но и реконструировать конкретные тактики и техники атакующих.