MIT: Independent Activities Period: IAP

IAP 2018 Activities by Sponsor - Devin A. Neal



Fundamentals of Exploitation

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


Linux, ELF, and RE

Add to Calendar 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


Fundamentals of PWN

Add to Calendar 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


DEP, ROP, and ASLR

Add to Calendar 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


Stack Canaries, GOT/PLT, and RELRO

Add to Calendar 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


Miscellaneous

Add to Calendar 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