Programming Languages


Learn Python & Ethical Hacking From Scratch

Start from 0 & learn both topics simultaneously from scratch by writing 20+ hacking programs

4.62 (12372 reviews)



24.5 hours


Oct 2020

Last Update
Regular Price

What you will learn

170+ videos on Python programming & ethical hacking

Install hacking lab & needed software (on Windows, OS X and Linux)

Learn 2 topics at the same time - Python programming & Ethical Hacking

Start from 0 up to a high-intermediate level

Write over 20 ethical hacking and security programs

Learn by example, by writing exciting programs

Model problems, design solutions & implement them using Python

Write programs in Python 2 and 3

Write cross platform programs that work on Windows, OS X & Linux

Have a deep understanding on how computer systems work

Have a strong base & use the skills learned to write any program even if its not related to hacking

Understand what is Hacking, what is Programming, and why are they related

Design a testing lab to practice hacking & programming safely

Interact & use Linux terminal

Understand what MAC address is & how to change it

Write a python program to change MAC address

Use Python modules and libraries

Understand Object Oriented Programming

Write object oriented programs

Model & design extendable programs

Write a program to discover devices connected to the same network

Read, analyse & manipulate network packets

Understand & interact with different network layers such as ARP, DNS, HTTP ....etc

Write a program to redirect the flow of packets in a network (arp spoofer)

Write a packet sniffer to filter interesting data such as usernames and passwords

Write a program to redirect DNS requests (DNS Spoofer)

Intercept and modify network packets on the fly

Write a program to replace downloads requested by any computer on the network

Analyse & modify HTTP requests and responses

Inject code in HTML pages loaded by any computer on the same network

Downgrade HTTPS to HTTP

Write a program to detect ARP Spoofing attacks

Write payloads to download a file, execute command, download & execute, download execute & report .....etc

Use sockets to send data over TCP

Send data reliably over TCP

Write client-server programs

Write a backdoor that works on Windows, OS X and Linux

Implement cool features in the backdoor such as file system access, upload and download files and persistence

Write a remote keylogger that can register all keystrikes and send them by Email

Interact with files using python (read, write & modify)

Convert python programs to binary executables that work on Windows, OS X and Linux

Convert malware to torjans that work and function like other file types like an image or a PDF

Bypass Anti-Virus Programs

Understand how websites work, the technologies used and how to test them for weaknesses

Send requests towebsites and analyse responses

Write a program that can discover hidden paths in a website

Write a program that can map a website and discover all links, subdomains, files and directories

Extract and submit forms from python

Run dictionary attacks and guess login information on login pages

Analyse HTML using Python

Interact with websites using Python

Write a program that can discover vulnerabilities in websites


Welcome to my comprehensive course on python programming and ethical hacking. The course assumes you have NO prior knowledge in any of these topics, and by the end of it you'll be at a high intermediate level being able to combine both of these skills to write python programs to hack into computer systems exactly the same way that black hat hackers do. That's not all, you'll also be able to use the programming skills you learn to write any program even if it has nothing to do with hacking.

This course is highly practical but it won't neglect the theory, we'll start with basics of ethical hacking and python programming and installing the needed software. Then we'll dive and start programming straight away. You'll learn everything by example, by writing useful hacking programs, no boring dry programming lectures.

The course is divided into a number of sections, each aims to achieve a specific goal, the goal is usually to hack into a certain system! We'll start by learning how this system work and its weaknesses, then you'll lean how to write a python program to exploit these weaknesses and hack the system. As we write the program I will teach you python programming from scratch covering one topic at a time. By the end of the course you're going to have a number of ethical hacking programs written by yourself (see below) from backdoors, keyloggers, credential harvesters, network hacking tools, website hacking tools and the list goes on. You'll also have a deep understanding on how computer systems work, how to model problems, design an algorithm to solve problems and implement the solution using python.

As mentioned in this course you will learn both ethical hacking and programming at the same time, here are some of the topics that will be covered in the course:

Programming topics:

  • Writing programs for python 2 and 3.

  • Using modules and libraries.

  • Variables, types ...etc.

  • Handling user input.

  • Reading and writing files.

  • Functions.

  • Loops.

  • Data structures.

  • Regex.

  • Desiccation making.

  • Recursion.

  • Threading.

  • Object oriented programming.

  • Packet manipulation using scapy.

  • Netfilterqueue.

  • Socket programming.

  • String manipulation.

  • Exceptions.

  • Serialisation.

  • Compiling programs to binary executables.

  • Sending & receiving HTTP requests.

  • Parsing HTML.

  • + more!

