Hey there! Thanks for stopping by. If you’re reading this that probably means that you want to learn how to start hacking. Or it could mean that you want to see what a random internet stranger has to say about learning how to hack. Either way, you’re in the right place! If you don’t like reading essays, I put together a summary of everything at the bottom of this article. It’s in the table of contents under “Everything Summarized”.
Table Of Contents
- Get a hacking box
- Set Up Your Hacking Box
- Learn The Command Line
- Learn The Basics
- Choose A Learning Platform
- Start Hacking
- What Next?
- Everything Summarized
So, what is hacking?
An entire book could be written about what hacking is, and chances are you’re not looking for an exact definition. Hacking is essentially finding ways to access functionality that a developer didn’t intend. For example, a login form. The developer intended for a user to enter their username and password (credentials) in order to gain access to their website. However, if the login form is vulnerable to SQL injection, an attacker may be able to enter specially crafted bits of a SQL query into the username box and bypass the login form. There are countless other examples, but I’m sure you want to get to the hacking already.
Okay, so how do I start hacking?
With the rise in popularity of hacking sites such as Hack The Box (HTB), Try Hack Me (THM), and Offensive Security’s fairly new platform Proving Grounds (PG) everybody wants to be a hacker now. It’s never been easier to learn! You have a wealth of information, tutorials, write-ups, and training platforms out there compared to say ten years ago.
There could be many different answers to this question depending on what your end goal is. Do you want to be a bug bounty hunter and have companies pay you to find bugs in their websites? Do you want to be a penetration tester and make a career out of ethical hacking? Or do you just want to participate in capture the flag events (CTFs) on the weekend and hack the intentionally vulnerable computers on some of the hacking sites I listed above?
There is no wrong path to choose, but I would argue that your training pipeline can (should) be drastically different depending on your end goal. If you are looking to become a professional penetration tester I would say the path is much longer as you should really have a solid understanding of at least the fundamentals of all things computers and networking (network topologies, how the internet works, what packets are and how to sniff them, what the OSI model is and all of the components at each of the seven layers, etc). But if you are looking into this as more of a hobby or a part-time gig I would say you should just jump straight into all the hacking sites out there.
Regardless of your reasons for wanting to learn how to hack, the decision you made that let you to this post is an exciting one that is going to open up your eyes to a completely new world!
I’m going to focus this post on the basics and am going to assume that you’re currently a hobbyist that wants to learn how to get into the basics so you can start participating in CTFs asap.
Let’s get to it!
Okay, well how do I get started?
If you ask 20 different psychopaths, you’ll get 20 different ways to skin a cat. Each one does the job, but some may more effective, some may be quicker but sloppy, some may be flawless but take a while, but they all work. Same thing here. We’re going to keep it simple though. Since we’re assuming you’re just doing this as a hobby and you want to have fun, we’ll start you with the absolute basics.
Get a hacking box
In the tech world we like to call computers anything but a computer. The two most interchangeable terms I’ve seen and use are boxes and machines. So when you see those words just know it means computer.
There are plenty of different options in regard to how to set up a hacking machine. You can download a barebones install of Ubuntu, you can continue using Windows for the most part and then download Kali on the Windows Subsystem for Linux (WSL) when you need it, or you can get virtualization software and run a Kali VM (this is the most common option). We’re going with the third option.
Download virtualization software
This software allows you to use your computer’s resources to essentially run another computer on it. The two most common virtualization software you can download are VMWare and VirtualBox (VBox). There are pros and cons to both. Enterprise environments tend to lean towards VMWare, but the licensing for the pro version that gives you all the fancy bells and whistles is expensive. We’ll use VBox for this tutorial.
VirtualBox Download: https://www.virtualbox.org/wiki/Downloads
The website should include pretty cut and dry instructions as to how to install it. It should be as simple as clicking on the .exe file and following the prompts all the way through. The only hang-up I can imagine is that virtualization is disabled in your BIOS, but that’s a quick fix. https://bce.berkeley.edu/enabling-virtualization-in-your-pc-bios.html
There are so many things you can do and configure in VBox that it’s pretty easy to get lost. Don’t worry about any of that. When it comes time to importing your Kali image, the defaults should be fine for the most part. The network should be set up by default to give your Kali VM internet access, but not be accessible to your host OS.
Download your hacking instance
Again, feel free to choose whatever you like. Kali Linux can be a bit beefy compared to a barebones install of Ubuntu, but it comes pre-loaded with almost every hacking tool you’ll need right off the bat. For an everyday hobbyist, you really can’t go wrong with Kali.
Download Kali Linux: https://kali.download/virtual-images/kali-2022.2/kali-linux-2022.2-virtualbox-amd64.ova
Warning: the above link will instantly download your Kali Linux OVA file.
Okay, now you have your virtualization software and your VM. How do you get your VM running?
Set Up Your Hacking Box
These steps are super simple but also very important.
Import Kali into VirtualBox
In VBox, click File –> Import Appliance, then choose wherever you downloaded your Kali OVA file to. Just click through the options, almost everything can be default. The only change I’d highly recommend making is the RAM (memory). Under System, in the Motherboard tab you’ll see a slider called “Base Memory”. I’d recommend changing it to half the RAM your computer has. So if you have a 16GB RAM computer, allocate 8GB to your Kali box. Nothing is more frustrating than a slow hacking box.
If you want a nicely detailed how-to sheet for downloading and installing Kali check this out:
Start your Kali VM
In VBox, click on the Kali VM and click the green arrow to start it. When prompted, enter the credentials “kali / kali”.
Update your Kali VM
On the top toolbar you should see a little black square called the terminal. Click it.
sudo apt-get update -y && sudo apt-get upgrade -y
This will update and upgrade your Kali VM. This important because it keeps all your tools and software up-to-date. You should aim to do this step at least weekly.
Take a snapshot
A snapshot of a VM is essentially like saving your progress in a video game. If the big bad boss defeats you, you can restart from last checkpoint. Same thing with a snapshot. If you know you’re going to install some risky Python dependencies or make some weird configuration changes that could wreck your VM, take a snapshot. Then if it goes haywire you can revert to your last clean instance. I like to take a snapshot at least monthly, or as needed.
After you update your VM, take a snapshot by clicking “Machine” –> “Take Snapshot”. Then name it and give it a description if you need. Then if you ever need to revert back to that snapshot, click on the tools icon (the three-line button), select snapshots, and choose the one to revert back to.
Also, if you want some good in-depth (but also fairly basic) training on Kali Linux from the people that developed it check out their free training course at: https://kali.training/
You have to create an account, but it’s a free course. I’ve gone through it before and I’d say it’s one of the best intro to Kali courses out there. It can be stressful diving into this world, especially having never used Linux before. They really help bridge that knowledge gap. 10/10 worth spending a week or two on it.
Learn The Command Line
But wait, you said this tutorial is about hacking.. Why am I taking command line lessons? Good question. The simple answer is that you’re going to spend a vast majority of your time in the command line / terminal. You need to be comfortable navigating yourself around, creating/deleting directories/files, searching for files, searching for stuff in files, modifying tools, executing scripts, etc. so a solid foundation in command line basics is essential.
I think this site does a pretty decent job at helping you learn the basics:
Just follow along in your own Kali terminal, can’t get more interactive than that.
Learn The Basics
There are many different places you can go to learn the basics. I’d argue that running through OverTheWire’s Bandit game is about as good as you can get for learning the basics. It’s entirely command line based and rather than getting straight into hacking it gives you various command line challenges that you have to solve in order to get to the next level.
But I want to start hacking! Why do I have to start with this juvenile stuff? Well, you don’t. Feel free to move onto the next section if you’d like. But I just personally ran through Bandit myself and I can tell you from experience that if I could go back and do it all over again I’d start there. It would have saved me the headache of not knowing how to do anything in the command line while I was trying to pop my first shell in HackTheBox. Save yourself the headache, just spend the few days running through Bandit. You’ll learn how to use SSH to connect to a remote host (very useful in the hacking world), navigating around the command line, learning about file permissions, searching for a needle in a haystack (the password in tons of files in tons of directories), etc.. It’s worth the time, trust me. And it’s free! No account required.
Follow my Bandit tutorial (called a writeup in the tech world):
Choose A Learning Platform
This section is where the most controversy is in the world of hacking. What site to choose to learn from. There are so many hacking platforms out there these days that it seems impossible to pick one.
Okay, very helpful. Thanks. Which one do I choose?
They all have their ups and their downs. It really depends on your learning style and your base level of knowledge. Are you familiar with hacking already? Do you have a background in the tech world and just want to spin yourself up really quick and start conquering the hacking domain? Are you a complete n00b that hasn’t heard of Kali Linux until about 30 seconds ago? How much money do you want to spend monthly to learn? Questions along these lines.
I’ll briefly cover some of the top contenders and which ones I think are worth it.
TryHackMe is my number one favorite site for learning. They have hundreds if not thousands of different rooms that teach you different things from what the internet is all the way to how to establish persistence on a compromised machine. It’s usually a step-by-step tutorial that ranges from easy to difficult.
They also have learning paths that they designed for different categories: like web hacking or offensive security (OSCP prep). There’s also a neat search bar where you can type in the room name or the type of attack you want to learn and it’ll show all of the machines that are vulnerable to that attack. For example, when I was prepping for my OSCP exam I wanted some more practice attacking Active Directory. So I typed Active Directory into the search bar and I ran through the roughly 14 different rooms that popped up, and some of those techniques I learned really helped me on my exam.
THM has some free rooms, but if you want to maximize your learning potential their premium service is only like $6 USD per month. Super cheap for what you get. They even have an in-browser attack box you can launch if you don’t want to start your Kali VM.
Hack The Box Academy
Out of complete honesty, I didn’t completely run through the HTB Academy. However, from what I did complete I will say I feel as if their academy is still a bit advanced for a beginner. They have really good tutorials and lessons, but for the most part it seemed like you really had to have some sort of tech foundation to fully grasp what was happening. It may have changed since I last ran through it, but that’s how it was when I went through it.
I will say though, I still recommend going through it. But after THM. Once you complete your THM learning paths and have gone through mostly everything of use to you, I’d switch over to HTB Academy for your follow-on learning.
If I remember correctly, they have some free modules you can complete. With the free plan they’ll only give you so many points per month, then you “buy” a module with those points. Once you successfully complete the module they’ll give you some of those points back. If you purchase a paid plan you get more points per month, so it’s still not unlimited access unless you shell out maximal cash. That is one of the things that first pulled me over to THM.
My overall opinion
Start with TryHackMe. It’s really cheap, so if you don’t like hacking after a month or two you’re only out $6. It has really good step-by-step tutorials for you to follow along with. Once you feel you’ve gotten enough out of THM, move over to HTB Academy and start learning some more in-depth things. Or, if you feel you got enough out of THM just jump straight into the next section. Like I said, I never did HTB Academy. It wasn’t an option when I first started out, and I wasn’t a fan of it when it first dropped.
Okay Dw3113r, I learned all about the command line, I did all of the Bandit game, I did THM and/or HTB Academy. It’s been two months. I just want to hack. How do I hack?
Well first off, congrats on getting to this point! A lot of people get burnt out trying to learn how to hack that they quit. Or instead of learning they jump straight onto a hacking platform, don’t know how to run even a simple port scan, and they quit. It’s a big accomplishment making it this far! Here’s what to do next.
First off, I’m going to say upfront that if you want to enjoy a decent hacking platform you’re going to have to spend money. Assume from this point on that anything I talk about is a paid service unless otherwise noted.
(Optional) Hack The Box – Starting Point
HTB understood that a lot of beginners are starting to get into hacking. I’m pretty sure they even shut down their old account registration method where you’d have to “hack” their website to get the registration email code. But nowadays they cater pretty well to people that just want to get right into it. They designed some extremely simple machines called “starting points” where they help walk you through exploiting the box, sort of reminiscent of THM. I ran through all of them and I can say I’m a fan. Very good starting point.
Hack The Box (HTB)
You can get a free Hack The Box account, however the $15/month VIP subscription is absolutely worth it. You get dedicated servers so you aren’t sharing the same hackable box with a bunch of strangers, the speed is much faster, and you get access to all of the retired boxes. There are only a handful of active boxes at a time, then they get retired after a bit. A VIP plan gets you access to all of them, which is super nice when your only goal is to hack everything and learn as much as possible.
TryHackMe does still push out content frequently. There are always new tutorials, learning paths, rooms, networks, techniques, etc coming out that I would argue make a subscription worth it. But I wouldn’t necessarily say it’s a mandatory thing. I like to bump myself down to a free plan when I’m not planning on using THM for a little while. Then if something cool comes out I’ll pay the $6 for the month to get access.
Offensive Security’s Proving Grounds (PG)
Once you’ve been in this community for a little while chances are you’ve heard of OffSec and their infamous OSCP certification. They’re also the people that created Kali Linux, so many a credit is due their way. To hop on the hacking platform bandwagon they developed something similar to HTB called Proving Grounds. I am actually a pretty big fan of PG. I think HTB has more of a community around it, the point system makes it fun to compare yourself to others, their forums are full of super helpful people (usually), but their machines are a little more game-like than PG. PG has vulnerable boxes that are a little more realistic, or at least a little less game-like than HTB. If you’re attempting the OSCP certification, I’d recommend running through every machine on PG, because they are by far the most similar to the exam machines.
Capture The Flag (CTFs)
This is one that a lot of people forget to mention in these sorts of articles. Enter yourself in every Capture The Flag (CTF) you can find. Most of them are on https://ctftime.org/, just find one that seems interesting and sign up for it. Maybe try to make a team and tackle it together. There are a bunch of different categories in CTFs, so having multiple people that have different strengths is always helpful. And don’t fret if you don’t think you know anything. My first CTF I’ve ever done I got zero points in 5 days (told you I wished I would have actually done some learning in the beginning).
Bug bounties are pretty great. Essentially, it’s a company telling you that if you find a vulnerability in their site they’ll pay you money to report it to them. I haven’t had much luck in bug bounties and I make enough from my full-time pentesting gig that I don’t really need to do them, so I tend to stay away. The bug bounty market is starting to get a bit oversaturated at the moment. All of the easy-to-find vulnerabilities are usually found relatively quick, so unless you start to get pretty advanced it might be worth it just to stick with one of the other sites so you can actually have a target to hack. But it’s up to you! The best bug bounty site I’d say is HackerOne right now, but there are other good ones, just google it.
There are plenty of other sites available for learning or practicing. You could go on VulnHub and download some vulnerable machines and hack them, you can try out pentesterlabs, or any other site that pops up when you google “learn how to hack”.
I’ve mentioned this before in other articles, but a major tip that I have is to try your hardest to exploit a box entirely by yourself first. If you can’t do that, go to the forums and see if there any hints or nudges in the right direction. If you still can’t get it, see if there are any writeups online that can help you out. Only read the writeup to the part you’re stuck on, then put it away unless you get stuck again. If there’s one thing I hate, it’s wasting my time. I will try my best to google something to death, I’ll use hints, I’ll use resources, but at the end of the day I refuse to spend 3 days attempting to pop a box. My time is more valuable than that. I’ll read the writeup, I’ll document what I learned in my personal note page / cheat sheet so I know what to do if I come across that again, then I move on. Feel free to do whatever you feel will help you the most, but don’t let a huge ego make you waste time you could be spending learning other things.
This article was supposed to be the absolute most basic thing I could come up to give you your starting point into this world. Now that you’re at the point where you can at least pop a root shell on an easy-rated box on HTB just continue working on your craft. Keep learning. Keep popping new boxes. Maybe learn Python or another scripting language and develop tools that help you automate your tasks a bit, maybe post your tools for others. Work on your note taking. Work on developing/improving your methodology. Maybe try to get your OSCP certification. It’s a hard one, but definitely worth it. It’s arguably the most highly recognized certification in our industry if you’re trying to get into pentesting professionally.
If you need a helpful basic pentesting cheat sheet feel free to steal mine, it’s not much but it’s at least most of what helps me out when I need it:
Also, I don’t have a following yet, but I’m trying to turn my website into a forum site for all things hacking. A lot of hacking sites have their own forums and don’t take too kindly to people that ask other questions, so I’m trying to get the whole hacking community onto my forum. I want it to be a place where everyone can openly discuss whatever they want about hacking without fear of being told that their forum isn’t the right place for those discussions. So please consider registering for an account on my forum! Drop by whenever you have something on your mind or if you just want to shoot the shit. I’ll be moderating the forum for a little while until I establish a solid community.
Okay, I know I like to type. I type like I talk: not very elegantly, and a lot. Here’s everything summarized into a little list.
- Get your hacking box
- Set up your hacking box
- Import Kali VM
- Start Kali VM
- Update Kali VM
- Take Snapshot of Kali VM
- Learn command line basics
- Learn the other basics
- OverTheWire – Bandit
- (Optional) Learning how to use Kali Linux
- Choose learning platform
- Hack The Box Academy
- Start hacking
- HTB – Starting Point
- Proving Grounds (PG)
- Bug Bounties
Well, that’s it! This was a pretty long-winded intro to the world of hacking, but I really like to go in-depth when I explain things. Hopefully it all made sense to you. If not, feel free to leave a comment and I’d be more than happy to help clarify or answer any questions you have! I wish you the best of luck in your hacking ventures. It can be daunting to learn at first, but very quickly turns into a fun an exciting world.