✔Ликбез по LNK. Какие опасности скрывают ярлыки Windows - «Новости»
www
Информация о сэмпле на VirusTotal
Хотя этот пример выполняет вредоносный PowerShell-скрипт, метод с findstr
будет работать и с другим вредоносным содержимым, например, с VBS или командным скриптом. Этот метод сработает и с вредоносным бинарным кодом, закодированным в Base64 и записанным в оверлей.
Способ 2: MSHTA
Переходим ко второму способу наложения контента. Злоумышленники часто используют вредоносные файлы HTML Application (HTA) для распространения малвари, и в случае с LNK-вредоносами приемы с HTA тоже часто идут в ход. Windows доверчиво запускает такие файлы через mshta.
, причем mshta.
настолько терпелив, что пропустит любое содержимое, пока не наткнется на искомый пролог hta:
.
Когда зловредный HTA прикреплен к LNK как накладное содержимое, не нужно ломать голову, с какого места начинается HTA. Достаточно одной простой команды: mshta [
.
Поля образца LNK-малвари, использующей HTA-оверлеи
www
Информация о сэмпле на VirusTotal
Структура здесь простая:
P1: Содержимое LNK
P2:HTA-скрипт
Ниже — COMMAND_LINE_ARGUMENTS
этого примера.
Вредоносный скрипт, запускающий содержимое HTA через оверлей
Он просто запускает mshta, передавая самого себя в качестве аргумента для mshta.
Способ 3: Команды и фишки PowerShell
Команды PowerShell и встроенные возможности вроде Select-String
, Get-Content
и .
отлично подходят для поиска или извлечения контента. Причем эти команды можно закодировать так, чтобы их было сложнее засечь.
Давай рассмотрим пример малвари в формате LNK, которая использует трюк с PE-файлом, закодированным в Base64 и вставленным в качестве оверлея.
Образец вредоноса
www
Информация о сэмпле на VirusTotal
Структура:
P1: Содержимое LNK
P2:PE, закодированный в Base64
Поле COMMAND_LINE_ARGUMENTS
содержит скрипт PowerShell с контентом, закодированным в Base64.
Содержимое переводится из Base64 в текст.
Раскодированное содержимое
Вот что делает эта команда:
- Ищет файл, заканчивающийся на
.
.lnk - Ищет в тексте паттерн
BS:
с помощью командыD Select-String
. - Раскодирует из Base64 все, что идет после паттерна
BS:
.D - Сохраняет раскодированный текст в файл в директории
TEMP
и запускает его с помощью командыStart-Process
.
Ниже — единственный паттерн BS:
в файле LNK.
Начало оверлейного контента в образце вредоноса
После BS:
идет текстовый шаблон в кодировке Base64, который очень часто составляет первые три байта исполняемого (PE) файла (4d
). Содержимое, начинающееся с TVqQ
, — это P2-оверлей, не являющийся частью содержания LNK. Декодируешь эту строку из Base64 — получаешь вредоносный PE-файл.
Сравнение способов выполнения оверлей-контента
У каждой из этих трех техник выполнения наложенного контента свои плюсы. Конкретнее:
find/findstr — универсальная и простая в освоении техника. Поддерживает разные шаблоны‑разделители и разнообразные полезные нагрузки. Плюс ко всему, командуfind
можно шифровать стандартными методами обфускации скриптов.
mshta — реализовать проще простого, ведьmshta.
настолько всеяден, что проигнорирует любой не-HTA контент. Достаточно запустить mshta, чтобы выполнить файл LNK. Минус — полезная нагрузка должна быть HTA-скриптом.exe
PowerShell (команды/встроенные возможности) — реализация посложнее, зато можно использовать хардкорную обфускацию, чтобы скрыть или замаскировать вредоносное содержание в накладке.
Эти три методики составляют примерно 95% от всех, которые специалисты Unit 42 видели при наборе данных. На диаграмме ниже все наглядно разложено.
Распределение техник выполнения оверлея в образцах LNK-малвари
Остальные 5,6% — это разнообразные техники для поиска и исполнения оверлей‑контента. Тут тебе и фиксированные смещения, и запуск программ‑загрузчиков. Мощь PowerShell позволяет хакерам применять целый арсенал методов для выполнения вредоносного кода в оверлее — границы тут только в фантазии самого злоумышленника.
Выводы
Итак, мы разобрали четыре типа малвари LNK. Эти знания пригодятся не только специалистам по безопасности, но и аналитикам данных. Если ты используешь Windows, проверяй любой подозрительный .lnk, прежде чем кликнуть два раза. Не дай малвари тебя провести!