Hacking topics:

  • Basics of network hacking / penetration testing.

  • Changing MAC address & bypassing filtering.

  • Network mapping.

  • ARP Spoofing - redirect the flow of packets in a network.

  • DNS Spoofing - redirect requests from one website to another.

  • Spying on any client connected to the network - see usernames, passwords, visited urls ....etc.

  • Inject code in pages loaded by any computer connected to the same network.

  • Replace files on the fly as they get downloaded by any computer on the same network.

  • Detect ARP spoofing attacks.

  • Bypass HTTPS.

  • Create malware for Windows, OS X and Linux.

  • Create trojans for Windows, OS X and Linux.

  • Hack Windows, OS X and Linux using custom backdoor.

  • Bypass Anti-Virus programs.

  • Use fake login prompt to steal credentials.

  • Display fake updates.

  • Use own keylogger to spy on everything typed on a Windows & Linux.

  • Learn the basics of website hacking / penetration testing.

  • Discover subdomains.

  • Discover hidden files and directories in a website.

  • Run wordlist attacks to guess login information.

  • Discover and exploit XSS vulnerabilities.

  • Discover weaknesses in websites using own vulnerability scanner.

Programs you'll build in this course:

You'll learn all the above by implementing the following hacking programs

  • mac_changer - changes MAC Address to anything we want.

  • network_scanner - scans network and discovers the IP and MAC address of all connected clients.

  • arp_spoofer - runs an arp spoofing attack to redirect the flow of packets in the network allowing us to intercept data.

  • packet_sniffer - filters intercepted data and shows usernames, passwords, visited links ....etc

  • dns_spoofer - redirects DNS requests, eg: redirects requests to from one domain to another.

  • file_interceptor - replaces intercepted files with any file we want.

  • code_injector - injects code in intercepted HTML pages.

  • arpspoof_detector - detects ARP spoofing attacks.

  • execute_command payload - executes a system command on the computer it gets executed on.

  • execute_and_report payload - executes a system command and reports result via email.

  • download_and_execute payload - downloads a file and executes it on target system.

  • download_execute_and_report payload - downloads a file, executes it, and reports result by email.

  • reverse_backdoor - gives remote control over the system it gets executed on, allows us to

    • Access file system.

    • Execute system commands.

    • Download & upload files

  • keylogger - records key-strikes and sends them to us by email.

  • crawler - discovers hidden paths on a target website.

  • discover_subdomains - discovers subdomains on target website.

  • spider - maps the whole target website and discovers all files, directories and links.

  • guess_login - runs a wordlist attack to guess login information.

  • vulnerability_scanner - scans a target website for weaknesses and produces a report with all findings.

As you build the above you'll learn:

  • Setting up a penetration testing lab to practice hacking safely.

  • Installing Kali Linux and Windows as virtual machines inside ANY operating system.

  • Linux Basics.

  • Linux terminal basics.

  • How networks work.

  • How clients communicate in a network.

  • Address Resolution Protocol - ARP.

  • Network layers.

  • Domain Name System - DNS.

  • Hypertext Transfer Protocol - HTTP.

  • HTTPS.

  • How anti-virus programs work.

  • Sockets.

  • Connecting devices over TCP.

  • Transferring data over TCP.

  • How website work.

  • GET & POST requests.

  • And more!

By the end of the course you're going to have programming skills to write any program even if it has nothing to do with hacking, but you'll learn programming by programming hacking tools!

With this course you'll get 24/7 support, so if you have any questions you can post them in the Q&A section and we'll respond to you within 15 hours.


  • This course is created for educational purposes only and all the attacks are launched in my own lab or against devices that I have permission to test.

  • This course is totally a product of Zaid Sabih & zSecurity, no other organisation is associated with it or a certification exam. Although, you will receive a Course Completion Certification from Udemy, apart from that NO OTHER ORGANISATION IS INVOLVED.


Learn Python & Ethical Hacking From Scratch
Learn Python & Ethical Hacking From Scratch
Learn Python & Ethical Hacking From Scratch
Learn Python & Ethical Hacking From Scratch




Course Introduction

Introduction to Python Programming & Ethical Hacking

Lab Overview & Needed Software

Installing Kali 2019 as a virtual Machine

Basic Overview of Kali Linux

The Terminal & Linux Commands

Python 2 VS Python 3 & Writing Our First Program

Installing & Using a Python IDE

Writing a MAC Address Changer - Python Basics

What is MAC Address & How To Change it

Using Python Modules & Executing System Commands

Implementing a Very Basic MAC Changer

Variables & Strings

Using Variables in MAC Changer

Getting Input From The User

Handling User Input

Handling Command-line Arguments

Initialising Variables Based on Command-line Arguments

Python Functions

Returning Values From Functions

Decision Making in Python

Using Conditional Statements in MAC Changer

MAC Changer - Algorithm Design

Introduction to Algorithms

Reading Output Returned By System Commands

