Home Security Python Penetration Testing Cookbook

Python Penetration Testing Cookbook

By Rejah Rehim
books-svg-icon Book
eBook $29.99 $20.98
Print $38.99
Subscription $15.99 $10 p/m for three months
$10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
BUY NOW $10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
eBook $29.99 $20.98
Print $38.99
Subscription $15.99 $10 p/m for three months
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
  1. Free Chapter
    Why Python in Penetration Testing?
About 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.
Publication date:
November 2017
Publisher
Packt
Pages
226
ISBN
9781784399771

 

Why Python in Penetration Testing?

In this chapter, we will cover the following recipes:

  • Why Python is a great option for security scripting
  • Python 3 language basics and differences
 

Introduction

Before going deep into the uses of Python and its modules in security scripting, we need to have an idea about the language basics and different versions. Also, it would be great if we could have an idea of why Python is an awesome option for security scripting.

 

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.

 

Python 3 language basics and differences

Python 3.0 was first released in 2008. Even though Python 3 supposed to be backward incompatible with other old version, many of its features are backported to support older versions. It is better to have an idea of Python versions and its differences for better understanding of our recipes.

Getting ready

If you are new to Python, you might be confused about the different versions that are available. Before looking into the further details, let's have a look at the most recent major releases of Python and the key differences between Python 2 and Python 3.

How to do it...

These are the major Python versions available.

Python 2

Published in late 2000, it has many more programmatic features including a cycle-detecting garbage collector that helps to automate memory management. The increased unicode support that helps to standardize characters, and list comprehensions that help to create a list based on existing lists are other features. In Python version 2.2, the types and classes are consolidated into one hierarchy.

Python 3

Python 3 was released in late 2008, to update and fix the built-in design flaws of the prior versions of Python. The main focus of Python 3 development was to clean up the code base and reduce redundancy.

In the beginning, the adoption of Python 3 was a very slow process due to its backward incompatibility with Python 2. Moreover, many package libraries were only available for Python 2. Later, there was an increased adoption for Python 3 as the development team announced that there will be an end of life for Python 2 support and more libraries have been ported or migrated to Python 3.

Python 2.7

Python 2.7 was published in 2010 and was planned as the last release for 2.x versions. Its intention was to make it easier for Python 2.x users to port their features and libraries over to Python 3 by providing compatibility between the two, which included a unit test to support test automation, argparse for parsing command-line options, and more convenient classes in collections.

Key differences between Python 2.7 and Python 3

Here are some main differences between Python 2.x and Python 3:

  • Print: In Python 2, print is a statement. So, there is no need to wrap the text in parentheses for printing. But in Python 3 print is a function. So, you have to pass the string you need to print to the function in parentheses.
  • Integer division: Python 2 considers numbers without any digits after the decimal point as integers, which may lead to some unexpected results during division.
  • List comprehension loop variables leak: In Python 2, giving the variable that is iterated over in a list comprehension leaks the variable into surrounding scope, this list comprehension loop variable leak bug has been fixed in Python 3.
  • Unicode strings: Python 2 requires you to mark the unicode string explicitly with the u prefix. But, Python 3 stores strings as unicode by default.
  • Raising exceptions: Python 3 requires different syntax for raising exceptions.

The progression from Python 2.x to Python 3.x is happening slowly, but it is underway. It is good to be mindful that there are material differences between Python 2.x and Python 3 as you may need to deal with code that is written in the version with which you are less familiar.

About the Author
  • Rejah Rehim

    Rejah Rehim is currently the Director and CEO of Beagle Security. Previously holding the title of Security Architect at FAYA India, he is a long-time preacher of Open Source. He is a steady contributor to the Mozilla Foundation and has been featured in the San Francisco Firefox Monument. A member of the Mozilla Add-On review board, he has contributed to the development of several node modules. He has to his credit the creation of nine Mozilla Add-Ons including the very popular Clear Console Add-On which was selected as one of the best Mozilla Add-Ons of 2013. With a user base of more than 44,000, it has been more than 8,00,000 downloads to date. He has successfully created the world's first security testing browser bundle, PenQ, an Open Source Linux-based penetration testing browser bundle pre-configured with tools for spidering, advanced web searching, fingerprinting, etc. Rejah is also an active member of OWASP and the chapter leader of OWASP Kerala. He is also an active speaker at FAYA:80, a tech community-based in Kerala, with the mission of Free Knowledge Sharing. Besides being a part of the Cyber Security division of FAYA, Rejah is also a student of Process Automation and has implemented it in FAYA. Additionally, Rejah also holds the title of Commander at Cyberdome, an initiative of the Kerala Police Department. Technical Skills - Cybersecurity, DevOps, DevSecOps, Kubernetes, Python, Microservices, Cloud Architecting

    Browse publications by this author
Latest Reviews (4 reviews total)
Teaching me a lot about the pen testing process.
Good products. Good service. Everything I would expect from a professional business. Thanks!
Very good books and good redaction
Python Penetration Testing Cookbook
Unlock this book and the full library FREE for 7 days
Start now