TRAINING 1: The ARM IoT Exploit Lab: Introduction to ARM IoT Exploitation and Shellcoding


CAPACITY: 20 pax


USD2299 (early bird)

USD3299 (normal)

Early bird registration rate ends on the 30th of September


Introduction to ARM IoT Exploitation and Shellcoding

“There’s an Intel on every desktop, but an ARM in every pocket”. ARM has emerged as the leading architecture in the Internet of Things (IoT) world. For the first time in Dubai, we present this 2-day introductory level class for students wishing to enter the emerging world of ARM based exploit development. The class covers topics such as ARM CPU architecture, ARM assembly language, functions on ARM, practical memory corruption on ARM and writing ARM shellcode from the ground up with plenty of time for hands-on expercises. We conclude with an attack on an off-the-shelf ARM IP Camera using the skills acquired from the class.

Our lab environment features hardware and virtual platforms for exploring exploit writing on ARM based Linux systems and IoT devices. This class paves the way for “The Advanced ARM IoT Exploit Laboratory” which specifically focusses on bypassing exploit mitigation techniques for ARM exploitation.

As 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 13 years have been working hard in putting together an all new class based on past feedback!

Who Should Attend

– Past Exploit Laboratory students who want to take their elite exploitation skills to the ARM platform.
– Pentesters working on ARM embedded environments. (SoCs, IoT, etc)
– Red Team members, who want to pen-test custom binaries and exploit custom built applications.
– Bug Hunters, who want to write exploits for all the crashes they find.
– Members of military or government cyberwarfare units.
– Members of reverse engineering research teams.
– People frustrated at software to the point they want to break it!

Key Learning Objectives

* Introduction to the ARM CPU architecture
* Exploring ARM assembly language
* Understanding how functions work in ARM
* Debugging on ARM systems
* Exploiting Stack Overflows on ARM
* Writing ARM Shellcode from the ground up
* Exercise: Writing your own ARM Reverse Shell
* Exercise: Putting together practical end-to-end ARM/Linux exploits
* Avoiding bad characters in shellcode
* Case Study: ARM Egghunter (time permitting)
* Case Study: Exploiting an ARM based IP Camera – “From Firmware To Shell”



* Introduction to the ARM CPU architecture
* Understanding ARM assembly language
* EXERCISE – Examples in ARM Assembly Language
* Debugging on ARM systems
* Understanding how functions work in ARM
* Exploiting Stack Overflows on ARM
* Writing ARM Shellcode from the ground up
* ARM exec command shellcode
* EXERCISE – end-to-end ARM Stack Overflow exploits


* EXERCISE – ARM Reverse Shell
* Shellcode optimization, avoiding NULL bytes and bad characters
* EXERCISE – Embedded Web Server exploit
* Case Study: Exploiting an ARM based IP Camera – “From Firmware To Shell”
* Case Study: ARM Egghunter (time permitting)


– 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: INTRODUCTORY (leaning towards intermediate)

Hardware / Software Requirements

– A working laptop capable of running VMware Player/Workstation/Fusion
– Intel Core i3 (equivalent or superior) required
– 8GB RAM required, at a minimum
– Wireless network card
– 40 GB free Hard disk space
– If you’re using a new Macbook or Macbook Pro, please bring your dongle-kit

– Linux / Windows / Mac OS X desktop operating systems
– VMWare Player / VMWare Workstation / VMWare Fusion MANDATORY
– Administrator / root access MANDATORY

Pre-Class Tutorials

The following tutorials have been specially prepared to get students up to speed on essential concepts before coming to class.

a) Introduction to ARM Assembly Basics by Azeria Labs

b) Operating Systems – A Primer

c) How Functions Work

d) Introduction to Debuggers

OUR TWITTER STREAM: @therealsaumil

Students Will Be Provided With

Students 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 800MB of curated reading material, will be made available to all attendees to take with them and continue learning after the training ends.

Location: Date: November 25, 2018 Time: 9:00 am - 6:00 pm Saumil Shah