Артефакты активности: Prefetch, ShellBags, LNK, Jump Lists
Даже если пользователь удалил файлы и почистил историю, Windows оставляет «отпечатки» запусков программ и открытых папок. Эти артефакты позволяют реконструировать действия по таймлайну.
Артефакт активности — побочный след, который ОС создаёт автоматически при обычной работе пользователя (запуск программ, открытие папок, недавние файлы), не предназначенный для хранения, но крайне ценный для расследования.
Материал образовательный и оборонительный: разбираем артефакты на своих системах и в учебной лаборатории, чтобы понимать, как реконструируют события при легальном расследовании инцидента. Анализ чужих машин допустим только при наличии правовых оснований.
Зачем это знать следователю
Главный вопрос расследования — «что человек (или вредонос) реально делал на машине». Журналы можно отключить, файлы — стереть, но артефакты Prefetch, ShellBags, LNK и Jump Lists создаются прозрачно для пользователя и потому часто переживают попытки замести следы. Из них собирают таймлайн действий: что запускали, какие папки открывали, к каким документам обращались.
Сила этих артефактов — в избыточности и независимости источников. Один и тот же факт (открыли документ с флешки) может подтвердиться сразу из нескольких мест: LNK-ярлык хранит путь и серийный номер тома, ShellBag — что открывали папку на этом носителе, Jump List — что файл открывали конкретным приложением. Когда несколько независимых артефактов сходятся на одном выводе, доказательство становится устойчивым к возражениям защиты «это случайность». Именно поэтому эксперт не довольствуется одним источником, а ищет перекрёстное подтверждение — и в этом же ценность артефактов для Blue Team: подчистить все следы разом атакующему гораздо труднее, чем один журнал.
Prefetch: доказательство запуска
Чтобы ускорять старт приложений, Windows кладёт в C:\Windows\Prefetch файлы ИМЯ-ХЭШ.pf. Для следователя это прямая улика «программа запускалась»: внутри — имя исполняемого файла, время последнего запуска (и до 8 предыдущих в новых версиях), счётчик запусков и список файлов/каталогов, к которым программа обращалась.
C:\Windows\Prefetch\NOTEPAD.EXE-9B5DDE2D.pf
Последний запуск : 2026-06-20 14:03:11
Запусков всего : 7
Том : \VOLUME{...}
Даже если сам .exe удалён, .pf-файл подтверждает факт и время его работы. Защитная сторона использует это при разборе атак: появление Prefetch для неизвестного бинаря — повод для расследования.
ShellBags: какие папки открывали
Когда пользователь открывает папку в Проводнике и меняет вид (значки/таблица, размер окна), Windows запоминает это в ShellBags — внутри UsrClass.dat (разделы BagMRU/Bags). Ценность в том, что запись остаётся даже после удаления самой папки или флешки. Эксперт восстанавливает дерево когда-то открытых каталогов, включая пути на съёмных носителях и в сетевых ресурсах — это показывает, куда «заглядывал» пользователь.
LNK: ярлыки как свидетели
При открытии документа Windows автоматически создаёт .lnk-ярлык в ...\Recent\. Формат LNK хранит богатые метаданные: полный путь к целевому файлу, его размер, метки времени, серийный номер тома и иногда имя машины-источника. Так по ярлыку устанавливают, что конкретный файл существовал и открывался — даже если оригинал давно удалён с диска или находился на внешнем носителе.
Jump Lists: история по приложениям
Jump Lists (список «последних» в контекстном меню значка на панели задач) лежат в ...\AutomaticDestinations\ и CustomDestinations\. Файл назван по AppID приложения и внутри устроен как составной OLE-контейнер со встроенными LNK-записями. Из него извлекают, какие файлы открывались конкретной программой и когда — например, какие документы открывал Word или какие адреса посещал браузер.
Как это работает под капотом
Все четыре артефакта объединяет то, что ОС пишет их ради удобства и скорости, а не для аудита, — поэтому пользователь о них обычно не думает. LNK и Jump Lists используют формат Shell Link и Compound File Binary; ShellBags хранят бинарные ITEMIDLIST (PIDL) — закодированные пути; Prefetch в свежих версиях сжат алгоритмом MAM. Сопоставляя метки времени из разных артефактов, эксперт выстраивает связную картину: «в 14:03 запустили программу → в 14:05 открыли папку на флешке → в 14:06 открыли оттуда документ».
Небольшая иллюстрация на стандартном Python — как из набора событий с разметкой времени собирают единый таймлайн:
events = [
("14:06", "LNK", "открыт report.docx с диска E"),
("14:03", "Prefetch", "запуск WINWORD.EXE"),
("14:05", "ShellBag", "открыта папка secret на диске E"),
]
# Криминалистический таймлайн — это события, отсортированные по времени.
for when, source, what in sorted(events):
print(when, "|", source, "|", what)
Вывод:
14:03 | Prefetch | запуск WINWORD.EXE 14:05 | ShellBag | открыта папка secret на диске E 14:06 | LNK | открыт report.docx с диска E
Сохранение доказательств
Эти артефакты разбросаны по системным и пользовательским каталогам, и многие живут внутри кустов реестра. Поэтому их извлекают из криминалистического образа целиком, фиксируют хэши и анализируют офлайн инструментами вроде PECmd (Prefetch), ShellBags Explorer, LECmd (LNK) и JLECmd (Jump Lists). Каждое действие — в журнал расследования: цепочка хранения должна показывать, что артефакты не изменялись с момента изъятия.
Как защититься
С позиции Blue Team те же следы — инструмент обнаружения и контроля:
- Собирайте Prefetch и ShellBags при разборе инцидента — они выдают запуск «бесфайловых» и уже удалённых вредоносов.
- Помните, что артефакты раскрывают приватность: при выводе техники из эксплуатации очищайте Recent/Jump Lists штатными средствами, а носители — затиранием.
- Контролируйте, что включён сбор Prefetch (на серверах его иногда отключают) — иначе при инциденте улик будет меньше.
- Централизуйте логи и артефакты с конечных точек (EDR), чтобы атакующий не смог локально подчистить таймлайн.
Итоги
- Prefetch доказывает факт, время и число запусков программы — даже удалённой.
- ShellBags хранят историю открытых папок, переживая удаление каталога или извлечение флешки.
- LNK-ярлыки и Jump Lists раскрывают, какие файлы и какими приложениями открывались, с путями и метками времени.
- Сопоставление меток времени из разных артефактов даёт связный таймлайн действий пользователя.
- Извлечение — из образа, с хэшированием и документированной цепочкой хранения.