Заметка Ярлыки Windows 11 изнутри: устройство .LNK, скрытые возможности и способы атак

1784808860082.png


Ярлыки являются одной из самых привычных частей Windows. Они находятся на рабочем столе, в меню «Пуск», на панели задач, в папках программ и на съёмных накопителях.

Пользователь обычно воспринимает ярлык как небольшую ссылку, которая открывает программу, документ или папку. Однако файл с расширением .lnk способен хранить значительно больше информации:

  • путь к объекту;
  • аргументы командной строки;
  • рабочую папку;
  • отдельный значок;
  • описание;
  • сочетание клавиш;
  • режим отображения окна;
  • сведения о диске;
  • сетевой путь;
  • данные для поиска перемещённого объекта;
  • дополнительные служебные структуры.

Именно эта гибкость делает ярлыки полезными для обычных пользователей и одновременно привлекательными для злоумышленников.

Вредоносный ярлык может выглядеть как:

  • PDF-документ;
  • фотография;
  • папка;
  • таблица Excel;
  • установщик;
  • архив;
  • счёт на оплату;
  • файл доставки;
  • корпоративный документ.

При открытии он может сначала запустить скрытую команду, а затем показать пользователю настоящий документ. В результате человек видит ожидаемый файл и не замечает, что в системе уже выполняется вредоносная программа.

Файл .lnk сам по себе не является вирусом. Опасность определяется его содержимым, объектом запуска, аргументами и связанными файлами.

---

# Что такое ярлык Windows

Ярлык Windows, или Shell Link, представляет собой специальный бинарный объект, содержащий ссылку на другой объект.

Чаще всего ярлык указывает на:

  • исполняемый файл;
  • документ;
  • папку;
  • системный компонент;
  • сетевой ресурс;
  • объект оболочки Windows.

Пример обычного ярлыка:

Код:
Ярлык:
C:\Users\User\Desktop\Блокнот.lnk

Объект:
C:\Windows\System32\notepad.exe

Сам файл Блокнот.lnk не содержит программу «Блокнот». Он только сообщает Windows, какой объект необходимо открыть и с какими параметрами это сделать.

## Ярлык не является символической ссылкой

Ярлык .lnk не следует путать с:

  • символической ссылкой;
  • жёсткой ссылкой;
  • точкой соединения;
  • интернет-ярлыком .url.

Различия:

| Тип | Назначение |
|---|---|
| .lnk | Файл ярлыка, обрабатываемый оболочкой Windows |
| .url | Интернет-ярлык с адресом сайта |
| Символическая ссылка | Объект файловой системы, перенаправляющий обращения |
| Жёсткая ссылка | Дополнительное имя существующего файла |
| Junction | Перенаправление на каталог или том |

Программа, открывающая .lnk, фактически взаимодействует с оболочкой Windows. Символическая ссылка обрабатывается на уровне файловой системы и для программы часто выглядит как обычный файл или каталог.

---

# Почему ярлык имеет расширение LNK

Расширение .lnk является сокращением от английского слова link.

В Windows такой объект называется:

Код:
Shell Link

Файл ярлыка обычно имеет расширение:

Код:
.lnk

Однако в Проводнике расширение может быть визуально незаметным. Пользователь видит имя, значок и маленькую стрелку, но не всегда обращает внимание на тип файла.

Поэтому файл:

Код:
Отчёт за июль.lnk

может отображаться примерно как:

Код:
Отчёт за июль

Если злоумышленник назначит ему значок PDF, пользователь может решить, что перед ним обычный документ.

---

# Из чего состоит файл LNK

Файл .lnk не является обычным текстовым файлом. Его содержимое представляет собой последовательность бинарных структур.

Упрощённая схема:

Код:
Shell Link
├── ShellLinkHeader
├── LinkTargetIDList
├── LinkInfo
├── StringData
└── ExtraData

Не все перечисленные блоки являются обязательными. Их наличие определяется флагами в заголовке.

---

## ShellLinkHeader

Заголовок находится в начале файла и содержит основные характеристики ярлыка.

В нём могут храниться:

  • идентификатор формата;
  • флаги;
  • атрибуты целевого объекта;
  • время создания целевого объекта;
  • время последнего доступа;
  • время изменения;
  • приблизительный размер объекта;
  • индекс значка;
  • режим отображения окна;
  • сочетание горячих клавиш.

Упрощённо:

Код:
ShellLinkHeader
├── HeaderSize
├── LinkCLSID
├── LinkFlags
├── FileAttributes
├── CreationTime
├── AccessTime
├── WriteTime
├── FileSize
├── IconIndex
├── ShowCommand
└── HotKey

Часть этих сведений может отражать состояние целевого файла в момент создания или обновления ярлыка. Данные могут устареть и не должны рассматриваться как абсолютное доказательство.

---

## LinkFlags

Поле LinkFlags указывает, какие дополнительные компоненты присутствуют в ярлыке.

Например:

