В одной из прошлых статей мы рассказывали о таком криминалистическом артефакте, как Windows 10 Timeline, об утилитах для его анализа и о том, какие сведения из него можно извлечь при расследовании инцидентов. Сегодня мы поговорим о ярлыках Windows. Игорь Михайлов, специалист Лаборатории компьютерной криминалистики Group-IB, рассказывает, в каких атаках они используются и как детектировать подобные файлы.
LNK-файлы (ярлыки windows, shortcut files) — служебные файлы, которые, как правило, автоматически создаются операционной системой Windows, когда пользователь открывает файлы. Windows использует их для быстрого доступа к конкретному файлу. Также часть LNK-файлов может быть вручную создана пользователем, например, для удобства работы.
Ярлыки на рабочем столе:
Расположение LNK-файлов
Традиционно основная часть LNK-файлов располагается по путям:
Для операционных систем Windows 7—Windows 10 |
C:\Users\%User profile%\AppData\Roaming\Microsoft\Windows\Recent |
Для операционной системы Windows XP |
C:\Documents and Settings\%User profile%\Recent |
Однако существует множество иных мест, где исследователь может найти LNK-файлы:
- на рабочем столе (обычно такие ярлыки создают пользователи для быстрого доступа к документам и приложениям);
- для документов, открываемых в Microsoft Office, LNK-файлы находятся по пути: C:\Users\%User profile%\AppData\Roaming\Microsoft\Office\Recent\ (для операционных систем Windows 7—Windows 10);
- иногда вместо документов пользователи пересылают ярлыки по электронной почте, и, соответственно, получатели их скачивают. Поэтому третье место, где встречаются ярлыки, — каталог C:\Users\%User profile%\Downloads (для операционных систем Windows 7—Windows 10);
- в каталоге Startup
- и т.д.
Ярлыки в каталоге Recent:
Содержимое ярлыков
До того, как Microsoft опубликовала информацию о формате LNK-файлов [1], исследователи предпринимали попытки самостоятельно описать этот формат [2, 3]. Сложность исследований заключалась в том, что разные ярлыки содержат разные сведения. И при переходе от ярлыка к ярлыку может меняться количество содержащихся в нем сведений о конкретном файле. Кроме того, в Windows 10 в LNK-файлах появились новые поля, которых не было в предыдущих версиях операционной системы.
Итак, какую же информацию содержит LNK-файл? Belkasoft Evidence Center отображает три секции с информацией об LNK-файле: Метаданные, Происхождение и Файл.
Секция Метаданные:
Наиболее важные из сведений, представленных в секции Метаданные:
- исходный путь файла и его временные метки (полный путь, время доступа к целевому файлу (UTC), время создания целевого файла (UTC), время изменения целевого файла (UTC)).
- тип привода;
- серийный номер тома (серийный номер привода);
- метка тома;
- NetBIOS-имя устройства;
- размер целевого файла (байт) — размер файла, с которым ассоциирован ярлык.
На скриншоте выше есть поля Droid файла и Оригинальный Droid файла. DROID (Digital Record Object Identification) — индивидуальный профиль файла. Эта структура (droid файла) может использоваться службой отслеживания ссылок (Link Tracking Service), чтобы определить, был ли файл скопирован или перемещен.
Секция Происхождение:
Секция Файл:
В секции Файл дан MAC-адрес устройства, на котором был создан ярлык. Эта информация может помочь идентифицировать устройство, на котором данный файл был создан.
Следует отметить, что MAC-адрес устройства, зафиксированный в LNK-файле, может отличаться от реального. Поэтому этот параметр иногда не является достоверным.
При проведении исследований следует обращать внимание на временные метки LNK-файла, так как время его создания, как правило, соответствует либо времени создания этого файла пользователем, либо времени первого обращения к файлу, ассоциированного с данным ярлыком. Время изменения файла обычно соответствует времени последнего обращения к файлу, с которым ассоциирован ярлык.
Восстановление LNK-файлов
В каталоге Recent, который описан выше, находится до 149 LNK-файлов. Что же делать, когда нужный нам ярлык удален? Конечно же, нужно попробовать восстановить его! Восстановление LNK-файлов можно произвести с использованием сигнатуры заголовка файла hex:4C 00 00 00.
Чтобы задать заголовок файла, нужно пройти в меню программы: Инструменты — Настройки, перейти во вкладку Карвинг, нажать кнопку Добавить и создать новую сигнатуру. Более подробно о методах карвинга с помощью Belkasoft Evidence Center можно прочитать в статье «Carving and its Implementations in Digital Forensics» [4].
Добавление пользовательской сигнатуры (header):
Использование LNK-файлов атакующими в инцидентах информационной безопасности
На каждом Windows-компьютере могут находиться сотни и тысячи ярлыков. Поэтому найти ярлык, использованный атакующими для компрометации компьютера, часто не проще, чем иголку в стоге сена.
Компрометация атакуемой системы
Более 90% вредоносных программ распространяются через электронную почту. Как правило, вредоносные электронные письма содержат либо ссылку на сетевой ресурс, либо специальным образом подготовленный документ, при открытии которого в компьютер пользователя загружаются вредоносные программы. Также в хакерских атаках часто применяются LNK-файлы.
Секция Метаданные вредоносного LNK-файла:
Как правило, подобный LNK-файл содержит PowerShell-код, который исполняется при попытке открытия пользователем присланного ему ярлыка. Как видно на скриншоте выше, такие ярлыки можно легко обнаружить с помощью Belkasoft Evidence Center: в метаданных присутствует путь до исполняемого powershell.exe. В поле Аргументы приведены аргументы команды PowerShell и закодированная полезная нагрузка.
Закрепление в скомпрометированной системе
Один из методов использования LNK-файлов в хакерских атаках — закрепление в скомпрометированной системе. Чтобы «вредонос» запускался каждый раз при запуске операционной системы, можно сделать LNK-файл со ссылкой на исполняемый файл вредоносной программы (или, например, на файл, содержащий код загрузчика) и поместить ярлык по адресу C:\Users\%User profile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup. Тогда при старте операционной системы будет происходить запуск «вредоноса». Такие ярлыки можно найти во вкладке Файловая система программы Belkasoft Evidence Center.
Ярлык PhonerLite.lnk, находящийся в автозагрузке:
Исследование LNK-файлов
LNK-файлы — это криминалистический артефакт, который анализировался криминалистами еще при исследовании древних версий операционной системы Windows. Поэтому, в той или иной мере, анализ этих файлов поддерживают практически все программы для криминалистического анализа. Однако по мере эволюции Windows эволюционировали и файлы ярлыков. Сейчас в них есть поля, отображение которых ранее считалось нецелесообразным, и, соответственно, часть криминалистических программ не отображает эти поля. При этом анализ содержимого данных полей актуален при расследовании инцидентов информационной безопасности и хакерских атак.
Для исследования LNK-файлов мы рекомендуем использовать Belkasoft Evidence Center, AXIOM (Magnet Forensics), LECmd (Eric Zimmerman’s tools). Эти программы позволяют быстро проанализировать все файлы ярлыков, находящиеся на исследуемом компьютере, и вычленить те, которые нужно проанализировать более тщательно.
Исследование LNK-файлов с помощью Belkasoft Evidence Center
Так как фактически все примеры, данные выше, подготовлены с помощью Belkasoft Evidence Center, описывать ее дополнительно нет смысла.
Исследование LNK-файлов с помощью AXIOM
AXIOM — одна из топовых утилит для компьютерной криминалистики в настоящее время. Собранная программой информация о файлах ярлыков, находящихся в исследуемой системе Windows, сгруппирована в разделе Operating system:
Значение полей, отображаемое для конкретного ярлыка:
Как видно из скриншота выше, в обнаруженный программой ярлык интегрирована команда для запуска PowerShell и набор инструкций, которые исполнятся, когда пользователь кликнет на ярлык. Подобный ярлык требует от исследователя дополнительного анализа.
Исследование LNK-файлов с помощью LECmd
Комплект утилит «Eric Zimmerman’s tools» хорошо зарекомендовал себя при расследовании инцидентов. В этот комплект входит утилита командной строки LECmd, которая предназначена для анализа LNK-файлов.
Объем данных об анализируемом LNK-файле, которые выводит эта утилита, просто поражает.
Информация, извлеченная из анализируемого LNK-файла утилитой LECmd:
Выводы
LNK-файлы — один из старейших артефактов Windows, который известен компьютерным криминалистам. Тем не менее, он используется в хакерских атаках, и о его исследовании не стоит забывать при расследовании инцидентов информационной безопасности.
Огромное число программ для компьютерной криминалистики поддерживают, в той или иной степени, анализ этого артефакта Windows. Однако не все из них отображают содержимое полей ярлыков, анализ которых необходим при расследовании. Поэтому стоит аккуратно подходить к выбору программных инструментов, которые попадут в набор специалиста, расследующего инциденты.
P.S. Заходите в остросюжетный Telegram-канал компании Group-IB (https://t.me/Group_IB/) об информационной безопасности, хакерах и кибератаках, интернет-пиратах, взломах звездных аккаунтов и утечках. А также эксклюзивные фото и видео с задержаниями киберпреступников, расследования нашумевших преступлений по шагам, практические кейсы с применением технологий Group-IB и, конечно, рекомендации, как не стать жертвой в интернете.
Источники
- [MS-SHLLINK]: Shell Link (.LNK) Binary File Format
- Windows Shortcut File format specification
- Нехорошев А.Б., Шухнин М.Н., Юрин И.Ю., Яковлев А.Н. Практические основы компьютерно-технической экспертизы (Учебно-методическое пособие), Издательство «Научная книга», Саратов, 2007.
- Igor Mikaylov. Carving and its Implementations in Digital Forensics