Hack5: Exploit Development

Hack5: Exploit Development

Diese Schulung vermittelt die theoretischen und praktischen Grundlagen der Funktionsweise und der Entwicklung von Exploits. Dabei soll vorrangig betrachtet werden, wie Zielplattformen aufgebaut sind, welche Besonderheiten sie aufweisen, welche verschiedenen Formen der Schwachstellenanalyse existieren, welche Werkzeuge für die Exploit-Entwicklung wichtig sind (Debugger, Disassembler, Exploit-Frameworks etc.) und wie diverse Schwachstellentypen ausgenutzt werden können. Ferner geht die zweitägige Schulung noch auf die Frage ein, welche Möglichkeiten existieren, sich gegen eine Ausnutzung der gezeigten Schwachstellen durch Angreifer zu schützen und wie Hacker solche Schutzmaßnahmen möglicherweise umgehen können.

Themen

Besonderheiten verschiedener Zielplattformen

  • Prozessorarchitektur: x86
  • Betriebssysteme: Windows, Unix/Linux

Verschiedene Formen der Schwachstellenanalyse

  • Statische Codeanalyse
    • Quellcodeanalyse
    • Analyse von Binärprogrammen (Reverse Code Engineering)
  • Dynamische Codeanalyse (Laufzeitanalyse)
    • Verhaltensbasierte Sicherheitsanalyse
    • Fuzzing

Tools of the Trade: Wichtige Werkzeuge für die Exploit-Entwicklung

  • Debugger/Disassembler/Exploit-Frameworks/ Assembler (x86)
  • Programmiersprache der Wahl (z. B. C/C++, Python, Perl, Ruby etc.)

Ausnutzung verschiedener Schwachstellentypen

  • Fehler in der Hard- und Softwarearchitektur und Anwendungslogik
  • Fehler in der Datenverarbeitung, z. B.
    • Buffer Overflow-Schwachstellen (Stack, Heap, Off-By-One)
    • Format String-Schwachstellen

Schutzmaßnahmen und Umgehungsmöglichkeiten

  • Stack Cookies
  • SafeSEH
  • Data Execution Prevention (DEP)
  • Address Space Layout Randomization (ASLR)

Technische Voraussetzungen

Grundkenntnisse über Betriebssysteme und Rechnerarchitektur

Dauer

Zwei Tage