Book Image

Hands-On Penetration Testing with Python

By : Furqan Khan
Book Image

Hands-On Penetration Testing with Python

By: Furqan Khan

Overview of this book

With the current technological and infrastructural shift, penetration testing is no longer a process-oriented activity. Modern-day penetration testing demands lots of automation and innovation; the only language that dominates all its peers is Python. Given the huge number of tools written in Python, and its popularity in the penetration testing space, this language has always been the first choice for penetration testers. Hands-On Penetration Testing with Python walks you through advanced Python programming constructs. Once you are familiar with the core concepts, you’ll explore the advanced uses of Python in the domain of penetration testing and optimization. You’ll then move on to understanding how Python, data science, and the cybersecurity ecosystem communicate with one another. In the concluding chapters, you’ll study exploit development, reverse engineering, and cybersecurity use cases that can be automated with Python. By the end of this book, you’ll have acquired adequate skills to leverage Python as a helpful tool to pentest and secure infrastructure, while also creating your own custom exploits.
Table of Contents (18 chapters)

Encoding shell codes to avoid detection

Let's now say that we have identified a vulnerability in an underlying service that we are testing. However, in this case, the box has got antivirus software installed. Any good antivirus software will contain all the signatures of well-known exploits, and typically the signatures for almost all the Metasploit exploit modules would be present. It is therefore imperative for us to use a methodology that would evade the antivirus detection. This means we need to use some sort of encoding or any other method to deliver our payload to avoid AV detection. There are three different ways that we can do this:

  1. The most successful method is to develop a custom exploit in a language of your choice (Python/C/C++/Java). This method is useful, because a custom exploit will not have any AV signatures and would usually evade the AV protection. Alternatively...