Код:
HasLinkTargetIDList
HasLinkInfo
HasName
HasRelativePath
HasWorkingDir
HasArguments
HasIconLocation
IsUnicode

Особенно важны для анализа:

  • HasArguments — присутствуют аргументы командной строки;
  • HasWorkingDir — задана рабочая папка;
  • HasIconLocation — используется отдельный источник значка;
  • HasRelativePath — указан относительный путь;
  • HasLinkInfo — присутствует информация для поиска объекта.

Наличие аргументов само по себе нормально. Многие легальные программы используют их для открытия конкретных документов или включения определённого режима.

Подозрение вызывает сочетание нескольких факторов:

  • системный интерпретатор в поле объекта;
  • длинная или непонятная строка аргументов;
  • неизвестный сетевой адрес;
  • запуск файла из временной папки;
  • значок, не соответствующий реальной цели;
  • скрытый или минимизированный режим окна.

---

## LinkTargetIDList

LinkTargetIDList представляет объект в пространстве имён оболочки Windows.

Это позволяет ярлыку ссылаться не только на простой путь вроде:

Код:
C:\Program Files\Application\App.exe

но и на объекты, которые Windows воспринимает через свою оболочку.

К таким объектам могут относиться:

  • специальные папки;
  • элементы панели управления;
  • виртуальные папки;
  • сетевые объекты;
  • объекты, не имеющие простого обычного пути.

Внутри используется последовательность структур, называемых Item ID.

---

## LinkInfo

Блок LinkInfo содержит информацию, необходимую для определения местоположения цели.

В нём могут находиться:

  • локальный путь;
  • сведения о томе;
  • метка тома;
  • серийный номер тома;
  • сетевой путь;
  • имя сетевого ресурса;
  • связанная буква диска;
  • общий суффикс пути.

Пример локальной цели:

Код:
C:\Program Files\Example\App.exe

Пример сетевой цели:

Код:
\\fileserver\shared\Application.exe

Ярлык может сохранить как абсолютный, так и относительный способ определения местоположения объекта.

---

## StringData

Секция StringData может содержать несколько строковых параметров.

### NAME_STRING

Описание или название ярлыка.

### RELATIVE_PATH

Относительный путь к цели.

Например, если ярлык и программа находятся внутри одного переносимого каталога, может использоваться путь относительно расположения самого ярлыка.

### WORKING_DIR

Рабочая папка приложения.

Некоторые программы рассчитывают найти конфигурацию, библиотеки или документы именно в рабочем каталоге.

### COMMAND_LINE_ARGUMENTS

Аргументы, передаваемые целевой программе.

Например, легальный ярлык может передавать:

  • путь к документу;
  • адрес профиля;
  • название проекта;
  • режим запуска;
  • параметры отладки.

С точки зрения безопасности это одно из самых важных полей.

Ярлык может указывать не непосредственно на вредоносный файл, а на легальную системную программу:

Код:
powershell.exe
cmd.exe
wscript.exe
cscript.exe
mshta.exe
rundll32.exe
regsvr32.exe

Вредоносная логика при этом размещается в аргументах командной строки или во внешнем файле.

### ICON_LOCATION

Путь к файлу, из которого Windows должна получить значок.

Значок может находиться:

  • внутри целевой программы;
  • в системной библиотеке;
  • в отдельном файле .ico;
  • в другом исполняемом файле;
  • на сетевом ресурсе.

Источник значка не обязан совпадать с объектом запуска.

Именно поэтому ярлык, запускающий командный интерпретатор, может выглядеть как PDF, папка или изображение.

---

## ExtraData

Секция ExtraData предназначена для дополнительных структур.

Она может содержать:

  • переменные окружения;
  • сведения о специальной папке;
  • параметры консольного окна;
  • информацию о значке;
  • свойства оболочки;
  • сведения для отслеживания перемещённой цели;
  • идентификатор компьютера;
  • дополнительные списки объектов.

Одна из интересных структур — TrackerDataBlock.

Она помогает Windows найти цель, если файл был перемещён. В ней может храниться имя компьютера, на котором цель находилась ранее, и служебные идентификаторы отслеживания.

---

# Что хранится в свойствах ярлыка

Чтобы открыть основные свойства обычного ярлыка:

Код:
Правый клик
→ Свойства
→ Ярлык

Обычно отображаются следующие поля:

| Поле | Значение |
|---|---|
| Объект | Программа, файл или команда, которая будет запущена |
| Рабочая папка | Каталог, используемый при запуске |
| Быстрый вызов | Сочетание клавиш |
| Окно | Обычный, свёрнутый или развёрнутый режим |
| Комментарий | Описание ярлыка |
| Сменить значок | Источник отображаемого значка |

Самым важным является поле:

Код:
Объект

Но видимая строка может быть очень длинной. Необходимо переместить курсор внутри поля и просмотреть её целиком.

## Почему одного поля «Объект» иногда недостаточно

Часть информации может храниться не в очевидном текстовом поле, а в бинарных структурах ярлыка.

