Prerequisites
What You Need to Know Before Starting
This textbook assumes foundational knowledge in several areas. This chapter helps you assess your readiness and provides resources to fill any gaps before diving into the main content.
1. Computer Fundamentals
You should be comfortable with: - How operating systems work at a high level (processes, file systems, permissions, services) - The difference between a client and a server - What a virtual machine is and why we use them - Basic hardware concepts (CPU, RAM, storage, network interfaces)
If you need a refresher: - Computer Science Distilled by Wladston Ferreira Filho - Harvard CS50 (free on YouTube/edX) — Weeks 0-4 - CompTIA A+ study materials for hardware/OS fundamentals
2. Networking Basics
You should be able to: - Explain what IP addresses, subnet masks, and default gateways are - Describe the difference between TCP and UDP - Understand what DNS does and why it matters - Know what ports are and recognize common ones (80, 443, 22, 53, 445) - Understand the basic concept of a firewall
If you need a refresher: - Computer Networking: A Top-Down Approach by Kurose and Ross (Chapters 1-3) - CompTIA Network+ study materials - Professor Messer's Network+ video series (free on YouTube) - Chapter 6 of this book provides a hacker-focused networking review
3. Linux Command Line
You should be comfortable with:
- Navigating the file system: cd, ls, pwd, find
- Viewing and editing files: cat, less, nano or vim
- Text processing: grep, awk, sed, sort, uniq
- File permissions: chmod, chown, ls -la
- Process management: ps, top, kill
- Package management: apt update, apt install
- Piping and redirection: |, >, >>, <
- Basic networking commands: ping, ifconfig/ip, netstat/ss, curl
If you need a refresher: - The Linux Command Line by William Shotts (free online) - OverTheWire Bandit wargame (https://overthewire.org/wargames/bandit/) - TryHackMe "Linux Fundamentals" rooms (free tier) - LinuxJourney.com interactive tutorials
4. Programming (Python)
You should be able to:
- Write scripts with variables, conditionals, loops, and functions
- Work with data structures: lists, dictionaries, sets, tuples
- Handle file I/O (reading/writing files)
- Use basic string manipulation and regular expressions
- Import and use standard library modules
- Install packages with pip
- Understand basic error handling (try/except)
If you need a refresher: - Automate the Boring Stuff with Python by Al Sweigart (free online) - Black Hat Python by Justin Seitz and Tim Arnold (security-focused Python) - Python.org official tutorial - Codecademy or freeCodeCamp Python courses - The Python Reference appendix in this book
5. Hardware Requirements
To follow along with the hands-on labs, you'll need:
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 8+ cores |
| RAM | 8 GB | 16+ GB |
| Storage | 100 GB free | 250+ GB SSD |
| Network | Ethernet or Wi-Fi | Both (Wi-Fi adapter for wireless chapters) |
| Virtualization | VirtualBox (free) | VMware Workstation Pro |
For wireless attacks (Chapter 25): - USB Wi-Fi adapter with monitor mode and packet injection support - Recommended chipsets: Realtek RTL8812AU, Atheros AR9271 - Budget: $15-40
Note: You do NOT need powerful hardware to start. Most chapters can be completed with 8GB RAM and VirtualBox. Chapter 3 provides detailed setup instructions for every budget level.
6. Software You'll Need
All software used in this book is free or has free/community editions:
- Kali Linux — Primary attack platform (free download)
- VirtualBox or VMware — Virtualization (VirtualBox is free)
- Metasploitable 2/3 — Intentionally vulnerable targets (free)
- DVWA — Damn Vulnerable Web Application (free)
- OWASP Juice Shop — Modern vulnerable web app (free)
- Burp Suite Community Edition — Web proxy and scanner (free)
- Wireshark — Packet analyzer (free)
- Python 3.x — Pre-installed on Kali Linux
Chapter 3 provides step-by-step installation guides for everything.
7. Mindset Prerequisites
Beyond technical skills, ethical hacking requires:
- Curiosity: The desire to understand how things work — and how they break
- Patience: Many techniques require methodical enumeration, not just running tools
- Ethics: A firm commitment to only testing systems you're authorized to test
- Documentation habits: If you didn't write it down, it didn't happen
- Persistence: The willingness to try, fail, learn, and try again
Self-Assessment Checklist
Rate your confidence (1-5) for each area:
| Area | 1 (None) | 2 (Basic) | 3 (Comfortable) | 4 (Strong) | 5 (Expert) |
|---|---|---|---|---|---|
| Computer fundamentals | ○ | ○ | ○ | ○ | ○ |
| Networking basics | ○ | ○ | ○ | ○ | ○ |
| Linux command line | ○ | ○ | ○ | ○ | ○ |
| Python programming | ○ | ○ | ○ | ○ | ○ |
| Virtualization | ○ | ○ | ○ | ○ | ○ |
Score 20-25: You're ready to dive right in. Start at Chapter 1.
Score 15-19: You're mostly ready. Skim the resources above for your weakest areas, then start. Chapter 6 (Networking Fundamentals) will reinforce networking concepts.
Score 10-14: Spend 2-4 weeks with the recommended resources above before starting. Focus on Linux command line and basic networking — these are used in nearly every chapter.
Below 10: Consider completing an introductory IT or computer science course first (CompTIA ITF+ or Harvard CS50), then return to this book.