You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ever since I built my first homelab, I’ve been obsessed with having my own dedicated cyber range — my little digital fight club where I can break things, fix things, automate things, and then do it all again. True definition of insanity right here. But I didn’t want to risk nuking my daily-driver machine.
11
+
Ever since I built my first homelab, I wanted to create my own dedicated cyber range - my little digital playground where I can break things, fix things, automate things, and then do it all over again. True definition of insanity right here. But I didn’t want to risk nuking my daily-driver machine.
12
12
13
-
Then one day I looked over at my ancient desktop — the one that wheezes when you open more than three Chrome tabs (I actually needed to replace a few faulty fans) — and thought:
13
+
Then one day I looked over at my ancient desktop — the one that wheezes when you open up more than three Chrome tabs (I actually needed to replace a few faulty fans) and thought:
14
14
15
-
> “Bestie, you’re getting a glow-up.”
15
+
> "Bestie, you’re getting a glow-up."
16
16
17
-
A quick dive into the documentation rabbit hole later, I found [Ludus](https://docs.ludus.cloud/), an open-source framework that basically said, “I heard you hate clicking through installers manually, let me cook.”
17
+
A quick dive into the documentation rabbit hole later, I found [Ludus](https://docs.ludus.cloud/), an open-source framework that basically said, "I heard you hate clicking through installers manually, let me cook."
18
18
19
19
## Why Ludus?
20
20
I chose Ludus for a few reasons:
@@ -39,7 +39,7 @@ $ ludus templates list
39
39
| debian-12-x64-server-template | FALSE |
40
40
| kali-x64-desktop-template | FALSE |
41
41
| win11-22h2-x64-enterprise-template | FALSE |
42
-
| win2022-server-x64-template | FALSE |
42
+
| win2022-server-x64-template | True |
43
43
+------------------------------------+-------+
44
44
```
45
45
@@ -82,7 +82,7 @@ ludus:
82
82
sysprep: true
83
83
- vm_name: "{{ '{{ range_id }}' }}-NHA-SRV01"
84
84
hostname: "{{ '{{ range_id }}' }}-SRV01"
85
-
template: win2025-server-x64-tpm-template
85
+
template: win2022-server-x64-template
86
86
vlan: 10
87
87
ip_last_octet: 32
88
88
ram_gb: 6
@@ -132,14 +132,14 @@ defaults:
132
132
133
133
I also made a few tweaks to the available RAM of the VMs and updated the domain/forest functional level to 2025 as well. With this file we can start building our hacker lab.
134
134
135
-
!!!warning
136
-
If the build process fails, as happened to me :(, it might be because of unsufficient system resources. Just rerun the script or reboot the VMs and try again.
135
+
!!!info
136
+
For the lab I will be building, we also have to change one of the servers to Windows 2022. At the time of writing, the lab cannot be solved because of small changes in the newer versions of Windows.
137
137
!!!
138
138
139
139
140
140
## Ninja Hacker Academy Setup
141
141
NHA is designed as an educational challenge where users normally work toward gaining domain admin on two domains (`academy.ninja.lan` and `ninja.hack`). The scenario includes:
Before continuing, make sure that your inventory file at `workspace/ludus/inventory` matches the IP addresses from your range. In my case the range starts with `10.2.10.x` so I will update it accordingly:
192
192
193
193
```console
194
-
$ cat NHA/workspace/ludus/inventory
194
+
$ cat workspace/inventory
195
195
[default]
196
196
; Note: ansible_host *MUST* be an IPv4 address or setting things like DNS
197
197
; servers will break.
@@ -223,7 +223,7 @@ If you get the error `Ansible could not initialize the preferred locale: unsuppo
@@ -233,7 +233,7 @@ Ignore the warnings as Ansible goes brrr...
233
233
This will take some time for it to complete — a good opportunity to refresh your coffee while automation does its thing. In case we ever make a change to one of the playbooks or tasks we can also just run a single one:
After it is finished provisioning our lab, we can take snapshots via the proxmox web UI or SSH run the following ludus command (make sure your disks allow snapshots)
<div class="mt-2 text-lg font-semibold leading-snug text-gray-900 dark:text-white md:text-xl">Building a Cyber Range with Ludus</div>
27
25
<div class="line-clamp-3">
28
-
<p class="hidden mt-2 md:block">Ever since I built my first homelab, I’ve been obsessed with having my own dedicated cyber range — my little digital fight club where I can break things..</p>
26
+
<p class="hidden mt-2 md:block">Ever since I built my first homelab, I wanted to create my own dedicated cyber range - my little digital playground where I can break things, fix things...</p>
0 commit comments