A hands-on home lab where I experiment, break, and explore systems to learn cybersecurity. Full documentation included.
Having a homelab is extremely important in cybersecurity. We can practice, break, build, and test everything we want in an isolated environment, without affecting our real machine. This allows us to gain more experience in the field by putting theory into practice. This allows us to understand better some important cybersecurity concepts: operating systems, networking, malware analysis, network isolation, Security Information and Event Management (SIEM) and more.
Here are the resources I used to make my own cybersecurity homelab:
- Hypervisor: VirtualBox
- Vulnerable machines: VulnHub
- NetworkChuck: https://www.youtube.com/watch?v=mvsiuLzpx2E&t=254s
- Operating System: Parrot OS
-
Attacker Machine:
- Operating System: Parrot OS
- Purpose: Used to perform penetration testing and attacks
- RAM: 8 GB (8192 MB)
- CPU Processors: 5
- Attached to: Internal Network(for isolation)
In this guide, I will walk you through the steps I took to build my own home lab, from scratch.
To start, let's install a software that lets us create virtual machines, I chose VirtualBox, because it's simple to use and user-friendly. I installed it on Windows 11, following the step-by step guide on the official VirtualBox website: https://www.virtualbox.org/
I chose Parrot OS as my distro for my HomeLab. There are many other ones, such as Kali Linux, Blackarch, ArchStrike and even more. Parrot OS is Debian-Based, which makes it stable, well-maintaned and reliable.
The Parrot OS virtual machine was deployed by importing an existing .ova file into VirtualBox. This method ensures a consistent and reproducible environment without requiring a full manual installation.
After importing, the VM was configured with two network adapters:
- NAT adapter for internet access
- Internal Network (intnet) adapter for communication within the lab environment
For a safe testing environment, it's fundamental to isolate our VMs, so that all the virtual machines won't be able to communicate to our network. First, I chose the VM I wanted to isolate, then I clicked on "Settings" and I went to the "Network" Section.
The second step I took was to attach the Virtual Machine to the "Internal Network Adapter", then I gave a name to my isolated network: intnet(you can choose every name you want).
We completed the isolation procedure, but now there's a problem: when we boot our VM, it won't have an assigned IP, to fix this, I hosted a DHCP Server.
On windows, I opened CMD(Command Prompt) and navigated to the path where Oracle Virtual Box is installed C:\Program Files\Oracle\VirtualBox Then, I hosted my DHCP server by using the following command:
After executing the command, I created a DHCP server associated with the internal network (intnet). The server was assigned the IP address 10.38.1.1 and configured to automatically distribute IP addresses to connected machines within the range 10.38.1.110β10.38.1.120.
The network was defined with a subnet mask of 255.255.255.0, and the --enable flag was used to activate the DHCP service.
To start exploiting systems, we need vulnerable virtual machines to attack. I installed multiple vulnerable VMs from VulnHub, a great website that offers a wide variety of virtual environments ready to hack. This is very important for our HomeLab, because it gives us the opportunity to train, test, and break systems.
- Add SIEM
- Add Windows Target
- Add Windows Active Directory lab
- Add PfSense