I am given the opportunity to teach Exploiting & Defense in the Bern University of Applied Sciences (Berner Fachhochschule) in the module Application and Software-Security.
In seven afternoons, each four lessons, I’m giving a complete overview of the Art of Exploitation, and the defensive measures which are available today. Topics include:
- Day 1:
- Computer technology basics
- The ELF format and memory mappings
- Day 2:
- x86 function call convention
- x86 Assembler Intro
- How to build shellcode
- Day 3:
- Stack based buffer overflows and their exploitation
- Day 4:
- Exploit mitigation’s (Stack Canary, DEP, ASLR, PIE)
- Secure coding
- Day 5:
- How to defeat exploit mitigation’s (e.g. return-to-libc, information disclosure)
- PIE exploit mitigation
- Day 6:
- Day 7:
- Use-After-Free Heap exploiting
- Contemporary exploiting case study (Browser Exploits, Fuzzing, etc.)
All the Slides are also available: E&D BFH 2017 Slides
For this mandate, I also created a website with an interactive exploit challenges environment called exploit.courses. It provides:
- Vulnerable programs and their exploits
- An environment where the exploits can be started (LXD container in a QEMU VM)
- Writeups on how to exploit the programs
- A Browser based Linux terminal emulator (no need for an SSH client)
The code is available on github; web, server, lxd-server. It leverages the Ubuntu LXD container technologies to implement most of its features.
Leave a Reply