# Penetration Testing

### Was ist Pentesting?

- Aufdecken von Sicherheitslücken
- Mögliche Angriffszenarien durchgehen
- Sicherheitslücken aufzeigen
- Dokumentation **aller** durchgeführten Schritte und Ergebnisse, jedes kleine bisschen  
    
    - Fließt in die Präsentation ein
- "Ethical hacking"
- Eindringen mit Zustimmung
- Simulation eines Cyber-Angriffs ohne Schaden anzurichten
- Nutzung von Werkzeugen eines Angreifers
- Standards: OWASP Testing Guide, OSSTMM3
- Kunde möchte am Ende die Dokumentation der Ergebnisse: Was wurde getestet? Wie wurde es getestet? Was ist das Ergebnis?

#### Definition

- Verbesserung der IT-Sicherheit eines Systems
- Erkennung Schwachstellen
- "Nachweis" der Sicherheit durch eine 3. Partei (gelegentlich)
- Verbesserung interner Sicherheitsprozesse

#### Rechtliches

- Straftat Computerbetrug §263 StGB
- Ausspähen von Daten §202a StGB
- Abfangen von Daten §202b StGB
- Vorbereiten des Ausspähens oder Abfangens (Hacker-Paragraph) §202c StGB
- Datenhehlerei §202d StGB

#### Beauftragung

- Beauftragungsdatum hier: 10.01.2025
- Klärung Ziel, Zeitplan und Aufwand
- Festlegung des Ablaufs (Projektplan)
- Vertraulichkeitsvereinbarung (NDA)
- Rollen und Verantwortlichkeiten auf Tester und Kundenseite
- Umfang und Arbeitsaufwand
- Kommerzielle Aspekte: Kosten, Zahlungsmodalitäten, Haftung/Haftungsausschluss (im Projekt hier nicht)

#### Briefing

- Definition zu testende Systeme u. Netzwerkadressen (Scope)
- Klärung, in welchem Maß Zugang bestehen: 
    - Internet?
    - Aus authentisierter Nutzer einer Anwendung?
    - Physikalischer Zugriff auf Netze im Haus?
- Sollen Maßnahmen mit zerstörerischen Auswirkungen durchgeführt werden?
- Was sind Kriterien und Vorgehen für Abbruch des Tests?
- DoS, DDoS eingeschlossen?
- Ausschluss bestimmter Techniken (z.B. Social Engineering, Gold Tickets, ...)
- <span style="text-decoration: underline;">Keine personenbezogenen Daten und Passwörter in die Dokumentation schreiben</span>

#### Black Box Test

- Keine Informationen über das zu testende System 
    - Strukturen, Schwachstellen, ... müssen von außen erkannt werden
- Vorteile 
    - Perspektive eines externen Angreifers
    - Realistische Angrifssimulation
- Nachteile 
    - Hoher Zeitaufwand durch aufwändige Analyse

#### White Box Test

- Vollständiger Zugriff auf Dokumentation, Quellcode, ... (Position eines gut informierten Insiders)
- Vorteile 
    - Gezieltes Angreifen von Komponenten
    - Verständnis für den Gesamtnetzzusammenhang
- ...

#### Gray Box Test

- Zugriff zu ausgewählter Dokumentation bestimmter Systemkomponenten
- Vorteil 
    - Gezielt Komponenten angreifen
    - Angriffswege können vorab identifiziert und geplant werden
    - Test kann auch bei unvollständiger Dokumentation durchgeführt werden
- Nachteil 
    - Auftraggeber muss die bereitgestellte Dokumentation auswählen

#### Umfang des Pentests

- Uneingeschränkt 
    - Alle Systeme können angegriffen werden
    - Ausnahmen können definiert werden für besonders kritische Systeme
- Eingeschränkt (meistens) 
    - Nur bestimmte Systeme und Netze angreifen z.B. Alle Systeme in der DMZ
- Fokussiert (häufig) 
    - Es wird nur eine bestimmte Anwendung oder Komponente getestet
    - z.B. Test einer neuen Webanwendung vor der Inbetriebnahme

#### Pflichten Auftraggeber und Auftragnehmer

- Auftraggeber 
    - Bereitstellung Briefing-Informationen
    - Information von potentiell betroffenen Dritten (Cloud/Hoster)
    - Vermeidung unnötiger Schäden durch den Test
- Auftragnehmer 
    - Geheimhaltung der erhaltenen Informationen und Schwachstellen
    - Dokumentation Vorgehensweise und Ergebnisse (Nachvollziehbarkeit)
    - Allgemeine Sorgfaltspflicht zur Vermeidung unnötiger Schäden

#### "Permission to attack"

- Angriffe gegen IT-Systeme sind normalerweise strafbar (§202a StGB)
- Bestätigung des Auftrags zum Angriff sichert den Pentester rechtlich ab
- Dokumentation sollte schriftlich erfolgen als sog. "permission to attack"

#### Durchführung

- Start-/Ende-Meldungen (z.B. Security Monitoring Team + Incident Management)
- Kontaktdaten für ggfs. Abbruch
- 5 Phasen 
    - Vorbereitung 
        - Tools installieren (Kali Linux)
        - WLAN aufsetzen in dem man die Geräte einbringen kann, ...
    - Reconnaissance 
        - Überblick über die Zielsysteme bekommen
        - Analyse des Angriffsziels mit dem Ziel möglichst umfassende Informationen zu sammeln
        - Identifikation der vorhandenen Systeme die Teil des Angriffsziels sind
        - Nutzung öffentlicher Informationsquellen ("OSINT") im Internet
        - Verbindungsaufbau zu den Zielsystemen (Websiten-Aufrufe, Ports, Scans, ...)
    - Auswertung 
        - Analyse erkannter Systeme und Schwachstellen
        - Auswahl von Angriffszielen, Dokumentation der Auswahl für den Abschlussbericht
        - Recherche von Angriffsmustern und Schadcode/Exploits
    - Angriffsversuche 
        - Erfolgreicher Einbruch in die Zielsysteme
        - Aktive Einbruchsversuche mit ausgewählten Werkzeugen
        - Prüfung, in wie weit die Schwachstellen ausnutzbar sind
        - Prüfung, welche Konsequenzen die Ausnutzung der Schwachstellen für die Zielsysteme hat
        - Je nach Beauftragung kann auf die Durchführung des Angriffs verzichtet werden (Doku der Möglichkeit reicht dann aus)
    - Abschließende Analyse 
        - Aufstellung der erkannten und angegriffenen Systeme
        - Darstellung identifizierter Schwachstellen
        - Ableitung damit verbundener Risiken
        - Darstellung nach (nachvollziehbare) Dokumentation erfolgreicher Angriffsversuche
        - Empfehlungen von Maßnahmen zur Behebung der Schwachstellen

#### Abschlussbericht

- Erklären was das Ziel ist
- Was sind die Briefing Informationen?
- Vorstellung der Ergebnisse des Pentests beim Kunden
- Vorgehen und eingesetzte Werkzeuge
- Identifizierte Systeme und Schwachstellen
- Bewertung der Schwachstellen
- Handlungsempfehlungen und Gegenmaßnahmen
- <span style="text-decoration: underline;">In Präsi: Kein Protokoll erzählen "das haben wir gemacht, und das ..." sondern eine gute Story erzählen</span>

#### Tools - Kali Linux

- Optimiert für die Durchführung von Pentests
- Basiert auf Debian
- Läuft auch auf Windows WSL

**Ausgewählte Tools:**

- Aircrack-ng (WLAN Credentials)
- Burp suite (Application Security Scanner) 
    - Technisch gesehen Proxy Server
    - MITM Angriff gegen TLS
    - Bildungsregeln für Token und Cookies
    - Manipulation und Veränderung von Anfragen
    - Einfügen von Strings, SQL-Injection
- OWAP-ZAP (Web Application Scanner) 
    - Scan nach Standardproblemen (x-site-scripting)
- Nmap, Wireshark (Netzwerk-Analyse)
- Nessus (Schwachstellenscanner) 
    - OpenVAS - Fork von der letzten OS-Nessus-Version aber OpenSource
- spiderfoot - Crawlen von Websites und extrahieren von interessanten Informationen
- ARP cache poisoning 
    - Manipulation Auflöstung von ARP-Adressen auf IP-Adressen
    - Daten kommen auf Gerät des Angreifers an statt auf dem Standard-Gateway
    - Angreifer kann in geswitchten Netzen Daten mitlesen
    - Tool: arpspoof
    - Schutz davor: TLS
- fuzzer - z.B. API-Pentest Tool (viele Fehlereingaben senden)