
Master ethical hacking fundamentals with Linux, shell scripting, Python automation, scanning, enumeration, exploitation, network concepts, and web application pentesting to identify vulnerabilities.
Explore cybersecurity fundamentals across data security and encryption, network security, application security, cloud computing security, and incident response, with focus on firewalls, VPNs, secure coding, and web application firewalls.
Explore common cybersecurity incidents such as unauthorized access, data breach, malware infection, denial of service attacks, phishing attack, and insider threat.
Identify cyber security roles such as network security engineer, SoC analyst, application security engineer, incident responder, and chief information security officer. Differentiate white, black, grey, red, and blue hat hackers.
Explore how networks use protocols to enable communication, and how switches and routers transfer data with Mac and IP addresses in local area networks like home wifi.
Explore OSI model's seven layers, from the physical layer transmitting bits via cables or wifi to data link, network, transport, session, presentation, and application layers.
Explore data encapsulation from application to session layers, including a session ID. Attach transport ports, form TCP segments or UDP datagrams with IP headers, then transmit frames as bits.
Explore how data moves from one computer to another across two networks through two routers. The process uses a default gateway, routing, and MAC address changes to reach computer two.
Trace the Unix origins at Bell Labs, introducing multitasking, multi-user login, and the command line shell, then explore Linux distributions like Debian, Slackware, Arch Linux, Fedora, Suse, and Gentoo.
Explore the Linux file system structure, including root, boot, home, tmp, sbin, bin, etc, proc, and how configuration files and shared libraries organize system data.
Create and run a bash script from a terminal. Use echo, pwd, ls, and date to display messages and directory contents, and learn about the shebang and chmod +x.
Manage files in Linux using cp to copy, cat to view, mv to rename, and rm to delete, with cp -r and rm -r for directories, and grep.
Use redirection to send command output to a file with a greater-than sign to replace, or a double greater-than sign to append; pipe output to commands like xxd or base64.
Explore how bash variables store data, declare with no spaces around =, and access values via the dollar sign. Learn command substitution, environment variables, and basic shell scripting.
Explore bash arithmetic with $((...)) and expr for sums and differences. Write a script with a shebang to define x and y and print results, including hex with printf.
Master bash if statements for conditional execution, using then, else, and fi to evaluate numbers and file existence, with multi-condition checks and command existence checks.
Learn to use bash while loops to run commands and count from 1 to 5, then read hosts from a file and fetch IPs with dig, saving results with tee.
Explore bash control flow with for loops that iterate over numbers and lists, echo results, base64 encode messages inside a loop, and back up files in a directory.
Learn how bash exit codes indicate success (0) or failure (non-zero) in scripts. Build a for loop that pings 192.168.110.1-254 and uses exit codes to save reachable hosts to live_hosts.txt.
Learn to make http requests with curl in linux, covering installation, get and post methods, sending data, reading response headers and body, and using a proxy for IP info.
Explore using curl to download and upload files, resume downloads with -C, and monitor progress. Build a bash script that queries ipinfo.io for multiple IPs and saves the results.
Install wget and verify the version, then use wget to download files from URLs, save them with a new name, download multiple files from a list, and resume with -c.
Learn how to view and change your http user-agent header using browser tools, extensions, and command-line tools like curl and wget, including bash scripts to randomize agents for anonymity.
Learn linux file ownership and permissions, including owner, group, and others, and grant read, write, and execute access via groups; view and interpret permissions with ls -l and stat.
Master Linux file permissions and ownership by managing a secret data directory and file for two users, and adjust permissions with chmod to restrict or expose contents.
Explore how setuid lets a command run with the root user's privileges on Unix-like systems, and how to enable or disable it with chmod while noting security risks.
Learn how the sticky bit on a directory restricts file deletion to the owner or root, illustrated with Alex and Peter in a shared data setup.
Learn how the setgid bit makes files created in a directory inherit the directory's group owner, enabling seamless collaboration within the Pentesters group.
Learn to search linux files using which, whereis, locate, and find, then view manuals with man and read file contents with cat; inspect permissions and ownership for selected files.
Explore how the find command can locate root-owned setuid executables and writable root files to illustrate privilege escalation to root, including hashing and updating the root password.
Learn to manipulate data with awk to extract fields from text files, set field separators, and print key columns such as ip address, city, and country.
Explore regex in linux using awk and grep to match lines, extract password hashes, and filter credentials.txt, with color output and options like -i and -o for precise results.
Learn to schedule tasks in Linux with cron jobs and crontab, using minute, hour, day, and user fields to automate backups, antivirus scans, and software updates.
Explore how cron jobs run with the creator's privileges, identify writable scripts and root-owned tasks, and learn privilege escalation using setuid binaries to become root.
Explore how Linux manages processes, distinguishing foreground and background jobs, tracking each by pid and parent pid, and using ps, pidof, and top to monitor and analyze process details.
Explore linux process management using ps and top, track pids with wget downloading tails, and control processes via bg, fg, jobs, and kill signals.
Explore systemd's role in managing linux daemons and services, from init pid 1 to unit files, sockets, and timers, with examples like SSH and apache2.
Explore managing linux services with systemd using apache as a practical example: install, start, stop, restart, enable auto-start, disable, and verify service status on localhost.
Place custom systemd unit files in /etc/systemd/system to override defaults, while /run and /lib hold runtime and default units; use systemctl to enable or disable services.
Create and configure a systemd service unit to run a shell script that writes the current time to time.txt, reload the daemon, and start the service in multi-user mode.
Learn how systemd timer units schedule one-shot services, such as daily production database backups, using on calendar to run at midnight with persistent miss handling.
Learn to create a systemd service unit and a timer unit to run a shell script every 30 seconds, with one-shot service type, accuracy to one millisecond, and persistent execution.
Install Python 3, start the interactive interpreter, and print your first line of code. Create a script, run it with Python 3, and enable execution with a shebang and chmod.
Introduce creating variables named name and age in Python and displaying them with print, while showing string formatting options using comma separation, f-strings, and format, plus Python 2/3 compatibility.
Explore Python data types, including integers, floats, strings, booleans, lists, and dictionaries, and learn how to inspect types and lengths with type and len, plus basic indexing.
Learn how to manipulate Python lists using built-in methods like copy, count, and index to copy lists, count occurrences, check existence, and locate item positions.
Learn how to add and remove items in Python lists using insert, append, extend, and pop; remove by position or value, or clear the list.
Explore python dictionary methods using a malware types dictionary, including copy, len, keys, values, and items. Use get for safe lookups and access first keys and values by position.
Learn to add or modify items in a Python dictionary with update and assignment, compare old and new lengths, and see examples using rootkit, logic bomb, and spyware.
Remove items from a Python dictionary using pop, pop item, and clear, showing key-based deletions, old and new lengths after removal.
Explore Python string methods such as upper, lower, strip, and split, and learn to convert text, remove whitespace, and create lists using a delimiter.
Explore Python string methods like count, find, and replace to search for substrings, return indices, and replace text, illustrated in a hacking and cybersecurity context.
Learn Python conditions and if statements, executing code blocks when conditions are true, and using else and elif for multiple outcomes, with examples of x and grades.
Learn to use Python for loops to iterate over lists, dictionaries, strings, and ranges with security solutions like antivirus and firewalls, and display each item with descriptive formatting.
Demonstrate the python while loop, executing code while a condition holds, with examples iterating numbers 1 to 5, lists, and dictionaries using index, keys, and get to print key-value pairs.
Learn how Python uses indentation and white space to define code blocks, with examples of if, for, and while loops; fix indentation errors to ensure code executes.
Learn to perform common mathematical operations with arithmetic operators in Python, including addition, subtraction, multiplication, power, division, modulus, and simple increment with x += ten.
Learn to define and call Python functions, pass parameters, use default values, return results, and return a dictionary with original, hexadecimal, and binary representations.
Explain creating Python objects with classes, define attributes like username, email, and password, and implement methods for retrieving details and changing passwords.
Learn how to create and use Python modules, import classes from modules, explore built-in and third-party modules, install with pip3, and work with Scapy for networking tasks.
Learn to read user input and command line arguments in Python using sys.argv, a for loop to display arguments, and interactive prompts with input and getpass for password masking.
Learn to list files in a directory with Python using pathlib, displaying file names, types, owners, groups, and octal permissions for secure system file auditing.
Learn how to read files in Python using read, readline, and readlines, with open and close, plus loops to process lines and manage newline characters.
Learn to read files in Python by specifying the full path, opening the file, using read, readlines, and readline, displaying the content, and handling permission errors with try/except.
Discover how to write data in Python with write and writelines, opening files in write mode and writing to file one.txt and file two.txt, with basic error handling and verification.
Discover how to append data to files in Python by opening in append mode ('a') and using write or writelines to add new content without overwriting existing data.
Learn to copy system files in Python using read line and write, and read with bytes from command line for memory efficient large-file transfers.
Learn to manage files and directories with Python's os and shutil modules by creating, deleting, and navigating directories, moving from pwd to getcwd and chdir, and handling non-empty folders.
Learn to create a client socket with Python, connect to a server via IP and port, send an HTTP GET request, and decode the binary response using the socket module.
Build a Python socket server that binds IP and port, listens for clients, sends a welcome message, and closes the connection, with a client script to connect and display response.
Execute system commands in python using the os and subprocess modules, learn shell execution, capture stdout and stderr, and pipe outputs to reuse command results.
Learn to make http get requests using urllib in Python for ethical hackers and cybersecurity engineers, read response status codes, inspect headers, and decode the json body for analysis.
Learn how to bypass SSL certificate errors in HTTP requests by creating a custom SSL context in Python, disabling hostname verification and certificate verification for successful server responses.
Make http post requests with python's urllib by encoding data, setting the content-type header, and sending a post with url-encoded payload. Learn to inspect the response status code and body.
Learn how to use Python's threading module to run multiple tasks concurrently, reducing execution time by sharing memory and resources across threads.
Learn data encoding and decoding with base64 and hexadecimal, and how hash functions produce fixed-size, one-way digests for password protection and data integrity.
Learn the fundamentals of data encryption, including ciphertext and plaintext, symmetric and asymmetric schemes (AES, DES, RSA) and how session keys and public/private keys protect messages.
Hybrid encryption blends asymmetric and symmetric methods to securely exchange a random session key, enabling fast symmetric data encryption between two parties and destroying the session key after communication.
Build a Python script to encode and hash a password, convert it to binary utf-8, generate base64 and hexadecimal outputs, and print the resulting hashes with hashlib across multiple algorithms.
Build a Python-based password hash cracker that generates and prints hashes for SQL servers including MySQL, MS SQL, Postgres, and Oracle, using the username as a salt and colorized output.
Build a Python-based password hash cracker part 3 to generate Windows hashes for local and domain accounts, including LM hash and interim hashes, using Python modules and a pip module.
Explore how key stretching slows password hashing to resist brute-force attacks, presenting python examples of salted pbkdf2 sha512-crypt and blowfish bcrypt with increasing iterations.
Learn to crack hashes by generating a wordlist, applying salt, and comparing hashes. Implement a password hash function with a queue and multi-threading for cracking.
Learn encrypting and decrypting data with Python using AES in CFB mode, generating a 32-byte key and 16-byte IV with os.urandom, printing hex values, and wrapping in a function.
Import the crypto module, implement an aes encryption workflow with a key and iv in python, and demonstrate encryption and decryption in cfb mode to recover the secret message.
Learn to implement AES encryption in Python by building a main function that handles generate key, encrypt, and decrypt modes, using plaintext, ciphertext, key, and IV with command line arguments.
Generate a 2048-bit RSA key pair in Python, export the private and public keys to text files, and display them to demonstrate asymmetric encryption basics.
Explore how to securely handle asymmetric encryption by encrypting the private key with a passphrase and generating RSA keys in Python, highlighting private and public key handling.
Explore hybrid encryption in python by generating a 32-byte session key with os urandom, converting it to hex, and encrypting it with an RSA public key using a cipher object.
The lecture demonstrates decrypting an RSA-encrypted session key using a private key, including handling hex-to-binary conversion, password-protected keys, and error handling with try-except.
Explain how the ARP protocol maps an IP address to a MAC address by broadcasting a request and updating the ARP table to enable data transfer.
Explore arp scan techniques to discover live hosts on a lan by broadcasting arp requests to all ip addresses; then trigger a man-in-the-middle attack via mac address spoofing.
Explore the Ethernet frame structure, including the MAC header, destination and source MAC addresses, type field, payload (46–1500 bytes), and CRC checksum for integrity.
Learn how arp translates an ip address to a mac address on a local network and review arp packet format, including hardware type, protocol type, sizes, operation, and sender/target addresses.
Learn to spoof a network interface's mac address using python, generate a random mac, and apply it with ip link commands, including disconnecting, setting, and reconnecting the interface.
Write a Python script to scan a LAN for live hosts by constructing ethernet and arp headers, sending echo requests via an interface, timing the scan, and listing responsive IPs.
Learn to check IP reachability with the ping command, interpret exit codes, and build a Python ping scan that iterates a /24 network using subprocess and the IP address module.
Speed up a python ping scan by threading and a queue to distribute IPs across threads, then compare execution time on 192.168.110.0/24 with 64 and 256 threads.
Examine the IP header and its role in addressing and routing, including version, header length, type of service, and total length, with header sizes from 20 to 60 bytes.
Analyze IP fragmentation as it splits large packets to fit an MTU of 1500 bytes, uses the identification field and flags to manage fragments, and applies the fragment offset for reassembly.
Explore the icmp protocol, its role in diagnosing network issues, and how echo requests/replies and ttl-based traceroute reveal live hosts and path information.
Explore the ICMP header, including type/code, checksum calculation, and echo request/reply; learn how ICMP errors carry IPv4 data and how exfiltration can occur via ICMP.
Develop a Python script to traceroute an IP address, using argparse to set the target IP and a maximum hop limit, then retrieve and display those arguments.
Validate the target ip address using the ipaddress module, defining a function is_valid_ip to distinguish real addresses from random strings and flag invalid inputs.
Practice trace routing of an ip address with python and scapy by sending icmp packets in a ttl-based loop, parsing ttl-expired replies and echo replies, and timing the route.
Explore the TCP protocol, a connection-oriented and reliable transport that uses a sequence number, an acknowledgement number, and a checksum to ensure data is received in order, complete, and error-free.
Explains the tcp three-way handshake, showing syn, syn-ack, and ack to establish a connection, followed by data exchange with push packets and closing with fin-ack.
Explore port scanning techniques and how TCP and UDP ports, sockets, and IP addresses identify services like http, https, ftp, ssh, and smtp, with open or closed port examples.
Explore tcp port scanning techniques, including connect scan, syn (half-open) scan, dcp field scan, and x scan, to classify ports as open, closed, or filtered by response.
Analyze the tcp segment header, its ten mandatory fields and optional options, including the minimum 20-byte header, source and destination ports, sequence and acknowledgement numbers, and data length calculation.
Review the tcp header fields, including data offset, reserved bits, the urgent, acknowledgment, push, rc, synchronize, and fifth leg flags, window size, checksum, urgent pointer, and options.
Explore TCP options and padding, including the maximum segment size and window scaling, and learn how MSS relates to MTU and header sizes for performance.
Write a Python port scanning script with argparse to parse network interface, target IP address, and scan type, then display options and help text.
Validate a target ip address with the ipaddress module and an is_valid_ip function, then verify port numbers between 0 and 65535 and choose a valid scanning technique for port discovery.
Discover open ports using Python with a scene scan approach, crafting a packet with the S flag via Scapy, and analyzing responses to classify ports as open, closed, or filtered.
Learn to perform an x scan in Python by constructing packets, sending ack packets, and evaluating responses to classify ports as unfiltered or filtered, with examples like 22 and 80.
Implement the fin scan in python to determine if a port is open, closed, or filtered by tcp responses and lst flags, and display the final scan results.
Explore discovering open ports with python through Xmas scan and fin scan techniques, compare results across unfiltered and filtered outcomes, and assess firewall behavior during port scanning.
Discover how to perform a TCP connect scan in Python by creating a client socket with the socket module, connecting to destination ports, and reporting open or closed results.
Explain how web pages, websites, and web servers relate, and how a browser uses DNS to translate a domain to an IP address and send an HTTP request.
Explore how a url serves as the address of a web resource, and examine its key components—scheme, host, path, and query—with examples like stackoverflow.com.
Contrast static and dynamic websites: static sites deliver fixed HTML/CSS content, while dynamic sites fetch data via databases using server-side languages like PHP, Python, Java, and Ruby.
Explore how DNS translates domain names into IP addresses. Trace the flow through the DNS resolver, root servers, top level domain servers, and authoritative servers, with nmap.org as the example.
Learn to use dig and nslookup to look up domain IPs, install dns utils, set a resolver like 1.1.1.1, and view trace from root to authoritative servers.
Practice the basics of server side technologies by writing PHP code, installing PHP, and running a builtin PHP web server to serve a hello world page and test with curl.
Learn to handle request parameters in PHP using the get and post globals; access get parameters via the URL query and send post data in the request body with curl.
Discover how to execute shell commands in PHP with shell_exec to fetch the current directory, read system files via file_get_contents for hostname, and generate base64-encoded or sha256 hashed values.
Discover how file upload vulnerability arises when a web app fails to validate content type, size, and file name, allowing attackers to upload web shells and issue remote commands.
Develop a PHP web shell and learn to execute commands via HTTP post, obfuscate code with techniques like reverse strings and base64, and protect access with sha-256 password checks.
Learn key SQL database concepts, including management systems like MySQL and Oracle, table structures with rows and columns, and how web apps save and verify user credentials via SQL queries.
Install and secure a MariaDB database, run mysql_secure_installation to set a root password, remove anonymous users, disable remote root login, test database, then connect to verify version and current user.
Set up a MySQL database named E-shop, create a managing user, grant permissions, and build a registered_users table with auto-incremented id, unique email, and login data.
Learn to query sql databases to enumerate users, server version, and databases, join results with concat, inspect information_schema, and use union and limit to explore tables and data.
Explore sql injection as a web security vulnerability and how attackers inject malicious sql via vulnerable inputs to dump database data in web applications.
This lecture teaches how sql injection vulnerabilities arise in a vulnerable php application, demonstrating how crafted post requests can reveal user credentials by querying the shop database.
Explore the shell command line interface and its role between users and the operating system. Run commands, manage files, and use Linux Bash examples like hostname, echo, and cat.
Explain bind shells and reverse shells, including how a bind shell binds to a port for command execution, and how a reverse shell connects from the victim to the attacker.
Write a Python bind shell by binding a tcp socket to victim IP and port, then listen, accept, redirect stdin, stdout, and stderr to socket, and run /bin/bash with subprocess.
Learn to bypass a firewall by establishing a Python-based reverse shell that connects from the victim back to the attacker using netcat, enabling command execution on the victim machine.
Examine reverse shell in memory execution versus file-system delivery, detailing payload reduction, semicolon separation, base64 encoding, and memory-only deployment to bypass antivirus.
Stabilize the reverse shell by spawning a new bash with the python pty module to create a pseudo terminal, export TERM=xterm, and foreground with fg for a fully interactive session.
Set up a cyber security lab by downloading a vulnerable virtual machine, importing it into VirtualBox, configuring a host-only network with DHCP, and booting it for ethical hacking practice.
Map and assess a vulnerable web app on a linux ubuntu vm using a python script to scan 192.168.56.0/24 and curl http headers from port 80, revealing apache php.
Map web applications by testing the login form for SQL injection. Register a user and inspect session cookies, profile data, and shopping cart behavior; prepare to test file upload vulnerabilities.
Examine how a login form responds to SQL injection attempts, comparing valid and invalid logins and single- versus double-quote inputs via HTTP status codes like 200 and 302.
Identify SQL injection vulnerabilities by discovering column counts with union payloads, perform post requests, and reveal reflected data and database version via session cookies and command-line tools.
Explore how sql injection can dump all database data using a bash script, automating session cookies, post requests to login.php, and enumerating tables and user credentials.
Automate sql injection with a python script that reads the sql payload from the command line, url-encodes it, and posts to login.php using an HTTP client to dump database data.
Test for file upload vulnerabilities in profile picture updates and verify HTTP responses to payloads. Explore attempts to upload a PHP web shell and assess defenses around file types.
Explore how attackers gain a foothold with a reverse shell, including uploading a web shell, setting up a listener, encoding payloads, and stabilizing an interactive session.
Automate system enumeration after a reverse shell to escalate privileges, collecting host name, current user, kernel, os release, system users, processes, tcp sockets, and suid root files.
Explore how setuid root tools like find can enable privilege escalation to root, including editing /etc/passwd to add a root user and obtain a root shell.
This course is focused on learning by doing. In this course you will learn both Ethical Hacking and Programming at the same time. First you learn the basic theoretical knowledge about a given topic, then you apply this knowledge by building a hacking tool using python scripting.
On this course we will focus on the following topics: Networking, Linux, Bash Scripting, Python Scripting, Website Hacking, Bind/Reverse Shells, Data Encryption and Password Cracking.
1- We dive into details about the OSI model, data encapsulation and how network packets are constructed and exchanged between different hosts.
2- We will learn Linux administration and Bash scripting
3- We will learn Python scripting (Managing system files, Making HTTP Requests, threading...)
4- We learn how data is exchanged using both the MAC address and the IP address.
5- We write a python script that will spoof our MAC address.
6- We learn the inner working of the ARP protocol and we apply that knowledge by writing a network scanner using python scripting. A network scanner will discover all live hosts inside our local network using ARP Requests and Replies.
7- We dive into details about IP protocol and ICMP protocol, and we apply this theoretical knowledge by writing a python script that will trace route an IP address and discover all the routers in the path to the target IP address.
8- We build the required knowledge about TCP protocol, how a connection is made during TCP handshake, and how to scan a target host to discover its open ports using TCP port scanning techniques. We write a python script to scan for open ports using TCP_SYN_SCAN, TCP_ACK_SCAN, TCP_FIN_SCAN...
9- We learn how to connect to a target machine and get a shell terminal to execute commands on this target machine, using BIND SHELL and REVERSE SHELL. We write a BIND SHELL and REVERSE SHELL using python scripting.
10- We learn the fundamentals skills about Cryptography, like Data Encoding, Data Hashing, Data Encryption/Decryption, and Password Hash Cracking.
11- We apply the theoretical knowledge about Cryptography by implementing an Hybrid Encryption in Python using RSA Asymmetric Encryption and AES Symmetric Encryption.
12- We write a Password Hash Cracking Tool using Python Scripting.
13- We dive into details about website hacking.
14- We write PHP code and build a stealthy obfuscated web shell
15- we write SQL code and exploit SQL injection vulnerability
16 - Setup a vulnerable virtual machine and use it to practice your hacking skills
17- Privilege Escalation Techniques