Кроме того:

  • длинная команда может быть визуально неудобной;
  • строка может содержать множество пробелов;
  • могут использоваться переменные окружения;
  • путь может быть относительным;
  • значок может загружаться отдельно;
  • цель может определяться через Shell ID List;
  • некоторые параметры проще увидеть специальным анализатором.

---

# Интересные возможности ярлыков Windows

## Ярлык может запускать программу с аргументами

Это позволяет создать несколько режимов запуска одной программы.

Например:

Код:
Обычный запуск
Запуск с отдельным профилем
Запуск в полноэкранном режиме
Открытие конкретного проекта
Подключение к определённому серверу

Для легальных приложений это очень удобно.

Для злоумышленника аргументы являются способом передать команды системному интерпретатору.

---

## Значок ярлыка не обязан соответствовать цели

Ярлык может запускать одну программу, но показывать значок совершенно другого объекта.

Например:

Код:
Реальная цель: системный интерпретатор
Отображаемый значок: PDF
Имя: Счёт на оплату

Значок является только элементом оформления.

Он не доказывает, что файл действительно является:

  • PDF;
  • документом Word;
  • изображением;
  • папкой;
  • таблицей;
  • архивом.

---

## Ярлык может иметь горячую клавишу

В свойствах ярлыка можно назначить сочетание клавиш.

Например:

Код:
Ctrl + Alt + определённая клавиша

Это позволяет запускать программу без поиска ярлыка на рабочем столе.

Вредоносное изменение существующего ярлыка или его горячей клавиши встречается значительно реже обычного фишинга, но такой механизм необходимо учитывать при расследовании необычных запусков.

---

## Ярлык может открываться свёрнутым

Поле режима окна позволяет запустить программу:

  • в обычном окне;
  • развёрнутой;
  • свёрнутой.

Злоумышленники могут использовать свёрнутый режим, чтобы пользователь не заметил кратковременное появление командного окна.

Это не делает выполнение полностью невидимым, но уменьшает вероятность того, что пользователь обратит внимание на происходящее.

---

## Ярлык может использовать относительный путь

Относительный путь полезен для переносимых программ.

Пример структуры каталога:

Код:
PortableApp
├── Start.lnk
├── App
│   └── Program.exe
└── Data

Если относительная структура сохраняется, каталог можно перемещать между дисками.

Эта же возможность используется во вредоносных архивах, где ярлык и связанный с ним скрытый файл располагаются рядом.

---

## Ярлык может ссылаться на сетевой ресурс

Объект или значок ярлыка может находиться по UNC-пути:

Код:
\\server\share\file

Это означает, что обработка ярлыка потенциально может вызвать сетевое обращение.

В корпоративной среде необходимо внимательно проверять ярлыки, указывающие:

  • на неизвестные серверы;
  • на внешние IP-адреса;
  • на неожиданные SMB-ресурсы;
  • на домены, не принадлежащие организации.

---

## Ярлык способен найти перемещённый объект

Windows может использовать сведения отслеживания, чтобы попытаться найти цель после её перемещения.

Поэтому ярлык иногда продолжает работать даже после того, как пользователь переместил программу или документ.

Это удобно для пользователя, но также делает .lnk интересным источником цифровых следов.

---

# Почему LNK-файлы интересны специалистам по цифровой криминалистике

В зависимости от структуры и способа создания ярлык может содержать:

  • первоначальный путь к объекту;
  • относительный путь;
  • сетевой путь;
  • метку тома;
  • серийный номер тома;
  • время создания цели;
  • время изменения цели;
  • приблизительный размер;
  • имя компьютера;
  • рабочий каталог;
  • аргументы запуска;
  • источник значка.

Это помогает отвечать на вопросы:

  • с какого диска запускался файл;
  • находился ли он на флешке;
  • использовался ли сетевой ресурс;
  • какое имя имел компьютер;
  • откуда запускалась программа;
  • какие аргументы передавались;
  • где ранее находился перемещённый файл.

Однако метаданные ярлыка могут быть:

  • устаревшими;
  • изменёнными;
  • неполными;
  • намеренно подделанными;
  • скопированными с другой системы.

Поэтому LNK-файл рассматривается вместе с:

  • журналами Windows;
  • Prefetch;
  • Amcache;
  • реестром;
  • историей браузера;
  • журналом антивируса;
  • файловой системой;
  • сетевыми журналами;
  • телеметрией EDR.

---

# Как ярлыки используют для атак

## 1. Маскировка под документ

Наиболее распространённая схема:

Код:
Пользователь получает архив
        ↓
В архиве находится файл с иконкой документа
        ↓
Пользователь открывает ярлык
        ↓
Запускается команда или вредоносный файл
        ↓
Дополнительно открывается настоящий документ

Поскольку ожидаемый документ действительно появляется, пользователь может не заметить заражение.

Ярлык может называться:

