Devin Neal, Rahul Sridhar
Enrollment: Limited: Advance sign-up required
Sign-up by 12/01
Limited to 30 participants
Attendance: Participants must attend all sessions
Prereq: Familiarity with Linux
A week long course that will cover the inner workings of Linux binaries for the purpose of both understanding and exploitation. The course will cover the ELF binary format, reading assembly, debugging, shellcoding, and return-oritented programming. Each class will have both a lecture component to go over new material and a hands-on component to put the new information to use. The only prerequisite is previous experience with Linux and Python. Previous experience with C, while not necessary, will be very helpful.
You can sign up by submitting the form linked here.
Contact: Devin Neal, DEVNEAL@MIT.EDU
Jan/08 | Mon | 01:00PM-04:00PM | NE 45 2nd Floor |
This session will cover ELF binaries, the programs we'll be working with for the rest of the course. We'll learn how C programs are converted into ELFs and learn the basics of assembly, the language that ELFs are written in. Then we'll go over the way the stack is used in function calls, and how to use GDB to inspect ELF binaries as they execute.
Devin Neal, Rahul Sridhar
Jan/09 | Tue | 01:00PM-04:00PM | NE 45 2nd Floor |
Once we've got some familiarity with ELF binaries, we can get started on basic exploits. We'll find out how to exploit unsafe functions to corrupt memory, call other functions, and eventually get shell access via shellcoding. We'll also go over ret2libc, a technique to get shell access without writing shellcode.
Devin Neal, Rahul Sridhar
Jan/10 | Wed | 01:00PM-04:00PM | NE 45 2nd Floor |
This session will introduce data execution prevention (DEP) and return-oriented programming (ROP), which is used to defeat it. We will also cover ASLR and and the way it is typically defeated via memory leaks.
Devin Neal, Rahul Sridhar
Jan/11 | Thu | 01:00PM-04:00PM | NE 45 2nd Floor |
During this session we'll learn about stack canaries, another mitigation technique against stack smashing. Then we'll go over the global offset table (GOT) and procedure linkage table (PLT), and how they can be used to take control of a program. We will also learn about RELRO, a mitigation technique to prevent this type of exploit.
Devin Neal, Rahul Sridhar
Jan/12 | Fri | 01:00PM-04:00PM | NE 45 2nd Floor |
This session will cover less widely-used exploit techniques and allow you to gain more experience with the ones you already learned.
Devin Neal, Rahul Sridhar