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)

Stack buffer overflow in Linux

Most vulnerabilities are flaws that arise due to conditions that the developer hasn't thought of. The most common vulnerability is a stack buffer overflow. This means that we define some sort of buffer that is not large enough for the storage we require. This is more of a problem when the input is controlled by the end-level user because this means it can be exploited.

In software, a stack buffer overflow or stack buffer overrun occurs when a program writes to a memory address on the program's call stack (as we know, every function has its own execution stack or is allocated a stack memory where it is executed) outside the intended data structure, which is usually a fixed-length buffer. A stack buffer overflow almost always results in the corruption of the adjacent data on the stack, and in cases where the overflow was triggered by mistake...