Код:
Счёт за июль
Договор
Резюме кандидата
Фотографии
Документы доставки
Заявка клиента

---

## 2. Значок PDF, Word или папки

Источник значка задаётся отдельно от объекта запуска.

Злоумышленник выбирает системный значок:

  • PDF;
  • Word;
  • Excel;
  • папка;
  • архив;
  • изображение;
  • установщик.

При поверхностном просмотре файл выглядит привычно.

Признаки маскировки:

  • тип файла указан как «Ярлык»;
  • размер необычен для документа;
  • в свойствах присутствует поле «Объект»;
  • значок взят из системной DLL;
  • объектом является системный интерпретатор;
  • расширение документа присутствует внутри имени, но не является настоящим расширением.

Пример имени:

Код:
Отчёт.pdf.lnk

При скрытых расширениях пользователь может увидеть:

Код:
Отчёт.pdf

---

## 3. Запуск системных интерпретаторов

Вместо прямого запуска вредоносного .exe ярлык может обращаться к уже установленным компонентам Windows.

Примеры программ, появление которых требует проверки:

Код:
powershell.exe
cmd.exe
wscript.exe
cscript.exe
mshta.exe
rundll32.exe
regsvr32.exe

Эти программы являются легитимными частями Windows.

Их присутствие в ярлыке не доказывает атаку. Подозрение вызывают:

  • длинные аргументы;
  • непонятная кодировка;
  • обращение к внешнему адресу;
  • запуск файла из временной папки;
  • цепочка из нескольких интерпретаторов;
  • скрытый режим;
  • запуск из архива или почтового вложения.

---

## 4. Длинные и запутанные аргументы

Поле аргументов может содержать очень длинную строку.

Для сокрытия назначения используются:

  • большое количество пробелов;
  • переменные окружения;
  • необычные кавычки;
  • конкатенация строк;
  • кодированные данные;
  • длинные пути;
  • перенаправления;
  • вложенные команды.

В окне свойств пользователь может видеть только начало или конец такой строки.

Нельзя ограничиваться поверхностным просмотром первых символов.

---

## 5. Запуск приманки после вредоносной команды

Чтобы не вызвать подозрений, ярлык может выполнять две логические операции:

Код:
1. Запустить скрытый компонент.
2. Открыть ожидаемый документ или папку.

Пользователь получает то, что ожидал, и не понимает, что перед этим был запущен другой процесс.

Такой файл называют приманкой, или decoy-документом.

---

## 6. Закрепление через папку автозагрузки

Windows запускает содержимое специальных папок при входе пользователя.

Пользовательская папка автозагрузки:

Код:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

Общая папка:

Код:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Злоумышленник может:

  • создать в ней вредоносный ярлык;
  • изменить существующий ярлык;
  • заменить объект запуска;
  • добавить аргументы к легальной программе.

После этого команда будет выполняться при следующем входе пользователя.

---

## 7. Изменение существующего ярлыка

Вместо создания нового файла злоумышленник может изменить ярлык программы, которой пользователь регулярно пользуется.

Например:

Код:
Браузер
Офисная программа
Корпоративное приложение
Игровой лаунчер
Удалённый рабочий стол

Изменённый ярлык может сначала запускать дополнительный компонент, а затем открывать настоящую программу.

Пользователь продолжает видеть привычный значок и название.

---

## 8. Атаки через USB-накопители

Так называемый shortcut-вирус может:

1. Скрыть настоящие файлы и папки на флешке.
2. Создать вместо них похожие ярлыки.
3. Назначить ярлыкам значки папок.
4. Запустить вредоносный компонент при открытии.
5. После этого показать настоящую папку.

Пользователь считает, что просто открыл каталог.

Признаки:

  • все папки неожиданно стали ярлыками;
  • оригинальные данные имеют атрибут Hidden;
  • на флешке появились неизвестные скрипты;
  • виден один ярлык с названием накопителя;
  • структура повторяется на разных компьютерах.

Не следует открывать такие ярлыки даже для проверки.

---

## 9. Сетевой значок и внешние ресурсы

Путь к значку может указывать на сетевое расположение.

При отображении или обработке файла Windows может попытаться получить удалённый ресурс.

Риски:

  • обращение к контролируемому злоумышленником серверу;
  • утечка сетевой информации;
  • попытка аутентификации;
  • загрузка внешнего содержимого;
  • отслеживание открытия файла.

Для анализа подозрительных ярлыков безопаснее:

  • отключить компьютер от сети;
  • использовать изолированную виртуальную машину;
  • запретить исходящий SMB;
  • наблюдать сетевые обращения через защитные средства.

---

## 10. Скрытие дополнительных файлов в архиве

Вредоносный архив может содержать:

Код:
Документ.lnk
Скрытый каталог
Скрипт
Зашифрованный компонент
Настоящий документ

Пользователь видит только ярлык, а остальные элементы:

  • имеют скрытый атрибут;
  • находятся глубже в структуре;
  • используют похожие названия;
  • располагаются в папке с пробелами;
  • маскируются под системные данные.

