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)

Scripting exploits over web-based vulnerabilities

In this section, we are going to use an example of a Damn Vulnerable Web Application (DVWA). We will write an exploit for local and remote file inclusion and ensure that we get a reverse shell by executing the exploit. As we know, DVWA has many vulnerabilities, which include Local File Inclusion (LFI) and Remote File Inclusion (RFI).

Local file inclusion is a category of vulnerability typically found in PHP applications and is introduced by the improper usage of the include() and require() functions. The include() function is used to include a PHP module in the current PHP file from where it is invoked. There are occasions in which the developer takes the name of the file to be included as an input parameter from the web application, which can then be misused by attackers. An attacker can tweak the input parameter and can read...