Book Image

Offensive Shellcode from Scratch

By : Rishalin Pillay
5 (1)
Book Image

Offensive Shellcode from Scratch

5 (1)
By: Rishalin Pillay

Overview of this book

Shellcoding is a technique that is executed by many red teams and used in penetration testing and real-world attacks. Books on shellcode can be complex, and writing shellcode is perceived as a kind of "dark art." Offensive Shellcode from Scratch will help you to build a strong foundation of shellcode knowledge and enable you to use it with Linux and Windows. This book helps you to explore simple to more complex examples of shellcode that are used by real advanced persistent threat (APT) groups. You'll get to grips with the components of shellcode and understand which tools are used when building shellcode, along with the automated tools that exist to create shellcode payloads. As you advance through the chapters, you'll become well versed in assembly language and its various components, such as registers, flags, and data types. This shellcode book also teaches you about the compilers and decoders that are used when creating shellcode. Finally, the book takes you through various attacks that entail the use of shellcode in both Windows and Linux environments. By the end of this shellcode book, you'll have gained the knowledge needed to understand the workings of shellcode and build your own exploits by using the concepts explored.
Table of Contents (11 chapters)
1
Section 1: Shellcode
5
Section 2: Writing Shellcode
8
Section 3: Countermeasures and Bypasses

Environment setup

In order to get started with shellcode development for Linux, we need to ensure that we have a good set of tools. These tools will be covered in this section and more will be introduced as you work through the chapter. It will aid you in getting to know your target binary or program so that you can identify software gaps that could be exploited. These gaps that you identify could be perfect placeholders for shellcode.

In Windows, you made use of a graphical debugger, while in Linux we will use a command-line one. Many distributions already have the GNU Project Debugger (gdb) by default. In the event you do not have this, it can be installed using the command sudo apt-get install gdb command.

To improve the visibility of the output of GDB, you can make use of a number of plugins. These plugins can be found on the internet. The two noteworthy ones to call out are Peda and PwnDBG.

Peda can be downloaded from the following URL:

https://github.com/longld/peda...