This repository is a comprehensive tutorial series for ethical hacking and penetration testing. It's built for learners who want to understand the principles, tools, and techniques behind network security, offensive security, and cybersecurity research — through both theory and practical, hands-on exercises.
Everything here is meant to be run in labs you control. No shortcuts to third-party systems, no live targets.
- Network scanning and information gathering
- Pre-connection and post-connection attacks
- Man-in-the-middle (MITM) attacks
- Device discovery and ARP spoofing
- Working with tools like Nmap, Netdiscover, ARP Scan, Bettercap, and more
- Python scripting for automating security tasks
- SQL injection fundamentals in a safe, sandboxed lab
- Intro to binary exploitation
- Best practices for ethical hacking and responsible disclosure
| Folder | Description |
|---|---|
ethical-hacking/ |
Core lesson series — recon, DNS, SNI, phishing toolkits, password attacks, and more |
python-for-eth-hacking/ |
Python fundamentals applied to security tooling |
python-scripts/ |
Standalone scripts — port scanners, ARP spoof detectors, deauth tools, hashing demos |
sql-injection-lab/ |
A safe, containerized lab for learning SQL injection detection and remediation |
intro-to-binary-exploitation/ |
Introductory binary exploitation concepts |
cli-editors-tutorials/ |
Guides for terminal-based editors (Emacs, and more) |
FMEA Fundamentals/ |
Failure Mode and Effects Analysis fundamentals |
safe-practice-questions/ |
Practice questions with an answer key |
UI/ |
Frontend for the site |
docs/ |
Reference material and legal notes |
-
Clone the repository
git clone https://github.com/amandewatnitrr/hacking-tutorial.git cd hacking-tutorial -
Explore the lessons Lessons live in
ethical-hacking/andpython-for-eth-hacking/. Each one walks through step-by-step instructions, code samples, and explanations. -
Try the scripts Example scripts live in
python-scripts/. Always use a safe, isolated environment (a VM or an isolated test network) for practical exercises.
- Ethical Hacking for Beginners
- Encryption Crash Course
- SNI Lesson
- DNS Lesson
- Password Attacks & Hash Cracking
- Python for Ethical Hacking — A Guide to Post Scanning
- SQL Injection Learning Lab
- Intro to Binary Exploitation
- Kali Linux VM
- VMware Workstation
- Windows 10 VM — Google Drive
- Windows 10 VM — Sync.com
- Ultimate Cybersecurity Resources
Contributions are welcome! To contribute:
- Fork the repository and create a new branch for your changes.
- Add new lessons, improve existing content, or submit scripts and tools.
- Ensure your contributions follow ethical guidelines and do not promote illegal activity.
- Open a pull request with a clear description of your changes.
See CONTRIBUTING.md and the Code of Conduct for details.
If you want to add analytics or visitor tracking to the site, please follow these guidelines:
- Only use analytics services that respect user privacy, e.g., Plausible or Fathom.
- Do not collect sensitive user information.
- Clearly inform users if any tracking is enabled.
- Follow GDPR/CCPA rules if your users are in regions that require them.
- Any analytics code should be added in a separate, well-commented file (e.g.,
analytics.js) and imported only in production.
Example (using Plausible):
// src/analytics.js
if (process.env.NODE_ENV === 'production') {
(function() {
var d = document, s = d.createElement('script');
s.src = 'https://plausible.io/js/plausible.js';
s.async = true; s.defer = true; s.setAttribute('data-domain', 'yourdomain.com');
d.head.appendChild(s);
})();
}- Only run this lab in an environment you control (local machine, VM, or Docker).
- The SQL injection lab is intentionally non-actionable: it demonstrates unsafe patterns as strings and provides safe alternatives.
- Do not use these examples to attack third-party systems. See
sql-injection-lab/LICENSE_NOTE.mdfor details.
Avoid using the python_crypto library or any other cryptographic or hacking-related library that is unmaintained, deprecated, or suspicious.
- Always use reputable, well-maintained libraries and tools.
- If you're unsure about a dependency, open an issue or ask before using it.
This project is for educational purposes only. All activities described should be performed in controlled, legal environments. The authors are not responsible for any misuse of the information provided.
This project is licensed under the GNU General Public License v3.0. See LICENSE for details.