Meridian Financial Group is a mid-sized investment advisory firm headquartered in Brussels, managing portfolios for private clients and small institutional investors across the Benelux region. They handle everything from wealth management and pension funds to corporate treasury advice — the kind of data that makes a ransomware operator's eyes light up.
The IT department is a two-man team that's been running the same infrastructure since 2017. They migrated to Windows Server 2022 last year for compliance reasons but never touched the AD configuration. Default GPOs, no tiering model, half the service accounts still have passwords set at deployment. The CISO role was filled six months ago — she's still writing the security policy.
You're in — connected to the internal network as an external contractor with temporary LAN access. No domain account, no credentials. Just a foothold and a network segment full of noise. LLMNR broadcasts are flying around, service accounts are waiting to be roasted, and the ACLs look like nobody's touched them since deployment. Build your user list, crack what you can, and chain it all the way to Domain Admin.
| Hostname | OS | IP | Account |
|---|---|---|---|
| MFG-DC01 | Windows Server 2022 | 192.168.57.20 |
MERIDIANFG\Administrator |
| MFG-WS01 | Windows 10 Pro | 192.168.57.21 |
jwhitfield |
| MFG-WS02 | Windows 10 Pro | 192.168.57.22 |
mvenneman |
In this setup I assume you already have a proxmox server running!
1. Create a new VM for every windows machine.
2. Configure the VM as follows:
3. You can now start the VM's 1 by 1. Start with the DC VM (Windows 2022 Server) and set it up as described below. After that the 2 Workstation VM's can follow.
Download and install VMware Workstation Pro or VMware Workstation Player. Then download the required ISOs and run the automated setup script.
$VMFolder = "C:\VMs\ADLab"$ISO_DC = "C:\ISOs\windows_server_2022.iso"$ISO_WS = "C:\ISOs\windows10.iso"Download and install VirtualBox (free). Then download the required ISOs and run the automated setup script.
$VMFolder = "C:\VMs\ADLab"$ISO_DC = "C:\ISOs\windows_server_2022.iso"$ISO_WS = "C:\ISOs\windows10.iso"1. Install Windows as you would normally do
2. Set the administrator password to Password123!
3. Login as the Administrator after installation has finished
4. Upload the scripts to the DC or copy/paste the contents in notepad
python3 -m http.server 8000. You can then use Edge to browse to http://yourip:8000
5. Run the DC promotion script: 00-DC-Promote.ps1
6. The VM will reboot. Once rebooted you can log in as MERIDIANFG\Administrator
7. Run the DC Setup script: 01-DC-Setup.ps1
1. Install Windows as you would normally do
2. Create a user f.e. localadmin with password Password123
3. Login as localadmin after installation has finished
4. Upload the scripts to the WS or copy/paste the contents in notepad
python3 -m http.server 8000. You can then use Edge to browse to http://yourip:8000
3. Script Phase 1 — before domain join
Open PowerShell as Administrator. The script asks if you are already domain-joined — answer n.
ping 192.168.57.20
4. Script Phase 2 — after domain join
After the reboot, log in as MERIDIANFG\Administrator and run the script again — answer j.
1. Install Windows as you would normally do
2. Create a user f.e. localadmin with password Password123
3. Login as localadmin after installation has finished
4. Upload the scripts to the WS or copy/paste the contents in notepad
python3 -m http.server 8000. You can then use Edge to browse to http://yourip:8000
3. Script Phase 1 — before domain join
Open PowerShell as Administrator. The script asks if you are already domain-joined — answer n.
ping 192.168.57.20
4. Script Phase 2 — after domain join
After the reboot, log in as MERIDIANFG\Administrator and run the script again — answer j.
Start Responder on Kali. When WS01 or WS02 boot, their startup scripts broadcast LLMNR/NBT-NS queries for non-existent hosts (\\MFG-FILE01, \\MFG-PRINT01, \\MFG-BACKUP01). Responder answers and captures NTLMv2 hashes automatically.
Crack the captured NTLMv2 hash offline with Hashcat:
Since SMB Signing is disabled on all machines, you can relay captured NTLM authentication instead of cracking it. Disable SMB and HTTP in Responder.conf, then run ntlmrelayx targeting DC or workstations.
-i for an interactive SMB shell, or -c "whoami" for a single command. With -l /tmp ntlmrelayx dumps the SAM database if the relayed user is a local admin.Users with DoesNotRequirePreAuth set can be AS-REP roasted without credentials. Their encrypted TGT portion can be cracked offline.
With any valid domain account (e.g. lokafor from the previous step), request TGS tickets for accounts with SPNs. Crack offline to recover service account passwords.
Collect BloodHound data to visualise the ACL attack paths. Two paths exist:
Path A — lokafor → abrennan (GenericWrite → Targeted Kerberoast):
Path B — sharrington → Finance Team (WriteDACL → privilege escalation):
dmarsh (Domain Admin) is set as local admin on WS01 and WS02. If you have local admin on WS01 (via SMB relay), dump LSASS to get dmarsh's NTLM hash, then use it to authenticate anywhere in the domain.