This is Steve Sims sending out an update on my SANS course SEC709 - Developing Exploits for Penetration Testers & Security Researchers. The course has been expanded to a four day course, with a five day version running occasionally as well. Interestingly, the course is getting mostly international and government attention...
The four day version includes:
- Writing standard Stack-based buffer overflows.
- Writing return-to-libc style stack-based buffer overflows.
- Defeating Stack Canaries and Cookies.
- Defeating Address Space Layout Randomization (ASLR)
- Defeating software and hardware Data Execution Prevention (DEP).
- Defeating Safe-Structured Exception Handling (SafeSEH).
- Exploiting format string vulnerabilities.
- Heap overflows abusing dlmalloc and ptmalloc.
- FreeList exploitation.
- GOT, DTORS, and function pointer overwrites.
- Heap spraying on XP SP2/3 & Vista.
- Process Environment Block (PEB) Exploitation.
- Fuzzing for bug discovery.
- Understanding x86 assembly.
- Understanding symbol resolution in depth.
- Capture the Flag!
This is a very technical, advanced course and is not for everyone. It is very up to date unlike many other courses I've come across through various vendors. I would love to have you if you're up to the challenge! You do not need to be a programmer, but do need to understand programming concepts and be a quick learner. We use Python and C to exploit vulnerable programs written in C and C++.
Why should you take the course? The companies we are protecting expect us to have a strong skill set when it comes to penetration testing. Running automated checks for known vulnerabilities is fine, but only checks for, well, known vulnerabilities. When performing black box or crystal box penetration testing, or when testing home-grown and commercial applications, you must be able to step outside of the box and exhaust all attack vectors. Also, during a risk assessment, you may get a risk item after running a code scanning tool such as Fortify. Does this mean the risk item is an absolute flaw in the application that allows an attacker to take control? Unless you can take the next step and write custom exploitation PoC code, you don't know... I've seen countless companies spend millions on remediating code for a supposed vulnerability that cannot be exploited.
Other justification for taking the course includes:
- Understanding the attack methods hackers use to write 0-day exploits.
- Understanding what security controls have been applied to various Windows and Linux OS' and how to defeat them!
- The ability to write custom exploits.
- Knowledge gained and job security.
- Because you're a security rockstar...!
There is no ego or assumptions that come with this class. The course is to serve as a bridge from standard penetration testing to advanced penetration testing and exploitation development. Through the methods used in the class, I have discovered 0-day vulnerabilities in RFID software, TFTP software, FTP software, RPC services, Cellular phone software and a plethora of home-grown application flaws.
If you have any questions, you can hit me up at firstname.lastname@example.org. I'm happy to answer questions on the course material, prerequsites, etc...
The course and dates it is running can be found here: http://www.sans.org/training/description.php?mid=1107