Long time no see! As we all gear up for the Christmas holidays, I figured I would circle back to this dusty old blog and tell you what I've been up to as well as why I have been radio silent over the last little bit. For those who do not know, I have been homelabbing since the summer and been pretty much flat-out with making things work in this lab. One of these things is a dedicated cyber range where defensive along with offensive operations can be launched, all in a safe environment that is ran on the infrastructure I have built.
If you're looking to build your own cyber range, this is the blog post for you as I will be covering all the lovely hiccups and things I have learned during my ongoing journeys. I will also be providing an opportunity for YOU to get your hands on the range if you wish to play around. Let's talk homelab!
The Tech Stack
Infrastructure
So for my tech stack, I learned fairly quickly that having a good hypervisor is crucial for setting up your cyber range. I tried both Hyper-V Server 2019 as well as VirtualBox, but ended up using Proxmox on top of my Hyper-V environment. The goal with this was to add an additional layer of virtualization so that the cyber range's infrastructure such as the DC and clients ran in a virtualized environment, not in parallel with any VM's on my server. Therefore, I can also further isolate it should the need arise. This was easier said than done as Windows Server 2025 and 2022 both require everything to be in check prior to it being set up for the first time, otherwise it will be bricked. It wasn't until I turned off KVM virtualization and switched to an evaluation copy of Windows Server 2022 that things finally worked.
Once I had my DC up, it was time to turn my attention to creating some users. Thanks to a tool that I built (announcement TBD), I was able to create a full-fledged corporate directory complete with roles, managers, offices, and phone numbers. The goal here was to make it as realistic as possible to what you would see in a corporate environment. Once this was done, I then started creating some mock endpoints for simulations. Now with that out of the way, I then could begin looking into simulating user interactions! I used GHOSTS integrated with Swagger and Grafana to simulate realistic user traffic that can be fed to the SIEM. In this case these are the following logs I will be forwarding to the SIEM:
- Windows Event Logs (auditing successful processes and the like) using Winlogbeat
- Sysmon logs from Linux machines and other machines I decide to pull from
- Network traffic logs from the endpoints (pending firewall appliance)
Now you may have noticed that the firewall is pending. This is because I am waiting for a small mini-PC that I will install OPNsense onto to send telemetry from any assets within my range VLAN. So this is a work in progress. I also just got a managed switch so that I can do VLAN tagging of my cyber range versus my server traffic so that will further isolate the range from my homelab to prevent any IP scans or lateral movement.
SIEM
In case you did not know, SIEM stands for Security Incident Event Management and is the tool used by security professionals to investigate security events. In this case, I wanted to go with Elastic and Kibana as these are both tools that I use within my homelab environment. You could also use other open-source tools like Wazuh or Security Onion to achieve the same thing, but one thing I love about the ELK stack is the ability to mend and meld dashboards to what you require. I also like how I can use KQL (Kibana not Kusto) to really get down and dirty with the data. For those who are not aware, Elastic can also be used for other purposes aside from security, which is the great thing about it! It is a data science oriented tool that allows for Kibana integration so that you can really build the reporting you desire.
I plan to eventually integrate other open-source SIEMs into the mix such as Wazuh and Security Onion, but as of right now I just want to get the range up and running. In the end, the range will contain a few different SIEMs to appeal to the appetite's of whoever is using it. If you know of any, or if you're a vendor willing to help, please let me know!
Ticketing and Knowledge Base
For the ticketing system, I created a Power Pages portal that teams can use to submit and track tickets as well as view a knowledge base. I plan to share this in a subsequent article, but the reason I went this direction was because I wanted to try using Power Pages and I didn't want to bog down my range with a bunch of different VM's running different things. If you do not have Power Pages, you can also use open-source ticketing systems such as osTicket which can be installed onto a virtual machine. Either way, it is important to have some form of ticketing and knowledge base system that analysts can use to record incidents as well as see written playbooks (all made by those who will use the range).
Lessons Learned Thus Far
Of course along the way I have learned quite a bit, in which I hope that these little tidbits of advice will help you to build your own range (or avoid the complications that I did):
- Use Proxmox to as the guest to your range. It doesn't matter if the host is using Hyper-V or another hypervisor, but the guest that your range will use should be Proxmox. I wasted quite a bit of time playing around with Hyper-V Server 2019 for it to only have a CLI and a bit of a learning curve. Proxmox has a web interface which offers much more features. So if you're looking for the path of least resistance, choose Proxmox VE as your guest.
- Be prepared for compatibility issues running Windows inside Proxmox. Since Proxmox is a Linux-based virtual environment, you will be required to load Windows drivers onto the VM's you create if you're using Windows Server or other Microsoft Operating Systems. VirtIO offers these drivers for free and isn't super hard to set up once you bang your head off your desk a few times. Just turn off KVM virtualization and you'll be fine.
- Find a really good tutorial for Elastic and Kibana installation. There are a few out there, but some of them are outdated so you may end up spinning your wheels on some of them. Even better, just ask Copilot.
- Sometimes the best fix to a messed up Elastic or GHOSTS install is to just start clean and with some food in your stomach.
- Persistence is key: there is nothing more satisfying then seeing Elastic light up with telemetry after pulling an almost all-nighter getting it working.
So that pretty much covers everything I had to say in this one. If some of this went over your head, then that's okay, it did with me too in the beginning. Only way to understand this article is to do it yourself! This Christmas will be spent fixing up the odds and ends, then rolling it out to the first contingent of people. Until then, have a Merry Christmas, and a Happy New Year!