Book Image

Python Penetration Testing Cookbook

By : Rejah Rehim
Book Image

Python Penetration Testing Cookbook

By: Rejah Rehim

Overview of this book

Penetration testing is the use of tools and code to attack a system in order to assess its vulnerabilities to external threats. Python allows pen testers to create their own tools. Since Python is a highly valued pen-testing language, there are many native libraries and Python bindings available specifically for pen-testing tasks. Python Penetration Testing Cookbook begins by teaching you how to extract information from web pages. You will learn how to build an intrusion detection system using network sniffing techniques. Next, you will find out how to scan your networks to ensure performance and quality, and how to carry out wireless pen testing on your network to avoid cyber attacks. After that, we’ll discuss the different kinds of network attack. Next, you’ll get to grips with designing your own torrent detection program. We’ll take you through common vulnerability scenarios and then cover buffer overflow exploitation so you can detect insecure coding. Finally, you’ll master PE code injection methods to safeguard your network.
Table of Contents (15 chapters)

Why Python is a great option for security scripting

In the wake of big security attacks and breaches, security/penetration testing is gaining momentum in the quality field. As a popular language in the programming area, it is evident from the tools, books, and scripts published in the last couple of years that Python has become the favorite scripting language for security researchers and hackers.

Getting ready

Even though network and application security is inundated with many tools for automated and semi-automated tests, it may not always guarantee success. Improvisation of tools and scripts is the key to pen-testing, and there will always be some tasks that demand to be automated or to be fulfilled in another way. Becoming a successful real-world penetration tester involves a lot of custom scripting and programming tasks.

How to do it...

These are the main reasons for Python's popularity in security scripting and programming.

Python can be used in both  and interpreted and compiled forms

Python programs can be compiled in any situation where they can be used as compiled and not required frequent changes. This will make Python programs run much faster and provide a better opportunity to remove vulnerabilities and bugs. Also, interpreted programs run much slower than compiled programs, and are more prone to vulnerabilities and attacks.

Python code uses no compiler and can run on just about any device that runs the Python shell. Also, it shares a couple of other resemblances to scripting languages over programming languages. So, Python can be used to perform the functions of a scripting language.

Syntax and indented layout

The syntax and indented layout of Python makes it easy to figure out what is happening in a program during the review. The indentation also makes the program more readable and helps make the collaborative programming easier.

Simple learning curve

Learning a new programming language is always a rigorous task. But Python was designed in such a way that it should be easily learned by even a novice programmer. Python's growing acceptance with the programmers is mainly due to its easiness to learn and its design philosophy highlights code readability that will help the beginner developers to learn many things by reading the code itself. Also, Python's read evaluate print loop (REPL) provides the developer a chance to play around with code and experiment with it. The standard Python library maintains a lot of functionalities with which we can execute complex functionalities with ease.

Powerful third-party libraries

Once you have learned Python, you can leverage the platform backed with a large number of libraries. The Python Package Index (PyPI), is a repository of more than 85,000 reusable Python modules and scripts that you can use in your scripts. Python is the best language to learn as a security researcher, because of the availability of its large number of reverse engineering and exploitation libraries.

Cross-platform (code anywhere)

Python works on Linux, Microsoft Windows, macOS X, and many other operating systems and devices. A Python program written on a macOS X computer will run on a Linux system and vice versa. Also, Python programs can run on Microsoft Windows computers, as long as the machine has Python interpreter installed.