Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-9491_POC — Доказательство концепции уязвимости CVE-2025-9491 с использованием невидимых символов в аргументах файла ярлыка Windows (.lnk) | Kitploit
Инструменты/GitHubGitHub/amperclock/cve-2025-9491_poc
ЭксплуатацияТестирование на ПроникновениеАнализ Бинарных ФайловОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubamperclock/cve-2025-9491_poc

CVE-2025-9491_POC

Доказательство концепции уязвимости CVE-2025-9491 с использованием невидимых символов в аргументах файла ярлыка Windows (.lnk)

Репозиторий
1849 месяцев назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-9491 LNK Obfuscation PoC

Инструмент доказательства концепции для демонстрации уязвимости файлов ярлыков Windows (LNK) (ZDI-CAN-25373 / CVE-2025-9491). Этот инструмент показывает, как вредоносные аргументы командной строки могут быть скрыты внутри файлов .lnk с помощью дополнения пробельными символами.

**Данный инструмент предоставляется только в образовательных целях и для авторизованного тестирования безопасности. Несанкционированный доступ к компьютерным системам является незаконным. Используйте этот инструмент только на системах, которыми вы владеете или на которые имеете явное разрешение для тестирования.


Содержание

  • Описание
  • Детали уязвимости
  • Установка
  • Использование
    • Режим создания
    • Режим обфускации
    • Режим разбора
  • Благодарности

Описание

Это инструмент доказательства концепции для создания и манипуляции файлами Windows .lnk (ярлыков) с целью демонстрации уязвимости CVE-2025-9491. Инструмент позволяет пользователям:

  1. Создавать новые обфусцированные LNK-файлы с нуля
  2. Обфусцировать существующие LNK-файлы, добавляя дополнение к их аргументам
  3. Разбирать LNK-файлы для просмотра их содержимого

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


Детали уязвимости

CVE-2025-9491 — это уязвимость искажения пользовательского интерфейса Windows, затрагивающая файлы .lnk (ярлыков). Она была обнаружена инициативой Zero Day Initiative компании Trend Micro (ZDI-CAN-25373) и эксплуатировалась государственными APT-группами как минимум с 2017 года (дополнительные сведения см. в разделе Благодарности).

Уязвимость использует поле «Цель» фиксированного размера в пользовательском интерфейсе ярлыков Windows. Добавляя к аргументам пробельные символы (пробел, табуляция, перевод строки, возврат каретки), злоумышленник может: скрыть вредоносные команды и выполнить скрытые полезные нагрузки. Это также может использоваться для обхода обнаружения, так как пользователи, проверяющие ярлык, видят только добавленные пробелы, а не реальную команду; EDR будет иметь чрезвычайно длинную командную строку в телеметрии, и если она достаточно длинная, обычные EPP или AV перестанут её полностью считывать.


Установка

Требуется Python 3.7 или выше.

  1. Клонируйте или скачайте репозиторий:

    root@kitploit:~
    git clone https://github.com/amperlcock/CVE-2025-9491_POC.git
    cd CVE-2025-9491_POC
    
  2. Установите зависимости:

    root@kitploit:~
    Быстрый и грязный способ, предпочтительна виртуальная среда.
    pip install -r requirements.txt
    
  3. Запустите инструмент:

    root@kitploit:~
    python main.py --help
    

Использование

Инструмент имеет три основных режима: create (создание), obfuscate (обфускация) и parse (разбор).

Режим создания

Создать новый обфусцированный LNK-файл с нуля.

Синтаксис:

root@kitploit:~
python main.py create -t ЦЕЛЬ -a АРГУМЕНТЫ -o ВЫХОД [опции]

Обязательные аргументы:

  • -t, --target — путь к целевому исполняемому файлу
  • -a, --arguments — аргументы, передаваемые целевому исполняемому файлу
  • -o, --output — путь к выходному LNK-файлу

Необязательные аргументы:

  • -c, --charset — пользовательская кодировка для дополнения (в HEX-формате)

    • По умолчанию: 20,09,0A,0B,0C,0D (пробел, табуляция, LF, VT, FF, CR)
    • Формат: HEX-значения через запятую (без префикса 0x)
  • -s, --padding_size — количество символов дополнения

    • По умолчанию: 128 (нет известного ограничения)
    • Тип: Целое число
  • -p, --pattern_type — стиль шаблона дополнения

    • 1 (по умолчанию): Случайный шаблон — использует случайный выбор из кодировки
    • 2: Моношаблон — повторяет первый элемент кодировки
    • 3: Циклический шаблон — перебирает элементы кодировки по циклу
  • -i, --icon — путь к пользовательской иконке для ярлыка

    • По умолчанию: Нет (используется стандартная иконка)
  • -d, --description — видимое описание для ярлыка

    • По умолчанию: Нет
  • -v, --verbose — включить подробный вывод

Пример:

root@kitploit:~
python main.py create -t C:\Windows\System32\cmd.exe -a "/c whoami" -o output.lnk -s 256 -v

Режим обфускации

Добавить дополнение к аргументам существующего LNK-файла.

Синтаксис:

root@kitploit:~
python main.py obfuscate -i ВХОД -o ВЫХОД [опции]

Обязательные аргументы:

  • -i, --input — путь к существующему LNK-файлу для обфускации
  • -o, --output — путь к выходному LNK-файлу

Необязательные аргументы:

  • -c, --charset — пользовательская кодировка для дополнения (в HEX-формате)

    • По умолчанию: 20,09,0A,0B,0C,0D
    • Формат: HEX-значения через запятую
  • -s, --padding_size — количество символов дополнения

    • По умолчанию: 128
    • Тип: Целое число
  • -p, --pattern_type — стиль шаблона дополнения

    • 1 (по умолчанию): Случайный шаблон
    • 2: Моношаблон
    • 3: Циклический шаблон
  • -v, --verbose — включить подробный вывод

    • Показывает загрузку файла, генерацию дополнения и операции сохранения

Пример:

root@kitploit:~
python main.py obfuscate -i benign.lnk -o obfuscated.lnk -s 256 -p 3 -v

Режим разбора

Отобразить содержимое существующего LNK-файла.

Синтаксис:

root@kitploit:~
python main.py parse -i ВХОД

Обязательные аргументы:

  • -i, --input — путь к LNK-файлу для разбора и отображения

Пример:

root@kitploit:~
python main.py parse -i output.lnk

Примеры

Пример 1: Создание простого обфусцированного ярлыка

root@kitploit:~
python main.py create \
  -t "cmd.exe" \
  -a "/c powershell -Command Get-Process" \
  -o malicious.lnk \
  -s 200 \
  -p 1 \
  -v

Это создаёт ярлык к cmd.exe со скрытой командой PowerShell, перед которой добавлено 200 случайных символов дополнения.

Пример 2: Обфускация существующего ярлыка

root@kitploit:~
python main.py obfuscate \
  -i "legitimate.lnk" \
  -o "obfuscated.lnk" \
  -s 512 \
  -c "20,09,0A" \
  -p 2

Это добавляет 512 символов моношаблонного дополнения (с использованием пробела и табуляции) к существующему ярлыку.

Пример 3: Проверка LNK-файла

root@kitploit:~
python main.py parse -i "suspicious.lnk"

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

Пример 4: Пользовательская кодировка шаблона

root@kitploit:~
python main.py create \
  -t "powershell.exe" \
  -a "-NoProfile -ExecutionPolicy Bypass -Command 'Get-ChildItem'" \
  -o output.lnk \
  -c "20,09,0A,0B,0C,0D" \
  -s 1024 \
  -p 3 \
  -d "My Document"

Благодарности

  • Обнаружение уязвимости: Trend Micro Zero Day Initiative ZDI-CAN-25373
  • Библиотека pylnk3: Strayge и соавторы
  • Оригинальная библиотека pylnk: tim-erwin
Скачать инструмент
  • По умолчанию: Отключён