Поэтому содержимое подозрительного архива необходимо полностью извлекать в изолированную среду и изучать его структуру.

---

# Как отличить обычный ярлык от подозрительного

Проверьте следующие характеристики.

## Источник файла

Высокий риск:

  • вложение неизвестного отправителя;
  • архив из Telegram;
  • ссылка в мессенджере;
  • файл из рекламного объявления;
  • неизвестная флешка;
  • архив с паролем;
  • файл из папки загрузок;
  • документ от неожиданного отправителя.

Низкий риск не означает полную безопасность, но происхождение является важным фактором.

## Тип файла

В Проводнике включите столбец:

Код:
Тип

Для .lnk будет указано что-то вроде:

Код:
Ярлык

Значок документа не меняет реальный тип файла.

## Поле «Объект»

Особенно внимательно изучите:

  • powershell.exe;
  • cmd.exe;
  • wscript.exe;
  • cscript.exe;
  • mshta.exe;
  • rundll32.exe;
  • regsvr32.exe;
  • файлы из Temp;
  • файлы из неизвестной папки AppData;
  • UNC-пути;
  • внешние адреса;
  • слишком длинные аргументы.

## Рабочая папка

Подозрительные варианты:

Код:
%TEMP%
C:\Users\<имя>\AppData\Local\Temp
C:\Users\Public
\\неизвестный-сервер\ресурс

Эти расположения используются и легальными программами, поэтому необходим анализ контекста.

## Источник значка

Проверьте, соответствует ли значок настоящей цели.

Пример:

Код:
Название: Договор.pdf
Значок: PDF
Объект: powershell.exe

Такое сочетание требует немедленного анализа.

## Режим окна

Запуск в свёрнутом режиме не является доказательством атаки, но в сочетании с системным интерпретатором и длинными аргументами выглядит подозрительно.

## Размер файла

Обычные ярлыки часто невелики, однако размер не является надёжным признаком.

Большой LNK-файл может содержать:

  • дополнительные структуры;
  • нестандартные данные;
  • заполнение;
  • встроенные фрагменты;
  • сведения о нескольких объектах.

Маленький ярлык также может запускать опасную внешнюю команду.

---

# Как включить отображение расширений в Windows 11

Откройте Проводник:

Код:
Проводник
→ Вид
→ Показать
→ Расширения имён файлов

Дополнительно включите:

Код:
Проводник
→ Вид
→ Показать
→ Скрытые элементы

Это помогает заметить:

Код:
Документ.pdf.exe
Фотография.jpg.scr
Договор.docx.lnk

Однако одного отображения расширений недостаточно. Для ярлыков дополнительно проверяйте тип файла и свойства.

---

# Безопасный ручной анализ ярлыка

## Основное правило

Не открывайте подозрительный ярлык двойным щелчком.

Для начала:

1. Отключите устройство от сети.
2. Не просматривайте файл на рабочем компьютере организации.
3. Сделайте копию.
4. Рассчитайте хеш.
5. Откройте свойства.
6. Изучите объект, аргументы и значок.
7. Проверьте связанные файлы.
8. При необходимости используйте виртуальную машину.

## Получение хеша

PowerShell:

Код:
Get-FileHash -Algorithm SHA256 ".\Подозрительный файл.lnk"

Результат позволит:

  • сравнить копии;
  • зафиксировать исследуемый объект;
  • проверить, изменился ли файл;
  • использовать хеш в средствах защиты.

Не загружайте конфиденциальные корпоративные файлы в публичные сервисы без разрешения организации.

---

# Просмотр свойств LNK через PowerShell

Следующий сценарий только читает стандартные свойства ярлыков и не запускает их.

Код:
$Shell = New-Object -ComObject WScript.Shell

Get-ChildItem -Path ".\" -Filter "*.lnk" -Recurse -Force -ErrorAction SilentlyContinue |
    ForEach-Object {
        try {
            $Shortcut = $Shell.CreateShortcut($_.FullName)

            [PSCustomObject]@{
                Shortcut         = $_.FullName
                TargetPath       = $Shortcut.TargetPath
                Arguments        = $Shortcut.Arguments
                WorkingDirectory = $Shortcut.WorkingDirectory
                IconLocation     = $Shortcut.IconLocation
                Hotkey           = $Shortcut.Hotkey
                WindowStyle      = $Shortcut.WindowStyle
                Size             = $_.Length
                Modified         = $_.LastWriteTime
            }
        }
        catch {
            [PSCustomObject]@{
                Shortcut = $_.FullName
                Error    = $_.Exception.Message
            }
        }
    } |
    Format-List

Этот метод показывает основные свойства, доступные через Windows Script Host.

Он не является полноценным бинарным анализатором и может не отобразить все структуры ExtraData.

## Экспорт результатов в CSV

Код:
$Shell = New-Object -ComObject WScript.Shell