Introduction to Regular Expressions (Regex)

Extracting a Substring Using Regex

Refactoring & Housekeeping

Implementing The Validation Algorithm

Programming a Network Scanner

Introduction & Teaser

Installing Windows as a Virtual Machine

Introduction to ARP

Designing an Algorithm To Discover Clients on The Same Network

Using Scapy To Create an ARP Request

Combining Frames To Broadcast Packets

Sending & Receiving Packets

Introduction Lists in Python

Iterating Over Lists & Analysing Packet

Using Escape Characters To Improve Program Output

Introduction to Dictionaries in Python

Improving the Program Using a List of Dictionaries

Iterating Over Nested Data Structures

Python 3 Compatibility

Writing an ARP Spoofer

What is ARP Spoofing?

Intercepting Data in a Network Using arpspoof

Creating an ARP Response

Sending ARP Responses

Extracting MAC Address From Responses

Introduction to Loops in Python

More on Loops & Counters

Dynamic Printing

Exception Handling in Python

Implementing a Restore Function

Restoring ARP Tables on Exception

Writing a Packet Sniffer

Introduction & Teaser

Sniffing Packets Using Scapy

Extracting data From a Specific Layer

Analysing Sniffed Packets & Extracting Fields From Layers

Analysing Fields & Extracting Passwords

Extracting URLs

Capturing Passwords From Any Computer Connected to the Same Network

Writing a DNS Spoofer

Intercepting Packets - Creating a Proxy

Converting Packets to Scapy Packets

Introduction to DNS Spoofing

Filtering DNS Responses

Analysing & Creating a Custom DNS Response

Modifying Packets On The Fly

Redirecting DNS Responses

Writing a File Interceptor

Introduction & Teaser

Filtering Traffic Based on the Port Used

Analysing HTTP Requests

Intercepting HTTP Requests

Modifying HTTP Responses on The Fly

Intercepting & Replacing Downloads on The Network

Writing a Code Injector

Introduction & Teaser

Analysing HTTP Responses

Replacing a Substring Using Regex

Decoding HTTP Responses

Modifying HTTP Responses & Injecting Javascript Code in HTML Pages

Refactoring & Housekeeping

Debugging Issues in Python

Using Groups & None-capturing Regex

Recalculating Content Length

BeEF Overview & Basic Hook Method

Hooking Computers Using code_injector

Basic BeEF Commands

Delivering Malware Using BeEF

Bypassing HTTPS

How to Bypass HTTPS

Bypassing HTTPS & Sniffing Login Credentials

Replacing Downloads on HTTPS Pages

Injecting Code in HTTPS Pages

Writing an ARP Spoof Detector

Running Python Programs on Windows

Capturing & Analysing ARP Responses

Detecting ARP Spoofing Attacks Using Python

Writing Malware

Introduction & Teaser

Execute System Command Payload

Sending Emails Using Python

Filtering Command Output Using Regex

Stealing WiFi Passwords Saved on a Computer

Downloading Files Using Python

Writing Files on Disk

Password Recovery Basics

Stealing Saved Passwords From Remote Computers

Interacting With The File System Using Python

Writing Malware - Keylogger

Introduction & Teaser

Writing a Basic Local Keylogger Using Python

Introduction to Global Variables

Logging Special Keys

Introduction to Threading & Recursion in Python

Introduction Object Oriented Programming

Constructor Methods & Instance Variables

Logging Key-strikes and Reporting Them By Email

Writing Malware - Backdoors

Introduction & Teaser

Client - Server Communication & Connection Types

Connecting Two Remote Computers Using Sockets

Sending & Receiving Data Over TCP

Executing System Commands Remotely

Implementing a Server

Implementing Skeleton For Server - Client Communication

Refactoring - Creating a Listener Class

Refactoring - Creating a Backdoor Class

Serialisation - Theory

Serialisation - Implementing Reliable Methods to Send & Receive Data Over TCP

Serialisation - Reliably Sending & Receiving Data

Sending Commands as List & Implementing Exit Command

Interacting With the File System - Implementing "cd" Command

Reading Files Using Python

Writing Files Using Python

Downloading Files From Hacked Computer

Implementing Upload Functionality in Listener

Implementing Upload Functionality in Backdoor

Handling Unknown Exceptions

Using the Backdoor to Hack Windows, Linux & OS X

Writing Malware - Packaging

Introduction & Teaser

Converting Python Programs To Windows Binary Executables

Running Executables Silentely

Installing Windows Pyinstaller on Linux

Packaging Programs For Windows From Linux

Introduction to Persistence

Running Programs on Startup

Creating a Basic Trojan Using Download & Execute Payload

Creating a Trojan By Embedding Files In Program Code

Bypassing Anti-Virus Programs - Theory

