We're Hiring

IOT Course Description

NOTE: This is our IN-PERSON training option. 

CPE/ECE Credits: 40

 This course is designed for hackers, tinkerers, and hobbyists with limited experience and an interest in embedded systems analysis and firmware evaluation techniques. 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. 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 and exploiting 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.

Learning Prerequisites

Students must be proficient in the following areas before starting the class:

  • Running Linux commands and awareness of the Linux operating environment
  • Experience with scripting languages such as bash, Python, and Perl

Students should at least have introductory knowledge in the following topics:

  • Knowledge of common networking protocols (TCP/IP, HTTP)
  • Familiarity with IDAPro and GDB debugging
  • Experience with vulnerability analysis and exploitation
  • Experience using binwalk would be helpful, but not necessary
  • Desire to learn by extrapolating instruction and not with a recipe

Course Length: 5 days

Day 1

  • Introduction to embedded systems
  • Identifying hardware
  • Finding and interfacing with hardware debug ports
  • Dumping firmware
  • Firmware analysis and extraction
  • Introduction to MIPS assembly

Day 2

  • Finding and exploiting logic flaws
  • Firmware emulation and debugging

Day 3

  • Introduction to MIPS stack overflows
  • Finding and exploiting real-world overflows
  • Writing return-to-libc MIPS exploits

Day 4

  • Bypassing MIPS stack protections
  • MIPS shellcode execution

Day 5

  • Exploit laboratory
  • Cross-compiling tools for your target 

Current Available Dates

  • March 27 - 31, 2023  *Max Capacity: 8*
  • May 22 - 26, 2023  *Newly Posted, Max Capacity: 10*
  • October 2 - 6, 2023  *Newly Posted, Max Capacity: 10*

In-person training through April 30, 2023 will take place at TNS Headquarters located at 8825 Stanford Blvd, Suite 308, Columbia, MD 21045.

VENUE CHANGE (after May 1, 2023) - In-person training will take place at The Maryland Innovation Center located at 6751 Columbia Gateway Drive, Columbia, MD 21046. 

How Do I Enroll?

To enroll with a credit card, please select the date above and click submit. For all other forms of payment, please call +1 (443) 276-6990, or email us at [email protected].

Do you offer private, on-site training?

 Yes, we do. On-site training dates are available for after May 1, 2023. To inquire about dates and pricing, please call +1 (443) 276–6990, or email us at [email protected].