Summary
In this chapter, we revisited shellcoding concepts to demonstrate a unique take on buffer overflows called heap spraying. As a part of this exercise, we walked through coding a JavaScript-based web page that preps the target's memory with our payload before tricking the user into triggering the exploit. In order to understand the attack (as well as enhance our exploit research and development skills), we learned how to debug Windows applications and examine the state of memory and registers in real time. After this lab, we took a brief dive into the theory of Metasploit's shellcode generation and understood the function and role of encoders. We explored Windows executable payloads with a quick and easy disassembler within Kali, and grepped for byte sequences to learn how to identify patterns in encoded shellcode. Finally, we explored patching legitimate executables to make them effective Trojans using our own payload. A part of this process was a review of the injection points with...