Spring Training 2016 - Corelan Bootcamp
From BruCON 2016
The Corelan “BOOTCAMP” is a truly unique opportunity to learn both basic & advanced techniques from an experienced exploit developer. During this (typically 3 ‘long’ day) course, students will be able to learn all ins and outs about writing reliable exploits for the Win32 platform. The trainer will share his “notes from the field” and various tips & tricks to become more effective at writing exploits.
We believe it is important to start the course by explaining the basics of buffer overflows and exploit writing, but this is most certainly not “your average” entry level course. In fact, this is a true bootcamp and one of the finest and most advanced courses you will find on Win32 stack based exploit development.
This hardcore hands-on course will provide students with solid understanding of current Win32 (stack based) exploitation techniques and memory protection bypass techniques. We make sure the course material is kept updated with current techniques, includes previously undocumented tricks and techniques, and details about research we performed ourselves. Combined with the way the course is built up, this will turn these 3 days into a truly unique experience.
During all of our courses, we don’t just focus on techniques and mechanics, but we also want to make sure you understand why a given technique is used, why something works and why something doesn’t work.
We believe those are just a few arguments that makes this training stand out between other exploit development training offerings. Finally, we offer you post-training support as well. If you have taken the course and you still have questions afterwards, we will help.
- The x86 environment
- System Architecture
- Windows Memory Management
- Introduction to Assembly
- The stack
- The exploit development lab environment
- Setting up the exploit developer lab
- Using debuggers and debugger plugins to gather primitives
- Stack Buffer Overflows
- Stack Buffers
- Saved return pointer overwrites
- Stack cookies
- Structured Exception Handlers
- Function pointers
- Data/object pointers
- vtable/virtual functions
- Integer overflows
- Size limitations
- Limited buffers, shellcode splitting
- Reliability++ & Reusability++
- Finding and avoiding bad characters
- Creative ways to deal with character set limitations
- Metasploit framework Exploit Modules
- Writing exploits for the Metasploit Framework
- Porting exploits to the Metasploit Framework
- Bypassing ASLR
- Bypassing NX/DEP
- Return Oriented Programming / Code Reuse (ROP)
- Heap Spraying
- Heap Management and behaviour
- Heap Spraying for Internet Explorer 6 and 7
- Heap Feng Shui & heaplib
- Precise Heap Spraying in modern browsers
- IE8, IE9, IE10, Firefox
- Browser Exploitation
- Exploiting Browser Use-After-Free conditions
During the course, students will get the opportunity to work on real vulnerabilities in real applications and use the latest exploitation techniques that work on current Operating Systems.
Make no mistake. Although this course will explain the basics of exploit development, students will need to be able to transition to more complex theory and exercises quickly. The course has a steep learning curve and will require your full attention and focus. The “Course Contents” on this page is subject to change without prior notice & can be updated between the moment of registration and the actual course. We will try to cover as much as we can from the “Course Contents”, based on the overall ability to absorb knowledge and time needed to complete the exercises, but BruCON and Corelan cannot ever guarantee that we will be able to cover everything.
Students should :
- be able to read simple C code and simple scripts
- be familiar with writing basic scripts using python/ruby/…
- be ready to dive into a debugger and read asm for hours and hours and hours
- be ready to think out of the box and have a strong desire to learn
- be fluent with managing Windows / Linux operating system and with using vmware workstation/virtualbox
- be familiar with using Metasploit
- No prior knowledge of assembly is required, but it will certainly help if you have some basic knowledge :)
Unless specified otherwise, students are required to bring the following :
- A laptop (no netbook) with vmware workstation/virtualbox and enough processing power and RAM (we recommend 4Gb of RAM) to run up to 2 virtual machines at the same time. Make sure your laptop has a screen size of at least 15″. The use of a 64bit processor and a 64bit operating system on the laptop will make the exercises more realistic.
- 2 Virtual machines installed (Windows 7 SP1, Kali Linux)
Note : you will receive the exact installation instructions after registration, so don’t start installling the VMs yet.
All required tools and applications will be provided during the training or will be downloaded from the internet during the training.
You must have full administrator access to all machines. You must be able to install and remove software, and you must be able to disable and/or remove firewall/antivirus/… when necessary.
Mon. 20 - 22 April 2016 (09:00 - 17:00) (3-day)