Summary
In this chapter, we introduced fuzzing as a testing methodology as well as an exploit research tool. We started out with mutation fuzzing over the network to test an FTP server's handling of mutated authentication requests. With the information learned, we moved on to developing Python scripts that automate the fuzzing process. While we were exploring Python fuzzing, we built a fuzzing server to provide input to a vulnerable FTP client. With both pieces of software, the goal was to crash them and learn what input from the fuzzer caused the crash. We wrapped up by looking at these crashes from a low-level register memory perspective. This was accomplished by attaching WinDbg to the vulnerable processes and examining memory after the crash. With Metasploit's offset discovery tools, we demonstrated how to use debugging and fuzzing to write precise exploits.
In the next chapter, we will take a deeper look into the post-exploitation phase of a penetration, so we can learn how hackers turn...