Book Image

Effective Python Penetration Testing

By : Rejah Rehim
Book Image

Effective Python Penetration Testing

By: Rejah Rehim

Overview of this book

Penetration testing is a practice of testing a computer system, network, or web application to find weaknesses in security that an attacker can exploit. Effective Python Penetration Testing will help you utilize your Python scripting skills to safeguard your networks from cyberattacks. We will begin by providing you with an overview of Python scripting and penetration testing. You will learn to analyze network traffic by writing Scapy scripts and will see how to fingerprint web applications with Python libraries such as ProxMon and Spynner. Moving on, you will find out how to write basic attack scripts, and will develop debugging and reverse engineering skills with Python libraries. Toward the end of the book, you will discover how to utilize cryptography toolkits in Python and how to automate Python tools and libraries.
Table of Contents (16 chapters)
Effective Python Penetration Testing
About the Author
About the Reviewer


Network Mapper (Nmap) is a free and open-source tool used for network discovery and security auditing. It runs on all major computer operating systems, and official binary packages are available for Linux, Windows, and Mac OS X. The python-nmap library helps to programmatically manipulate scanned results of nmap to automate port scanning tasks.

As usual, we have to import the module nmap after installing python-nmap:

import nmap

Instantiate the nmap port scanner:

nmap = nmap.PortScanner() 
host = '' 

Set host and port range to scan:

nmap.scan(host, '1-1024') 

We could print the command_line command used for the scan:

print nmap.command_line()

Also, we could get the nmap scan information:

print nmap.scaninfo()

Now we scan all the hosts:

for host in nmap.all_hosts(): 
    print('Host : %s (%s)' % (host, nmap[host].hostname())) 
    print('State : %s' % nmap[host].state()) 

We also scan all protocols:

for proto in nmap[host].all_protocols...