Building a Security Lab in VirtualBox

In this project, we we will take a look at an in-detail process of setting up an entry-level cybersecurity lab using VirtualBox
Building a Security Lab in VirtualBox
In: VirtualBox, Home Lab, Computer Networking, Attack, CTF

Change Log

View Change Log

Mar. 19, 2024

  • Corrected the interface configuration on Metasploitable 2
  • Prefer default route out AD lab interface for Internet access
  • Added a route to Kali's subnet through the correct interface

Mar. 14, 2024

Mar. 13, 2024

  • Update several screenshots in the AD lab section to bring it up-to-date with the latest user experience
  • Update the AD lab firewall rules to correct a logic flaw
  • The original ruleset will block traffic to the default gateway of the lab
  • Update adds a rule to the top of the ruleset that allows traffic to the default gateway, which will also correct issues with the DNS resolver

January 25, 2024

Updated the Configuring the pfSense Firewall for Our VirtualBox Lab step with new firewall rule creation screenshots and configurations

  • Should remove any confusion where rules used to reference INTERFACE net and now reference INTERFACE subnets
  • Moved the steps to create firewall aliases from the Adding Another Interface to pfSense in VirtualBox to the aforementioned step above, as creating the aliases earlier will help readers create better rules
  • Also, updated firewall rules for the AD_LAB subnet, so that they reference the aforementioned aliases, they are a bit more restrictive, and they scale better for labs that add more subnets

December 30, 2023

September 1, 2023

Updated the Building a pfSense VM for Our VirtualBox Cyber Range step, Importing Kali Using the Official VirtualBox Image step, and Adding Vulnhub VMs to Our VirtualBox Cyber Range step

  • Lots of screenshot updates!
  • Brings the guide up to the VirtualBox 7.x experience, so less guesswork for readers when building their VMs

June 23, 2023

Updated the Adding an Active Directory Forest to Our VirtualBox Lab step


What We'll Build

  • Virtualized pfSense firewall as the gateway
  • Multiple subnets for different purposes
    • LAN
    • Isolated
    • Active Directory

ℹ️
pfSense is acting as the NAT router and firewall for the lab environment. Therefore, pfSense will need to be the first VM to boot when running your lab. After pfSense boots, you can start your other VMs.

Usage Scenarios

Desktop

You have a desktop – either your daily-use computer or backup computer – you do not want to reimage it, but would like to run some labs on your computer.

Laptop

Your daily-use computer. You want to run some labs on it and would like a mobile security lab.



Recommended System Specifications

  • Multithreaded CPU with Virtualization Support
  • At least 16GB RAM – 32GB would be better
  • Plenty of free disk space, preferably more than one internal disk



Enabling Virtualization in the BIOS

ℹ️
This process is unique to different PC vendors. I am going to demonstrate this on a HP EliteBook 840 G3. Use Google to find the procedure for your computer model.
  1. Turn on the laptop
  2. Press the ESC key multiple times until you get to the system setup menu.

Warning: you might need to press a different key on your system to get to the BIOS menu. From my HP laptop, ESC is the key to get to the BIOS.

  1. Choose BIOS Setup
    1baaf37eb8e7480fa90a6dfa36655298
  2. Go to Advanced > System Options
    b097c6946c2649efb32d64a28e3206ae
  3. Enable VTx and VTd (For AMD processors, there is a different name)
    b04da48f70ad40e6aaef2ab84c5027a5
  4. Save changes and exit the BIOS setup



Install VirtualBox

To download the VirtualBox installer for your host OS, navigate to their downloads page here:

Downloads – Oracle VM VirtualBox

You'll see a list of downloads based on host operating system. At the time of writing this guide, the latest version was 6.1.32.

  • If downloading for Windows, click Windows hosts
  • If downloading for Mac OS, click OS X hosts
  • If downloading for Linux, click Linux distributions and follow the instructions. You can downloading using an .rpm or .deb package, or you can install using your package manager such as yum or apt.



Install the VirtualBox Extension Pack

Once you've installed VirtualBox, I'd highly recommend you add the extension pack for better VM support.

You can download the extension pack file. Once you open the file, VirtualBox should be the default file handler and install the extension pack. You must reinstall the extension pack any time you update VirtualBox!



A Note on VirtualBox Guest Additions

What are the VirtualBox Guest Additions? As you continue to experiment with VirtualBox, you may hear this name come up. Put simply, the Guest Additions are drivers (or software) you can install inside the VM, to enable it to run more smoothly with VirtualBox.

For example, sometimes you may have VM that has a poor screen resolution, the screen doesn't resize, or some other strange issues. You may need to install the VirtualBox Guest Additions drivers to help the VM run more smoothly.

⚠️
In this lab guide, we won't be using the Guest Additions much, because most of our VMs won't require it. If you use the Kali Linux VirtualBox image provided by Offensive Security, the Guest Additions already come installed.



Next Steps

ℹ️
Please note that all of the steps demonstrated in this lab are being done on a Windows host machine.

Building a pfSense VM for Our Cyber Range

Building a pfSense VM for Our VirtualBox Cyber Range
In this module, we will look at setting up a pfSense firewall VM in VirtualBox to segment our home lab network

Importing Kali from Offensive Security Images

Importing Kali Using the Official VirtualBox Image
In this module, we will look at the process of importing the pre-packaged Kali VM for VirtualBox directly from the official source.

Configuring the pfSense Firewall

Configuring the pfSense Firewall for Our VirtualBox Lab
In this module, we will log into the pfSense web portal and configure firewall rules for our VirtualBox lab using our Kali VM.

Adding Vulnhub VMs to the Lab

Adding Vulnhub VMs to Our VirtualBox Cyber Range
In this module, we will look at two different ways, based on file type, to import VMs from Vulnhub into our home lab.

Building the Active Directory Lab

Adding an Active Directory Forest to Our VirtualBox Lab
In this module, we will cover the steps to set up a small Active Directory forest in VirtualBox, including a domain controller and two client computers

Hack Your Active Directory Lab

Hack Your VirtualBox AD Lab
In this module we will look at using a publicly available script to make our Active Directory domain susceptible to multiple vulnerabilities.

Set up a Pivoting Lab

External Pentest Practice in Your VirtualBox AD Lab
In this module of the VirtualBox cybersecurity home lab project, we are going to look at the process of setting up a dual-homed target to serve as a pivot point into an Active Directory network.

Troubleshooting Your Lab

Troubleshooting Your VirtualBox Lab
In this module, we will take a look at some common problems you may experience in your VirtualBox lab and how to begin fixing them.

Creating a Windows 7 Buffer Overflow Practice VM

Creating a Windows 7 Buffer Overflow Practice VM in VirtualBox
In this module, we will look at creating a vulnerable Windows 7 VM in VirtualBox that will run some applications which are vulnerable to 32-bit stack-based buffer overflows

Adding Another Interface to pfSense

Adding Another Interface to pfSense in VirtualBox
In this module, we will look at the process of adding an additional interface to the pfSense VM when the VirtualBox GUI only shows four available interfaces.





Appendices

Appendix A: Double NAT Diagram

Learn more about NAT here: https://www.youtube.com/watch?v=wg8Hosr20yw



Other Projects

Proxmox VE 8: Converting a Laptop into a Bare Metal Server
In this project, we will take a look at an in-detail process of setting up a Proxmox home lab on a bare metal server.



Honorable Mentions

  • Check out @Dewalt’s PimpMyKali script to make your Kali VMs so much better
  • gimmesystem in the HackTheBox Discord server for QA testing this guide
More from 0xBEN
Table of Contents
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to 0xBEN.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.