Get-ChildItem -Path "C:\Users" -Filter "*.lnk" -Recurse -Force -ErrorAction SilentlyContinue |
    ForEach-Object {
        try {
            $Shortcut = $Shell.CreateShortcut($_.FullName)

            [PSCustomObject]@{
                Shortcut         = $_.FullName
                TargetPath       = $Shortcut.TargetPath
                Arguments        = $Shortcut.Arguments
                WorkingDirectory = $Shortcut.WorkingDirectory
                IconLocation     = $Shortcut.IconLocation
                Modified         = $_.LastWriteTime
            }
        }
        catch {
            [PSCustomObject]@{
                Shortcut = $_.FullName
                Error    = $_.Exception.Message
            }
        }
    } |
    Export-Csv -Path ".\shortcuts.csv" -NoTypeInformation -Encoding UTF8

Полученный файл можно сортировать по:

  • объекту;
  • рабочей папке;
  • аргументам;
  • источнику значка;
  • дате изменения.

---

# Проверка цифровой подписи объекта

Подписывается обычно не ярлык, а исполняемый файл, на который он указывает.

Пример проверки:

Код:
Get-AuthenticodeSignature "C:\Path\To\Program.exe" |
    Format-List

Возможные статусы:

Код:
Valid
NotSigned
HashMismatch
UnknownError
NotTrusted

Действительная подпись повышает доверие, но не гарантирует абсолютную безопасность.

Проверьте:

  • имя издателя;
  • путь к файлу;
  • соответствие программы;
  • срок действия сертификата;
  • источник установки.

---

# Поиск ярлыков в папках автозагрузки

Пользовательская автозагрузка:

Код:
Get-ChildItem `
    "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" `
    -Force

Общая автозагрузка:

Код:
Get-ChildItem `
    "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" `
    -Force

Чтобы открыть папки через окно «Выполнить»:

Код:
Win + R
shell:startup

И:

Код:
Win + R
shell:common startup

Проверьте ярлыки:

  • созданные недавно;
  • указывающие на неизвестные файлы;
  • запускающие интерпретаторы;
  • использующие временные каталоги;
  • содержащие длинные аргументы.

---

# Что делать, если подозрительный ярлык уже был открыт

## 1. Отключите компьютер от сети

Отключите:

  • Ethernet;
  • Wi-Fi;
  • VPN;
  • сетевые диски;
  • внешние накопители.

## 2. Не вводите пароли

Не входите на этом компьютере:

  • в почту;
  • в банк;
  • на криптовалютную биржу;
  • в менеджер паролей;
  • в панель сервера.

## 3. Зафиксируйте файл

Сохраните:

  • имя;
  • полный путь;
  • хеш SHA-256;
  • время открытия;
  • источник получения;
  • архив, из которого он был извлечён.

## 4. Запустите проверку Microsoft Defender

Сначала обновите сигнатуры, затем выполните:

  • полную проверку;
  • автономную проверку Microsoft Defender.

## 5. Проверьте закрепление

Проверьте:

  • папки автозагрузки;
  • Планировщик заданий;
  • службы;
  • расширения браузеров;
  • исключения Defender;
  • неизвестные процессы;
  • недавно созданные файлы в Temp и AppData.

## 6. Защитите аккаунты с другого устройства

Если ярлык запускал неизвестную команду, необходимо учитывать риск стилера.

С чистого устройства:

  • смените пароль основной почты;
  • завершите активные сеансы;
  • включите MFA;
  • проверьте биржи;
  • отзовите API-ключи;
  • замените SSH-ключи при необходимости;
  • перенесите криптовалюту, если seed-фраза хранилась на компьютере.

## 7. Рассмотрите чистую переустановку

Она предпочтительна, если:

  • был запущен неизвестный загрузчик;
  • обнаружен стилер;
  • появились неизвестные администраторы;
  • Defender был отключён;
  • вредоносный компонент возвращается;
  • компьютер использовался для доступа к деньгам или серверам;
  • невозможно определить выполненную команду.

---

# Как защищаться от атак через LNK

## Не открывайте ярлыки из почтовых вложений

Особенно подозрительны:

  • .lnk внутри ZIP;
  • архив с паролем;
  • документ от неизвестного отправителя;
  • неожиданный счёт;
  • файл доставки;
  • «резюме» в архиве;
  • «скан документа» с ярлыком.

Обычные документы редко требуется передавать в формате .lnk.

---

## Не игнорируйте SmartScreen

Microsoft Defender SmartScreen проверяет репутацию загруженных файлов и источников.

Если Windows предупреждает, что файл:

  • получен из интернета;
  • неизвестен;
  • имеет низкую репутацию;
  • может быть опасен;

не следует автоматически нажимать:

Код:
Выполнить в любом случае

Сначала необходимо проверить происхождение и содержимое файла.

---

## Оставьте Microsoft Defender включённым

Проверьте:

Код:
Безопасность Windows
→ Защита от вирусов и угроз

