Book Image

IoT Penetration Testing Cookbook

By : Aaron Guzman, Aditya Gupta
Book Image

IoT Penetration Testing Cookbook

By: Aaron Guzman, Aditya Gupta

Overview of this book

IoT is an upcoming trend in the IT industry today; there are a lot of IoT devices on the market, but there is a minimal understanding of how to safeguard them. If you are a security enthusiast or pentester, this book will help you understand how to exploit and secure IoT devices. This book follows a recipe-based approach, giving you practical experience in securing upcoming smart devices. It starts with practical recipes on how to analyze IoT device architectures and identify vulnerabilities. Then, it focuses on enhancing your pentesting skill set, teaching you how to exploit a vulnerable IoT device, along with identifying vulnerabilities in IoT device firmware. Next, this book teaches you how to secure embedded devices and exploit smart devices with hardware techniques. Moving forward, this book reveals advanced hardware pentesting techniques, along with software-defined, radio-based IoT pentesting with Zigbee and Z-Wave. Finally, this book also covers how to use new and unique pentesting techniques for different IoT devices, along with smart devices connected to the cloud. By the end of this book, you will have a fair understanding of how to use different pentesting techniques to exploit and secure various IoT devices.
Table of Contents (19 chapters)
Title Page
About the Authors
About the Reviewers
Customer Feedback

Finding ROP gadgets

One of the most important things during exploitation of embedded devices is to have the ability to exploit vulnerable binaries using techniques such as Return Oriented Programming (ROP), which is what we are going to look at in this section.

The reason why we require this technique is because during exploitation we often need our end result as a shell or execution of a backdoor, which could grant us additional information or access to sensitive resources.

The concept of ROP is the same in both ARM and MIPS (and even x86); however, there are some platform-level differences which we will need to keep in mind. To explain ROP in extremely simple terminology, it involves picking up specific instructions (gadgets) from various locations and chaining them together to build a complete ROP chain which will perform a specific task.

Getting ready

As mentioned earlier, to perform ROP, we need to be able to identify the useful ROP gadgets which can be chained together. To find these specific...