Summary
In this chapter, we covered the debuggers and tools that can be used when creating shellcode for Linux. Compared to Windows, here we are using all command-line interface (CLI) tools, which ultimately make it a lot more lightweight when developing shellcode for Linux. We spent some time understanding the fundamental and key components of the Linux ELF structure. You then learned the thought process around creating shellcode by starting with a basic shell, moving onto egg hunters, reverse TCP shellcode, and finally, shellcode for 64-bit operating systems. The structure went from basic to complex, allowing you to see how shellcode can evolve and the ability to build complex shellcode for Linux.
In the next chapter, we will look at the countermeasures that are deployed within Windows and Linux and the various bypasses that exist for them.