Ethical Hacking Roadmap and Resources
Hi, I am Inderjeet Singh. A bug bounty hunter, ethical hacker, penetration tester, and also a cybersecurity investigator privately. I have 2 years of experience now, and with this article, I will share a pathway that anyone can follow to get into the subspace of ethical hacking.
The RoadMap
1. Learn Programming
Some people say programming doesn’t matter for hacking. But in reality, let me tell you something straightforward, in order to hack something you need to learn how that thing is made. Like how a web server is made, how a website is made, how an app is made, how a database connection is being done, how the developers are managing their code at a central facility.
I would highly suggest everyone start their hacking journey by learning programming because of the following reasons: you can code your own tools, you can make malware, your own XSS, SQLi, and etc. payloads. While doing reverse engineering you need this skill. Without programming, you won’t even understand how these payloads are working. It will be like a hit and trial.
Enough of use cases and philosophy, but How can you start learning to program? Choose any language but I would suggest starting with C. This is because this language has the concept of pointers, by which you can actually understand memory addressing.
Don’t learn languages, learn concepts of programming.
Concepts that you have to learn: Input/Output Handling, Variables, Mathematical Operations, if-else, switch, Loops, Functions, Pointers, Arrays, Data Structures, Algorithms, and there's so much to go on.
2. Learn Linux
Linux is an extremely important skill for hackers. Windows claims 82.56% of the world’s OS market. 96.3% of the world’s top 1 million servers run on Linux. 90% of all cloud infrastructure operates on Linux and practically all the best cloud hosts use it. Linux is an operating system exactly like Windows or macOS, but it’s open-source, free and you can customize it as per your choice.
Checklist for the things that one has to learn while learning Linux:
Shell, Navigation, File System, Redirection, Permissions, Processes, Environment, Text Editors, Package Management, Storage Media, Archiving, Networking, and Backup, File Searching, Regex, etc.
3. Learn Networking
Networking is the core part of hacking. You need to understand how packets flow, how your data flows from your device to a web server, and what happens at intermediary nodes. This will make you eligible to understand Wifi attacks, DNS attacks, network packet capture dumps, various website attacks, etc.
Checklist for the things that one can follow while learning Networking:
Network Devices, TCP/IP, OSI Model, Various Protocols and Services like DNS, SNMP, SMB, HTTP, FTP, SSH, etc., Network Traffic Analysis with Wireshark, Web Servers, Wireless Network, Bluetooth Networks, CAN Protocol (for Car Hacking).
4. Learn Cryptography
Today, we all mostly surf HTTPS sites, most of the traffic is encrypted. What it means, is that if you even are inside the network and hacked it completely. You won’t be able to see what’s happening within the network because of encryption.
According to kaspersky.com, “Cryptography is the study of secure communications techniques that allow only the sender and intended recipient of a message to view its contents.”
That’s why it’s too important to dive into cryptography. It’s a big topic, but for hackers just understanding it is enough. Learn about these fundamentals:
Encryption and Decryption, Types of Cryptography, Ciphers or Encryptions like ROT13, Caesar Cipher, Morse Code, Hexadecimal, Base32, Base64, etc., Hashing and hashes like SHA256, NTML, SHA512 (where they are used), etc.
5. Learn Website Attacks
After you are done with all the stuff which is just a pre-requisite for hacking, now it’s time to learn attacks. You can learn Android App attacks too. But, learning web attacks first will give a base for Android Penetration testing and iOS Penetration Testing. So, I will suggest starting with WebApp Penetration Testing.
There are so many attacks that you can do on websites like 2FA bypass, Database Attacks, Account Takeovers, Cookie Stealing, etc. To do these attacks, you have to first learn some web app bugs and some techniques:
Learn reconnaissance, SQL (Structured Query Language, used for databases)Injection, NoSQL Injection, XSS (Cross Site Scripting), CSRF, SSRF, LFI, RFI, XML Injection, HTTP Host Header Attacks, Web Cache Poisoning, Learn about CVEs, Learn about BurpSuite, automation, and there’s so much after this :-).
6. What After This?
This is just the beginning of this journey, after this, you will deep dive into a particular field and explore different regions of this subspace of cybersecurity. You can choose WebApp Penetration Testing, Android App Penetration Reverse Engineering, Hardware Security, OSINT expert, Social Engineer, CyberSecurity Investigator, iOS Penetration Tester, Network Security Expert, etc. Choose a field and explore. You are done with one field, pick another.
Here, you can never stop learning and that’s the best part that I see being a hacker.
Resources for Hacking
Youtube Channels
- Bitten Tech
- Clever Programmer
- codingo
- Cristi Vlad
- David Bombal
- DC CyberSec
- Farah Hawa
- freeCodeCamp.org
- HackerSploit
- Hak5
- InsiderPhD
- John Hammond
- Kalle Hallden
- LiveOverFlow
- Lio Liang Yang
- Null Byte
- Stok Fredrick
- SysAdmGirl
- The XSS Rat
- TomNomNom
Books
- The Linux Command Line
- Networking for Dummies
- Hacking The Art of Exploitation
- WebApp Hackers Handbook 2
- Kali Linux Revealed
- Linux Basics for Hackers
- Penetration Testing: A Hands-On Introduction to Hacking
- The Hacker Playbook 2
- The Hacker Playbook 3
- Practical Windows Forensics
- Practical Linux Forensics for Digital Investigators
- Ghost in the Wires
- Black Hat Python
- Metasploit: The Practical Tester’s Guide
- Real-World Bug Hunting
- Practical Malware Analysis
- Wireshark 101
- Black Hat Go
- RTFM: Red Team Field Manual
- How to Hack Like A Pornstar
GitHub Repositories
https://github.com/The-Art-of-Hacking/h4cker
https://github.com/Hack-with-Github/Awesome-Hacking
https://github.com/enaqx/awesome-pentest
https://github.com/B3nac/Android-Reports-and-Resources
https://github.com/infoslack/awesome-web-hacking
Still, so many things are left to add to this write-up. If I wrote somewhere incorrect thing or some typo, please correct me in the comments.
You can also follow me on following social media platforms for being always updated to new things.
You can follow me on Twitter, Telegram, LinkedIn, Youtube, Instagram to always be up-to-date on newer things happening in this space.
https://twitter.com/3nc0d3dGuY
Thank You.