The Internet of Things (IoT) universe comprises largely of ARM based systems. The ARM IoT Exploit Laboratory debuts in 2017, bringing you two intense 2-day courses featuring a practical hands-on approach to exploit development on ARM based systems. This class is perfectly suited for students who are keen to dive into the world of modern ARM exploit development.
Our intermediate/advanced level class assumes that students are already familiar with ARM architecture, ARM assembly language, basics of memory corruption on ARM and ARM shellcode.
The class begins with a quick recap of how functions work in the ARM environment, and quickly moves onto bypassing exploit mitigation techniques with ARM Return Oriented Programming (ROP). Our lab environment features both hardware and virtual machine targets.
The class concludes with an end-to-end "Firmware-To-Shell" hack, testing out ARM exploitation skills against commercial ARM based SoHo routers. Students will extract the manufacturer's firmware, learn how to analyse and debug it in a virtual environment, build an exploit which involves tight ROP chaining and ASLR bypass, and finally succeed in getting a shell on the actual hardware.
For those keen on end to end ARM exploitation, it is recommended to take both the Intro and Advanced classes in succession in a 4-day format:
https://www.blackhat.com/us-17/training/arm-iot-exploit-laboratory-intro.htmlAs with the popular Exploit Laboratory, all topics are delivered in a down-to-earth, learn-by-example methodology. The same trainers who brought you The Exploit Laboratory for over 10 years have been working hard in putting together an all new class based on past feedback!
LEARNING OBJECTIVES:
-------------------
- How functions work in ARM - a quick recap
- Introduction to Return Oriented Programming
- Bypassing exploit mitigation using ROP
- Practical ARM ROP
- Bypassing ASLR
- Exercise: Applying ARM ROP chains to an existing non-ROP exploit
- An Introduction to firmware extracting
- Emulating and debugging a SoHo router's firmware in a virtual environment
- "Firmware-To-Shell" - exploiting an actual SoHo router
- The Lab environment is a mixture of physical ARM hardware and ARM virtual machines.
DAILY SCHEDULE:
---------------
DAY 1
- How functions work in ARM - a quick recap
- Introduction to Exploit Mitigation Techniques (XN/DEP and ASLR)
- Introduction to ARM Return Oriented Programming
- Bypassing exploit mitigation on ARM using ROP
- ARM ROP Tools
- Practical ROP Chains on ARM
- EXERCISE - Exploit featuring ARM ROP Chains
- Bypassing ASLR
- EXERCISE - End to end exploit with ASLR and XN/DEP bypass
DAY 2
- An Introduction to firmware extracting
- Emulating and debugging a SoHo router's firmware in a virtual environment
- "Firmware-To-Shell" - exploiting an actual SoHo router
- EXERCISE - Working SoHo Router exploit in an emulated environment
- EXERCISE - Attacking a DLINK DIR-880L ARM Router - from firmware to shell
PREREQUISITES:
--------------
- Proper understanding of ARM Architecture, ARM Assembly language and ARM Shellcode
- A conceptual understanding of how functions work in C programming
- Knowledge of how a stack works, basic stack operations
- Familiarity with debuggers (gdb, WinDBG, OllyDBG or equivalent)
- Not be allergic to command line tools.
- Have a working knowledge of shell scripts, cmd scripts or Perl.
- If none of the above apply, then enough patience to go through the pre-class tutorials.
- SKILL LEVEL: INTERMEDIATE/ADVANCED
PRE-CLASS TUTORIALS:
--------------------
The following tutorials have been specially prepared to get students up to speed on essential concepts before coming to class.
- Operating Systems - A Primer
http://www.slideshare.net/saumilshah/operating-systems-a-primerhttp://www.slideshare.net/saumilshah/how-functions-work-7776073- Introduction to Debuggers
http://www.slideshare.net/saumilshah/introduction-to-debuggersStudents will be provided with all the lab images used in the class. The ARM IoT Exploit Laboratory uses a "Live Notes" system that provides a running transcript of the instructor's system to all the students. Our lab environment, plus about 700MB of curated reading material, will be made available to all attendees to take with them and continue learning after the training ends.