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)

Architectural overview

We have already taken a look at the architecture of the scanner in Chapter 5, Vulnerability Scanner Python - Part 1. Lets revisit the service-scanning part of the scanner and think about how the whole ecosystem works. The following diagram shows the service scanning architecture for us:

A project ID would be associated with all scans that have been completed with Nmap port scanning. The user can select the project ID for which they want to carry out service scanning and can also see all the project IDs for which port scanning has successfully completed. It should be noted that only the project IDs for projects that have been completed will be displayed; projects for which the port scanning has been paused would not be displayed.

Once the project ID has been selected, the code reads the database table IPtable_history to display open ports and the default...