Active Directory sits at the center of most enterprise networks, which makes it one of the most valuable skills a security professional can develop. Reading about Kerberos tickets or lateral movement is one thing. Actually watching a Golden Ticket work against a domain controller you built yourself is another. This guide walks through building a realistic Active Directory home lab from the ground up, one that mirrors real corporate environments closely enough to make your practice meaningful.
Whether you are prepping for a penetration testing role, sharpening red team skills, or trying to understand attacker tradecraft from the defender's side, a well built lab is the fastest way to turn theory into muscle memory.
Enterprise AD environments are messy. They have legacy trust relationships, over permissioned service accounts, forgotten GPOs, and years of accumulated misconfiguration. You cannot replicate that complexity by reading slide decks. You need a live environment where you can break things, fix things, and observe exactly how Windows responds.
A home lab gives you:
If you want structured guidance while you build this out, the hands on labs at Redfox Cybersecurity Academy walk through many of these same attack chains in a guided format.
You do not need enterprise grade hardware. A single reasonably specced workstation or a mid range home server is enough to run a functional multi machine domain.
Start by creating an isolated internal network inside your hypervisor. This keeps lab traffic off your home network and prevents any accidental exposure.
In VMware Workstation, this means creating a custom Host Only or Internal network (VMnet on a private subnet). In Proxmox, create a Linux bridge (vmbr1) with no physical interface attached, so traffic never touches your LAN.
A typical lab topology looks like this:
192.168.56.10 DC01 (Windows Server 2022, Domain Controller)
192.168.56.11 FS01 (Windows Server 2022, File Server)
192.168.56.20 WKS01 (Windows 11, domain joined client)
192.168.56.21 WKS02 (Windows 11, domain joined client)
192.168.56.99 KALI (Attack box, Impacket / BloodHound / NetExec)
[cta]
Assign static IPs on each VM within this range so DNS resolution stays predictable as you build out the domain.
Install Windows Server on DC01, apply a static IP, and set the DNS server to point to itself once AD DS is installed. From there, promote the server using PowerShell rather than the GUI, since scripted setup is faster to repeat if you need to rebuild the lab.
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Import-Module ADDSDeployment
Install-ADDSForest `
-DomainName "redfoxlab.local" `
-DomainNetbiosName "REDFOXLAB" `
-InstallDns:$true `
-SafeModeAdministratorPassword (ConvertTo-SecureString "L@bAdminP@ss2026!" -AsPlainText -Force) `
-Force:$true
[cta]
The server will reboot automatically. Once it comes back online, verify the forest and domain functional level:
Get-ADDomain | Select-Object Name, DomainMode, PDCEmulator
Get-ADForest | Select-Object Name, ForestMode
[cta]
A flat domain with three test accounts will not teach you much. Real environments have dozens of departments, nested groups, and service accounts with excessive privileges. Simulate that by scripting bulk user creation.
$OU = "OU=Employees,DC=redfoxlab,DC=local"
New-ADOrganizationalUnit -Name "Employees" -Path "DC=redfoxlab,DC=local"
$departments = @("Finance","IT","HR","Sales","Engineering")
foreach ($dept in $departments) {
New-ADOrganizationalUnit -Name $dept -Path $OU
for ($i = 1; $i -le 8; $i++) {
$user = "$dept.user$i"
New-ADUser -Name $user `
-SamAccountName $user `
-UserPrincipalName "$user@redfoxlab.local" `
-Path "OU=$dept,$OU" `
-AccountPassword (ConvertTo-SecureString "Winter2026!" -AsPlainText -Force) `
-Enabled $true
}
}
[cta]
Now create a deliberately over privileged service account, something almost every real environment has and every attacker looks for:
New-ADUser -Name "svc_backup" `
-SamAccountName "svc_backup" `
-UserPrincipalName "svc_backup@redfoxlab.local" `
-AccountPassword (ConvertTo-SecureString "BackupService2026!" -AsPlainText -Force) `
-Enabled $true `
-PasswordNeverExpires $true
Add-ADGroupMember -Identity "Domain Admins" -Members "svc_backup"
[cta]
That single misconfiguration, a service account with domain admin rights and a static password, mirrors one of the most common real world findings in AD penetration tests. If you want to see how these paths get chained together in graded exercises, Redfox Cybersecurity Academy has structured modules that build directly on scenarios like this one.
Domain join your Windows client VMs so you have realistic endpoints to pivot through.
Add-Computer -DomainName "redfoxlab.local" `
-Credential (Get-Credential) `
-Restart
[cta]
To make the environment feel alive rather than static, script some background activity such as scheduled logons, file share access, and RDP sessions between machines. Real detection engineering practice depends on having actual authentication traffic in your logs, not just the attacker's actions.
schtasks /create /tn "SimulatedLogon" /tr "net use \\FS01\Shared" /sc daily /st 09:00 /ru "Finance.user1"
[cta]
This is where the lab becomes genuinely useful rather than just a checklist exercise. Enterprise AD compromises rarely rely on zero days. They rely on misconfiguration.
Get-ADComputer -Identity "FS01" -Properties TrustedForDelegation
Set-ADAccountControl -Identity "FS01" -TrustedForDelegation $true
[cta]
Set a Service Principal Name on a user account to make it a Kerberoasting target, a very common finding in real assessments.
setspn -A MSSQLSvc/db01.redfoxlab.local:1433 svc_backup
[cta]
Set-ADAccountControl -Identity "IT.user3" -DoesNotRequirePreAuth $true
[cta]
With these three misconfigurations alone (unconstrained delegation, Kerberoasting, and AS-REP roasting) you have recreated the majority of initial foothold to domain admin chains seen in real world engagements.
Set up your Kali or custom Linux attack box with the tooling you will use to enumerate and exploit the lab.
sudo apt update && sudo apt install -y python3-pip git
pip3 install impacket
pip3 install netexec
[cta]
BloodHound remains the standard for visualizing AD attack paths. Install the community edition and its collector, SharpHound, to map trust relationships and privilege escalation routes.
git clone https://github.com/SpecterOps/BloodHound.git
cd BloodHound
docker compose up -d
[cta]
Run SharpHound from a domain joined machine to collect the data:
.\SharpHound.exe -c All -d redfoxlab.local
[cta]
Import the resulting zip into BloodHound and look for paths from low privileged users to Domain Admins. This is exactly the kind of attack path analysis that separates a scripted checklist from real tradecraft, something Redfox Cybersecurity Academy emphasizes heavily in its Active Directory attack path courses.
NetExec is the modern successor to older SMB enumeration tools and is essential for validating credentials and spraying across the domain.
netexec smb 192.168.56.0/24 -u users.txt -p 'Winter2026!' --continue-on-success
netexec smb DC01 -u svc_backup -p 'BackupService2026!' --shares
[cta]
GetUserSPNs.py redfoxlab.local/finance.user1:'Winter2026!' -dc-ip 192.168.56.10 -request
[cta]
Take the resulting hashes offline and crack them with hashcat:
hashcat -m 13100 spn_hashes.txt rockyou.txt
[cta]
A lab built only for offense teaches half the lesson. Install Sysmon on your domain controller and clients to capture process creation, network connections, and logon events at a level of detail the default Windows event log does not provide.
.\Sysmon64.exe -accepteula -i sysmonconfig.xml
[cta]
Forward those events to a central log collector such as the Elastic stack or Splunk running in a separate VM. This lets you replay your own attacks and watch how they appear in the logs, closing the loop between offense and detection.
wecutil qc /q
[cta]
Practicing detection against your own attack chains is one of the most underused parts of home lab work. It is also a core part of how Redfox Cybersecurity Academy structures its blue team modules, pairing every offensive technique with the corresponding detection opportunity.
Building a realistic Active Directory home lab takes a weekend of setup, but the payoff compounds every time you use it. You get a repeatable, disposable environment to test enumeration tools, chain privilege escalation paths, and observe how your actions surface in logs, all without touching a production network or waiting for a CTF box to reset.
Start small: one domain controller, a handful of users, and one intentional misconfiguration. Add complexity as you get comfortable, layering in delegation abuse, group policy misconfigurations, and multi domain trusts once the basics feel routine.
If you want a guided path through these exact attack chains with structured labs and walkthroughs, explore the course catalog at Redfox Cybersecurity Academy and put this lab to work against real world scenarios.