Werkzeuge wie Metasploit sind großartig, um Computer auszunutzen, aber was passiert, nachdem du Zugriff auf einen Computer erlangt hast? Backdoorme beantwortet diese Frage, indem es eine Vielzahl von Hintertüren (Backdoors) einsetzt, um über lange Zeiträume Persistenz zu etablieren.
Sobald eine SSH-Verbindung zum Ziel hergestellt wurde, können die Stärken von Backdoorme zur Geltung kommen. Leider ist Backdoorme kein Werkzeug, um Root-Zugriff zu erlangen – nur, um diesen Zugriff zu behalten, sobald er erlangt wurde.
Bitte verwende Backdoorme nur mit ausdrücklicher Erlaubnis – bitte hacke nicht ohne zu fragen.
Nutzung
Backdoorme ist in zwei Teile aufgeteilt: Backdoors und Module.
Backdoors sind kleine Code-Schnipsel, die auf einem Port lauschen und zu einem Interpreter wie Bash umleiten. Es gibt viele Backdoors in verschiedenen Sprachen, um Abwechslung zu bieten.
Module machen die Backdoors wirkungsvoller, indem sie sie häufiger ausführen, zum Beispiel alle paar Minuten oder beim Systemstart. Dies hilft, Persistenz zu etablieren.
Demonstration:
Einrichtung
Um Backdoorme zu starten, stelle zunächst sicher, dass die erforderlichen Abhängigkeiten installiert sind.
Für Python 3.5+:
$ sudo apt-get install python3 python3-pip python3-tk nmap
$ cd backdoorme/
$ virtualenv --python=python3.5 env
$ source env/bin/activate
(env) $ pip install -r requirements.txt
Für Python 2.7:
$ sudo python dependencies.py
Erste Schritte
Backdoorme starten:
$ python master.py
Um ein Ziel hinzuzufügen:
>> addtarget
Target Hostname: 10.1.0.2
Username: victim
Password: password123
+ Target 1 Set!
>>
Backdoors
Um eine Backdoor zu verwenden, führe einfach das Schlüsselwort "use" aus.
>> use shell/metasploit
+ Using current target 1.
+ Using Metasploit backdoor...
(msf) >>
Von dort aus kannst du für die Backdoor relevante Optionen setzen. Führe entweder "show options" oder "help" aus, um eine Liste der konfigurierbaren Parameter zu sehen. Um eine Option zu setzen, verwende einfach das Schlüsselwort "set".
(msf) >> show options
Backdoor options:
Option Value Description Required
------ ----- ----------- --------
name initd name of the backdoor False
...
(msf) >> set name apache
+ name => apache
(msf) >> show options
Backdoor options:
Option Value Description Required
------ ----- ----------- --------
name apache name of the backdoor False
...
Wie in Metasploit sind die Backdoors nach Kategorien organisiert.
- Hilfsfunktionen
- keylogger - Fügt einen Keylogger zum System hinzu und bietet die Möglichkeit, die Ergebnisse per E-Mail zurückzusenden.
- simplehttp - Installiert den SimpleHTTP-Server von Python auf dem Client.
- user - Fügt einen neuen Benutzer zum Ziel hinzu.
- web - Installiert einen Apache-Server auf dem Client.
- Eskalation
- setuid - Die SetUID-Backdoor funktioniert, indem das Setuid-Bit auf einer Binärdatei gesetzt wird, während der Benutzer Root-Zugriff hat, sodass die Binärdatei später, wenn sie von einem Benutzer ohne Root-Zugriff ausgeführt wird, mit Root-Rechten ausgeführt wird. Standardmäßig setzt diese Backdoor das Setuid-Bit auf nano, sodass der Angreifer, falls der Root-Zugriff verloren geht, per SSH als unprivilegierter Benutzer zurückkommen und nano (oder eine beliebige andere Binärdatei) als Root ausführen kann ('nano /etc/shadow'). Beachte, dass anfänglich Root-Zugriff erforderlich ist, um diese Eskalations-Backdoor zu installieren.
- shell - Die Shell-Backdoor ist eine Privilegieneskalations-Backdoor, ähnlich wie ihr SetUID-Pendant (aber spezifischer). Sie dupliziert die Bash-Shell in eine versteckte Binärdatei und setzt das SUID-Bit. Beachte, dass anfänglich Root-Zugriff erforderlich ist, um diese Eskalations-Backdoor zu installieren. Verwende sie, indem du nach dem SSH-Einloggen als unprivilegierter Benutzer einfach ".bash -p" ausführst – dann hast du Root-Zugriff.
- Shell
- bash - Verwendet ein einfaches Bash-Skript, um eine Verbindung zu einer bestimmten IP- und Portkombination herzustellen und die Ausgabe in Bash umzuleiten.
- bash2 - Eine leicht abgewandelte (und zuverlässigere) Version der obigen Bash-Backdoor, die clientseitig nicht nach dem Passwort fragt.
- sh - Ähnlich wie die erste Bash-Backdoor, leitet aber die Eingabe an /bin/sh um.
- sh2 - Ähnlich wie die zweite Bash-Backdoor, leitet aber die Eingabe an /bin/sh um.
- metasploit - Verwendet msfvenom, um eine reverse_tcp-Binärdatei auf dem Ziel zu erstellen und führt diese dann aus, um eine Verbindung zu einer Meterpreter-Shell herzustellen.
- java - Erstellt eine Socket-Verbindung mit Java-Bibliotheken und kompiliert die Backdoor auf dem Ziel.
- ruby - Verwendet Rubys Bibliotheken, um eine Verbindung herzustellen und leitet dann an /bin/bash um.
- netcat - Verwendet netcat, um die Standardeingabe und -ausgabe an /bin/sh umzuleiten und gibt dem Benutzer eine interaktive Shell.
- netcat_traditional - Nutzt die -e-Option von netcat-traditional, um eine Reverse-Shell zu erstellen.
- perl - Ein Skript in Perl, das die Ausgabe an Bash umleitet und den Prozess umbenennt, um weniger auffällig zu sein.
- php - Führt eine PHP-Backdoor aus, die die Ausgabe an Bash sendet. Installiert keinen Webserver automatisch, sondern verwendet das Web-Modul.
- python - Verwendet ein kurzes Python-Skript, um Befehle auszuführen und die Ausgabe an den Benutzer zurückzusenden.
- web - Liefert einen Webserver an das Ziel aus, lädt dann die PHP-reverse_tcp-Backdoor von msfvenom hoch und verbindet sich mit dem Host. Obwohl dies auch eine PHP-Backdoor ist, unterscheidet sie sich von der obigen PHP-Backdoor.
- Zugriff
- remove_ssh - Entfernt den SSH-Server auf dem Client. Oft nützlich, um am Ende einer Backdoorme-Sitzung alle Spuren zu beseitigen.
- ssh_key - Erstellt einen RSA-Schlüssel und kopiert ihn auf das Ziel für eine passwortlose SSH-Verbindung.
- ssh_port - Fügt einen neuen Port für SSH hinzu.
- Windows
- windows - Verwendet msfvenom, um eine Windows-Backdoor zu erstellen.
Module
Jede Backdoor kann mit zusätzlichen Modulen ausgestattet werden, um sie wirkungsvoller zu machen. Um ein Modul hinzuzufügen, verwende einfach das Schlüsselwort "add".
(msf) >> add poison
+ Poison module added
Jedes Modul hat zusätzliche Parameter, die angepasst werden können. Wenn "help" erneut ausgeführt wird, kannst du die zusätzlichen Optionen sehen oder setzen.
(msf) >> help
...
Poison module options: