CPE/ECE Credits: 40
This course is designed for white hat hackers, tinkerers, and hobbyists with limited experience and an interest in embedded systems analysis. It starts with a basic introduction to electronics, using a series of hands-on lab exercises to give the student a comfortable foundation using various embedded analysis tools and techniques, including exercises in extracting and analyzing flash images from live hardware. Students will learn how to identify and extract critical data in the firmware, and perform basic vulnerability analysis on embedded code.
The course continues with advanced emulation and exploitation techniques against MIPS Linux systems, including stack overflows, return to libc and return oriented programming. Students will develop buffer overflow exploits against live MIPS Linux devices using only a firmware update image - no hardware required!
The course culminates with students identifying, exploiting, and patching 0-day vulnerabilities in a real-world embedded device. At the end of the course, students will have the knowledge and experience to perform hardware and firmware analysis of commercial, off-the-shelf embedded systems.
You will need the following to succeed in class:
* Intimate familiarity with the Linux operating environment
* Knowledge of common networking protocols (TCP/IP, HTTP)
* Experience with programming/scripting languages (C and Python in particular)
* Familiarity with any assembly language
* Familiarity with IDA Pro
* Experience with PC vulnerability analysis and exploitation
* Experience using binwalk would be helpful, but not necessary
No equipment or food necessary…we provide both!
Introduction to embedded systems
Finding and interfacing with hardware debug ports
Firmware analysis and extraction
Introduction to MIPS assembly
Finding and exploiting logic flaws
Firmware emulation and debugging
Introduction to MIPS stack overflows
Finding and exploiting real-world overflows
Writing return-to-libc MIPS exploits
Bypassing MIPS stack protections
MIPS shellcode execution
Cross-compiling tools for your target
Craig Heffner is a Vulnerability Researcher with Tactical Network Solutions in Columbia, MD.
He has 15 years experience analyzing embedded systems -- 10 actually paid while 5 were just "exploring" on his own. He's also the creator of binwalk, and he operates the /dev/ttyS0 blog which is dedicated to embedded hacking topics.
He has presented at events including Blackhat and DEFCON.
His skin has never been exposed to sunlight and is bioluminescent at 200 meters (656 feet) below sea level.