Book Image

Python for Security and Networking - Third Edition

By : José Ortega
4 (2)
Book Image

Python for Security and Networking - Third Edition

4 (2)
By: José Ortega

Overview of this book

Python’s latest updates add numerous libraries that can be used to perform critical security-related missions, including detecting vulnerabilities in web applications, taking care of attacks, and helping to build secure and robust networks that are resilient to them. This fully updated third edition will show you how to make the most of them and improve your security posture. The first part of this book will walk you through Python scripts and libraries that you’ll use throughout the book. Next, you’ll dive deep into the core networking tasks where you will learn how to check a network’s vulnerability using Python security scripting and understand how to check for vulnerabilities in your network – including tasks related to packet sniffing. You’ll also learn how to achieve endpoint protection by leveraging Python packages along with writing forensics scripts. The next part of the book will show you a variety of modern techniques, libraries, and frameworks from the Python ecosystem that will help you extract data from servers and analyze the security in web applications. You’ll take your first steps in extracting data from a domain using OSINT tools and using Python tools to perform forensics tasks. By the end of this book, you will be able to make the most of Python to test the security of your network and applications.
Table of Contents (23 chapters)
Section 1: Python Environment and System Programming Tools
Section 2: Network Scripting and Packet Sniffing with Python
Section 3: Server Scripting and Port Scanning with Python
Section 4: Server Vulnerabilities and Security in Web Applications
Section 5: Python Forensics
Assessments – Answers to the End-of-Chapter Questions
Other Books You May Enjoy

What this book covers

Chapter 1, Working with Python Scripting, introduces you to the Python language, object-oriented programming, data structures, exceptions, managing dependencies for developing with Python, and development environments.

Chapter 2, System Programming Packages, teaches you about the main Python modules for system programming, looking at topics including reading and writing files, threads, sockets, multithreading, and concurrency.

Chapter 3, Socket Programming, gives you some basics on Python networking using the socket module. The socket module exposes all of the necessary pieces to quickly write TCP and UDP clients, as well as servers for writing low-level network applications.

Chapter 4, HTTP Programming and Web Authentication, covers the HTTP protocol and the main Python modules, such as the urllib standard library and requests module to retrieve and manipulate web content. We also cover HTTP authentication mechanisms and how we can manage them with the requests module. Finally, we cover how to implement OAuth clients and JWT for token generation in web applications.

Chapter 5, Analyzing Network Traffic and Packet Sniffing, covers the use of Python to analyze network traffic using the pcapy and scapy modules. These modules provide the ability to write small Python scripts that can investigate network traffic.

Chapter 6, Gathering Information from Servers with OSINT Tools, covers the main tools we can find in the Python ecosystem for extracting information from publicly-exposed servers using Open Source Intelligence (OSINT) tools. We will review tools such as Google Dorks, SpiderFoot, DnsRecon, DnsPython, and other tools for applying fuzzing processes with Python.

Chapter 7, Interacting with FTP, SFTP, and SSH Servers, details the Python modules that allow us to interact with FTP, SFTP, and SSH servers, checking the security in SSH servers with the ssh-audit tool. Also, we will learn how to implement a brute-force tool for connecting with SSH servers.

Chapter 8, Working with Nmap Scanner, introduces Nmap as a port scanner and covers how to implement network scanning with Python and Nmap to gather information on a network, a specific host, and the services that are running on that host. Also, we cover how to find possible vulnerabilities in a given network with Nmap scripts.

Chapter 9, Interacting with Vulnerability Scanners, covers OpenVAS and OWASP ZAP as vulnerability scanners and gives you reporting tools for the main vulnerabilities we can find in servers and web applications. Also, we cover how to use them programmatically from Python with the python-gmv and owasp-zap modules. Finally, we cover how to write a vulnerability report with the WriteHat tool.

Chapter 10, Interacting with Server Vulnerabilities in Web Applications, covers the main vulnerabilities in web applications and the tools we can find in the Python ecosystem to discover vulnerabilities in CMS web applications and sqlmap for detecting SQL vulnerabilities. Regarding server vulnerabilities we cover in detail how to detect vulnerabilities in Tomcat servers.

Chapter 11, Obtain Information from Vulnerabilities Database, covers how to get information about vulnerabilities from CVE, NVD, and vulners databases.

Chapter 12, Extracting Geolocation and Metadata from Documents, Images, and Browsers, covers, main modules we have in Python for extracting information about the geolocation of IP addresses, extracting metadata from images and PDF documents, and identifying the web technologies used by a website. Also, we cover how to extract metadata from the Chrome and Firefox browsers and information related to downloads, cookies, and history data stored in SQLite databases.

Chapter 13, Python Tools for Brute-Force Attacks, covers the main dictionary-builder tools we have in the Python ecosystem for brute-force attacks. We cover the process of executing brute-force attacks and the tools for executing these attacks against web applications and password-protected ZIP files.

Chapter 14, Cryptography and Code Obfuscation, covers the main modules we have in Python to encrypt and decrypt information, including pycryptome and cryptography. Also, we cover how to generate keys securely in Python with the secrets and hashlib modules. Finally, we cover Python tools for code obfuscation.