Bypassing Anti-Virus Programs - Practical

Adding an Icon to Generated Executables

Spoofing File Extension

Converting Python Programs To OS X Executables

Converting Python Programs to Linux Executables

Website / Web Application Hacking

Introduction & Teaser

What is a Website

How to Hack a Website

Website Hacking - Writing a Crawler

Sending GET Requests To Web Servers

Discovering Website Subdomains Using Python

Discovering Hidden Paths in Websites

Reading Response Content

Extracting Useful Data From Response

Filtering Rsults

Extracting Unique Links & Storing Them In a List

Recursively Discovering All Paths On a Target Website

Writing a Program To Guess Login Information

Sending Post Requests to Websites

Guessing Login Information on Login Pages

Writing a Vulnerability Scanner

Introduction & Teaser


Parsing HTML Code Using Python

Extracting HTML Attributes

Posting Forms

Building Basic Structure For a Vulnerability Scanner

Using Default Parameters

Sending Requests in a Session

Extracting & Submitting Forms Automatically

Implementing a Method To Run The Scanner

Discovering XSS Vulnerabilities

Exploiting XSS Vulnerabilities

Implementing Code To Discover XSS in Forms

Implementing Code To Discover XSS in Parameters

Automatically Discovering Vulnerabilities Using the Vulnerability Scanner

Bonus Section

Bonus Lecture - What's Next??


Vaibhav9 October 2020

This is a really great course to get an introduction to hacking. I'm a software developer and I always wanted to learn to test the security of my web applications. The only thing that kept me from learning that is the fact that a lot of the software used for pen testing or vulnerability scanning intimidates me. Being a software developer, I know what bad code can do to my computer, but since a majority of the code was written by me, with open source documentation to read through, I felt safe running it on my computer. Big thanks to the instructor Zaid for making it interesting at the same time. My only concern with this course is that it is not exactly beginner-friendly (as claimed in the course title). You must know at least the basics of software development and computer networking to fully understand the concepts. But if you do, I don't see any reason why you shouldn't take this course.

Joshua7 October 2020

Some resources are broken, which is funny considering the course was updated this month and it's only 7 days into October right now.

Ewan5 October 2020

There will be so many skills to learn which could be implemented on an ethical hacking base as well as expanding my knowledge on both programming and ethical hacking

Carolus5 October 2020

I already knew Python, so that course allows me to understand the nuts and bolts of some hacking techniques, which I really like. The speaker started very very slow, now he sounds like he's is getting angry and wants to accelerate. However, so far so good for me. Once I have finished this course, I will go on a course focused on hacking only, and I think I will be better because this course will have taught me how the programs work inside, and I will be able to adapt the other programs to my liking. I like this instructor very much

Agustin3 October 2020

I really have a good expectation about taking this course, I'm sure that I'm not going to regret the selection.

Nick25 February 2020

Im new to all this coding. But I still haven't gotten the actual coding console yet.. If this was implemented in the course earlier, that would be great! But other than that, awesome start.

Steven21 February 2020

Honestly, I've bought this course a long time ago and haven't got to use it. I just started today and must say, this is a fantastic course! Easy instructions -- even a noob like me can follow and implement. Learning python and ethical hacking skills all at the same time -- can't beat it. I got all the other courses too! Thanks Zaid!

Ian20 February 2020

It's really really good, but there are some things that he doesn't explain completely, it's not that important, but still it leaves you with some questions, on the way you understand it, but it's not super easy, expect challenge :)

Elsaid18 February 2020

Instead of just learning python separately, this is a great way to learn in it in a more interactive way and practice it in the setting in which I intend to use. Perfect.

Alex17 February 2020

Probably one of the best courses I have taken on Udemy. Zaid is a really great teacher in helping you understand clearly what is happening, and shows you step by step on how to do it. 100% Recommend to anyone.

Akash15 February 2020

Zaid's obsession with 'housekeeping' not just optimizes the code, but also makes you a better developer! I'm binge watching the course more than I binge watched Mr. Robot. Keep up the good work!

Andre12 February 2020

Best courses ever Sir!! Really wish for a new course soon!! Really strongly recommend (this or any other course) :)

Padmini12 February 2020

Things have just started with me and this course. But have already fell in love the with the subject and the way of explanation. Will redo the comment after completing the course

Spencer10 February 2020

I'm a complete beginner when it comes to coding and I've just created my first python program, I'm so pleased with how clear and precise Zaid is with explaining what to do and putting it in to idiot-proof language. If there's a problem that you might run in to, he's already found it and has resources to help you get past it. Top work, can't wait to learn more!

Russell7 February 2020

Excellent job! Very descriptive and I love how you built up each program from it's simplest representation to its more robust.


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore