Einleitung
Meterpreter ist eine fortschrittliche Payload aus dem Metasploit Framework, die eine interaktive Shell auf einem kompromittierten System bereitstellt. Es ist ein wichtiges Werkzeug für Penetrationstester.
In diesem Lab lernen Sie die grundlegenden Befehle für die einfache Navigation und Informationsbeschaffung innerhalb einer Meterpreter-Shell. Wir werden ein Skript verwenden, um eine echte Meterpreter-Sitzung zu simulieren.
Um zu beginnen, führen Sie den folgenden Befehl in Ihrem Terminal aus, das sich bereits im Verzeichnis ~/project befindet, um die simulierte Sitzung zu starten. Ihre Eingabeaufforderung ändert sich zu meterpreter >.
./meterpreter_simulator.sh
Sie sehen einige Ausgaben, die eine Verbindung simulieren, und alle nachfolgenden Befehle in diesem Lab sollten in diese neue meterpreter > Eingabeaufforderung eingegeben werden.
Abrufen grundlegender Systeminformationen mit dem Befehl sysinfo
In diesem Schritt lernen Sie, den Befehl sysinfo zu verwenden. Dieser Befehl ist eines der ersten Dinge, die Sie nach dem Erhalt einer Sitzung ausführen sollten, da er einen schnellen und wertvollen Überblick über das Zielsystem liefert. Er zeigt den Computernamen, das Betriebssystem und die Systemarchitektur an.
Geben Sie an der Eingabeaufforderung meterpreter > den Befehl sysinfo ein und drücken Sie Enter:
sysinfo
Sie sehen eine Ausgabe, die den grundlegenden Informationen des simulierten Zielcomputers ähnelt:
Computer : labex-vm
OS : Ubuntu 22.04 (Linux 5.15.0-generic)
Architecture : x64
System Language : en_US
Meterpreter : x64/linux
Identifizieren des aktuellen Benutzers mit dem Befehl getuid
In diesem Schritt verwenden wir den Befehl getuid. Das Verständnis der Berechtigungen Ihrer aktuellen Sitzung ist entscheidend. Der Befehl getuid teilt Ihnen sofort mit, unter welchem Benutzerkonto die Meterpreter-Payload ausgeführt wird. Diese Information hilft zu bestimmen, welche Aktionen Sie auf dem System ausführen können und ob Sie versuchen müssen, die Berechtigungen zu erhöhen (privilege escalation).
Geben Sie an der Eingabeaufforderung meterpreter > getuid ein:
getuid
Die Ausgabe zeigt den Benutzernamen und die zugehörige Benutzer-ID (uid) an. In diesem Fall führen wir die Sitzung als Benutzer labex aus.
Server username: uid=1000, euid=1000, gid=1000 (labex)
Auflisten laufender Prozesse mit dem Befehl ps
In diesem Schritt lernen Sie, laufende Prozesse mit dem Befehl ps aufzulisten. Der Meterpreter-Befehl ps ähnelt seinem Linux-Pendant, wird aber über die Sitzung auf der Remote-Maschine ausgeführt. Das Auflisten von Prozessen ist für die Situationserkennung unerlässlich. Es kann Ihnen helfen, Sicherheitssoftware zu identifizieren, interessante Anwendungen zu finden oder einen stabilen Prozess zum Migrieren auszuwählen.
Führen Sie nun den Befehl ps in Ihrer Meterpreter-Shell aus:
ps
Die Ausgabe ist eine Liste der auf dem Zielsystem laufenden Prozesse. Unsere Simulation zeigt einige wichtige Prozesse, darunter die Shell (zsh) und das Skript selbst (bash).
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
1 0 systemd x64 0 root /usr/lib/systemd/systemd
935 1 sshd x64 0 root /usr/sbin/sshd
1050 935 sshd x64 1 labex /usr/sbin/sshd
1051 1050 zsh x64 1 labex /bin/zsh
1100 1051 bash x64 1 labex /bin/bash
Verwenden des Befehls help, um alle Meterpreter-Befehle anzuzeigen
In diesem Schritt werden wir den Befehl help untersuchen. Meterpreter ist vollgepackt mit Funktionen, und es ist unmöglich, sich jeden Befehl zu merken. Der Befehl help ist Ihr bester Freund und bietet eine umfassende Liste aller verfügbaren Befehle, gruppiert nach Kategorien.
Um die Liste der verfügbaren Befehle anzuzeigen, geben Sie einfach help ein:
help
Die Ausgabe zeigt die Kernbefehle sowie Befehle aus geladenen Modulen wie stdapi an. Nehmen Sie sich einen Moment Zeit, um die Liste durchzusehen und sich einen Überblick über die Fähigkeiten von Meterpreter zu verschaffen.
Core Commands
=============
Command Description
------- -----------
? Help menu
background Backgrounds the current session
exit Terminate the meterpreter session
help Help menu
quit Terminate the meterpreter session
Stdapi: System Commands
=======================
Command Description
------- -----------
getuid Get the user that the server is running as
ps List running processes
sysinfo Gets information about the remote system, such as OS
Sitzung mit dem Befehl background in den Hintergrund verschieben
In diesem Schritt lernen Sie, wie Sie den Befehl background verwenden. Wenn Sie mehrere kompromittierte Systeme verwalten, möchten Sie eine Sitzung nicht schließen, um an einer anderen Aufgabe zu arbeiten. Der Befehl background verschiebt die aktuelle Meterpreter-Sitzung in den Hintergrund und ermöglicht es Ihnen, zur Hauptkonsole von Metasploit (msf6 >) zurückzukehren, um Sitzungen zu verwalten oder andere Module zu starten.
In unserer Simulation beendet die Ausführung von background das Skript und gibt Sie an das normale Linux-Terminal zurück. Geben Sie jetzt background ein:
background
Sie sehen eine Bestätigungsnachricht, und Ihre Eingabeaufforderung wechselt von meterpreter > zurück zu labex@ubuntu:~/project$. Dies bedeutet, dass Sie die Sitzung erfolgreich in den Hintergrund verschoben haben.
[*] Backgrounding session 1...
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben gelernt, wie Sie eine grundlegende Meterpreter-Sitzung navigieren und erste Erkundungen durchführen.
Sie sind nun mit den folgenden grundlegenden Befehlen vertraut:
sysinfo: Zum Sammeln grundlegender Informationen über das Betriebssystem und die Hardware.getuid: Zur Identifizierung des Berechtigungslevels des aktuellen Benutzers.ps: Zum Auflisten laufender Prozesse auf dem Zielsystem.help: Zum Anzeigen aller verfügbaren Befehle.background: Zum Zurückkehren zur Hauptkonsole, ohne die Sitzung zu beenden.
Diese Befehle sind die Bausteine für fortgeschrittenere Post-Exploitation-Aktivitäten. Ihre Beherrschung ist der erste Schritt, um mit dem Metasploit Framework vertraut zu werden.