Должны быть включены:

  • защита в реальном времени;
  • облачная защита;
  • автоматическая отправка образцов;
  • защита от подделки.

Не добавляйте папку в исключения по просьбе неизвестного установщика.

---

## Ограничьте исходящий SMB

В корпоративной сети исходящие подключения SMB к интернету обычно не требуются.

На межсетевом экране можно ограничить внешние соединения по:

Код:
TCP 445

Ограничение следует планировать с учётом реальной инфраструктуры, VPN и облачных файловых сервисов.

Внутренний SMB между доверенными серверами может быть необходим для работы организации.

---

## Используйте правила ASR

В среде с Microsoft Defender for Endpoint можно рассмотреть правила Attack Surface Reduction:

  • блокировка исполняемого содержимого из почтового клиента и веб-почты;
  • блокировка потенциально запутанных скриптов;
  • блокировка JavaScript и VBScript, запускающих загруженные программы;
  • блокировка недоверенных процессов с USB;
  • расширенная защита от программ-вымогателей;
  • блокировка исполняемых файлов с недостаточной репутацией.

Сначала правила следует запускать в режиме аудита.

Иначе возможна блокировка легальных административных и корпоративных сценариев.

---

## Используйте WDAC или AppLocker

В организациях можно разрешить запуск только:

  • подписанного программного обеспечения;
  • приложений из доверенных каталогов;
  • утверждённых сценариев;
  • системных компонентов;
  • корпоративных программ.

Это уменьшает вероятность запуска компонента, загруженного вредоносным ярлыком.

Политика должна тестироваться до включения режима блокировки.

---

## Контролируйте папки автозагрузки

Следует отслеживать создание и изменение .lnk в:

Код:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Особенно важны изменения, выполненные:

  • PowerShell;
  • командным интерпретатором;
  • почтовым клиентом;
  • браузером;
  • неизвестным установщиком;
  • процессом из временной папки.

---

## Контролируйте дочерние процессы

Подозрительная цепочка может выглядеть так:

Код:
explorer.exe
└── powershell.exe
    └── неизвестный процесс

или:

Код:
explorer.exe
└── cmd.exe
    └── script

Обычные административные ярлыки тоже могут создавать такие цепочки. Необходимо учитывать:

  • пользователя;
  • расположение ярлыка;
  • аргументы;
  • сетевые обращения;
  • подпись дочернего файла;
  • источник загрузки.

---

# Рекомендации для администраторов

## Включите журналирование процессов

Полезны:

  • журнал Microsoft Defender;
  • Microsoft Defender for Endpoint;
  • Sysmon;
  • централизованный сбор Windows Event Log;
  • EDR;
  • журнал PowerShell;
  • журнал брандмауэра;
  • DNS-журналы;
  • прокси-журналы.

Для расследования важны:

  • полный путь процесса;
  • командная строка;
  • родительский процесс;
  • пользователь;
  • хеш;
  • сетевое соединение;
  • время запуска.

## Настройте оповещения

Примеры событий для анализа:

  • создание .lnk в папке автозагрузки;
  • изменение существующего ярлыка;
  • ярлык, указывающий на временную папку;
  • explorer.exe, запускающий интерпретатор с длинной строкой;
  • сетевое соединение сразу после открытия .lnk;
  • запуск неподписанного файла с USB;
  • значок ярлыка с внешнего сетевого ресурса;
  • создание ярлыка почтовым клиентом или браузером.

## Проверяйте почтовые архивы

Почтовый шлюз должен анализировать содержимое:

  • ZIP;
  • RAR;
  • 7Z;
  • ISO;
  • IMG;
  • других контейнеров.

Наличие .lnk внутри архива, особенно вместе со скриптами или исполняемыми файлами, требует повышенного внимания.

## Обучайте пользователей

Пользователь должен знать:

  • значок не определяет реальный тип файла;
  • ярлык может запускать команду;
  • .lnk редко является нормальным деловым документом;
  • предупреждение SmartScreen нельзя игнорировать автоматически;
  • архив с паролем не является признаком безопасности;
  • необычный документ следует проверить у отправителя другим каналом.

---

# Распространённые заблуждения

## «У файла значок PDF, значит это PDF»

Неверно.

Значок ярлыка назначается отдельно.

## «В ярлыке нет исполняемого кода, значит он безопасен»

Неверно.

Ярлык может передать аргументы другой программе или запустить внешний компонент.

## «Антивирус не обнаружил файл, значит он безопасен»

Неверно.

Новый или уникальный ярлык может некоторое время не определяться.

## «Если открылась настоящая папка, ничего опасного не произошло»

Неверно.

Ярлык может сначала выполнить другую команду, а затем открыть ожидаемую папку.

## «Достаточно удалить ярлык»

Не всегда.

Если он уже был открыт, в системе могли появиться:

  • новые файлы;
  • задачи;
  • службы;
  • исключения;
  • расширения;
  • учётные записи;
  • украденные сеансы.

## «Все ярлыки на флешке являются вирусами»

Неверно.

Ярлыки могут быть легальными. Подозрение вызывает неожиданная замена всех папок ярлыками и появление скрытых файлов.

## «Цифровая подпись цели гарантирует безопасность»

Неверно.

Легальная подписанная системная программа может использоваться для выполнения вредоносных аргументов.

---

# Чек-лист проверки подозрительного LNK

Код:
[ ] Файл не был открыт.
[ ] Компьютер отключён от сети.
[ ] Проверено настоящее расширение.
[ ] Проверен тип файла.
[ ] Получен SHA-256.
[ ] Изучено поле «Объект».
[ ] Просмотрены все аргументы.
[ ] Проверена рабочая папка.
[ ] Проверен источник значка.
[ ] Проверен режим окна.
[ ] Проверена горячая клавиша.
[ ] Проверены связанные файлы.
[ ] Проверены сетевые пути.
[ ] Проверена цифровая подпись цели.
[ ] Проверена папка автозагрузки.
[ ] Выполнено антивирусное сканирование.
[ ] При необходимости использована изолированная виртуальная машина.

---

# Часто задаваемые вопросы

## Может ли обычный ярлык содержать вирус?

Ярлык обычно не содержит полноценную исполняемую программу в том же смысле, что и .exe.

Но он способен:

  • запустить вредоносный файл;
  • передать опасную команду интерпретатору;
  • обратиться к внешнему ресурсу;
  • открыть скрипт;
  • загрузить следующий компонент;
  • обеспечить автозапуск.

Поэтому вредоносным может быть сам сценарий, описанный внутри ярлыка.

## Безопасно ли открыть свойства ярлыка?

Открытие свойств значительно безопаснее двойного щелчка по ярлыку, поскольку целевая команда обычно не запускается.

Однако отображение значка или сетевого ресурса потенциально может вызвать сетевое обращение.

Подозрительный файл лучше исследовать:

  • без сети;
  • в виртуальной машине;
  • на отдельном аналитическом компьютере.

## Почему Windows не показывает расширение LNK?

Проводник ориентирован на удобное отображение ярлыков и показывает их как специальные объекты оболочки.

Включите расширения и дополнительно проверяйте столбец «Тип».

## Можно ли превратить EXE в ярлык простым переименованием?

Нет.

Переименование:

Код:
program.exe → program.lnk

не преобразует структуру EXE в Shell Link.

Windows определяет формат не только по названию.

## Может ли ярлык запускаться автоматически?

Ярлык сам по себе обычно запускается при открытии пользователем или обработке механизмом автозапуска.

Если он размещён в папке Startup, Windows может активировать его при входе пользователя.

## Почему ярлык продолжает работать после перемещения программы?

Windows может использовать относительные пути и служебные данные отслеживания цели.

Поведение зависит от способа создания ярлыка, расположения объекта и файловой системы.

## Можно ли удалить стрелку с ярлыка?

Существуют визуальные модификации, убирающие стрелку.

Это не превращает ярлык в обычный файл и не меняет его внутреннюю структуру.

С точки зрения безопасности удаление стрелки нежелательно: пользователь теряет важный визуальный признак.

## Чем LNK отличается от URL-ярлыка?

.lnk использует бинарный формат Shell Link.

.url обычно является текстовым Internet Shortcut, содержащим интернет-адрес и дополнительные параметры.

Оба типа могут использоваться в фишинговых сценариях, но устроены по-разному.

---

# Итоги

Ярлык Windows является не просто указателем на программу.

Формат .lnk способен хранить:

  • путь к цели;
  • аргументы;
  • рабочую папку;
  • отдельный значок;
  • горячую клавишу;
  • режим окна;
  • сетевые параметры;
  • сведения о диске;
  • метаданные целевого файла;
  • данные отслеживания перемещённого объекта.

Злоумышленники используют ярлыки для:

  • маскировки под документы;
  • запуска системных интерпретаторов;
  • передачи запутанных команд;
  • открытия приманки после заражения;
  • закрепления в автозагрузке;
  • изменения существующих ярлыков;
  • распространения через USB;
  • обращения к удалённым сетевым ресурсам;
  • доставки дополнительных компонентов.

Главные правила безопасности:

1. Не открывайте .lnk из неожиданных архивов.
2. Не доверяйте значку файла.
3. Проверяйте тип и свойства.
4. Включите отображение расширений.
5. Изучайте объект и все аргументы.
6. Не игнорируйте SmartScreen.
7. Не отключайте Microsoft Defender.
8. Контролируйте папки автозагрузки.
9. Ограничивайте исходящий SMB.
10. Используйте ASR, WDAC или AppLocker в организациях.
11. Анализируйте подозрительные файлы без сети.
12. После запуска неизвестного ярлыка проверяйте всю систему.

Главный вывод:

Ярлык опасен не тем, как он выглядит, а тем, что именно Windows выполнит после его открытия.
````
 
Назад
Верх Низ