Active Directory Lab with Hyper-V and PowerShell
PreviousActive Directory Password SprayingNextADCS + PetitPotam NTLM Relay: Obtaining krbtgt Hash with Domain Controller Machine Certificate
Last updated
$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("administrator", $password)
$session = New-PSSession -Vmname dc01 -Credential $credential -Verbose
$code = {
$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("administrator", $password)
netsh int ip set address "ethernet" static 10.0.0.6 255.255.255.0 10.0.0.6 1
netsh int ip set dns "ethernet" static 10.0.0.6 primary
$domainName = "offense"
$domain = "$domainName.local"
Write-Host "Installing management tools"
Import-Module ServerManager
Add-WindowsFeature RSAT-AD-PowerShell,RSAT-AD-AdminCenter
Write-Host "Deploying Active Directory Domain..."
Install-WindowsFeature AD-domain-services, DNS -IncludeAllSubFeature -IncludeManagementTools -Restart
Import-Module ADDSDeployment
Install-ADDSForest `
-SafeModeAdministratorPassword $password `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-DomainMode "7" `
-DomainName $domain `
-DomainNetbiosName $domainName `
-ForestMode "7" `
-InstallDns:$true `
-LogPath "C:\Windows\NTDS" `
-NoRebootOnCompletion:$true `
-SysvolPath "C:\Windows\SYSVOL" `
-Force:$true
Restart-Computer -Force -Verbose
}
Invoke-Command -Session $session -ScriptBlock $code$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("mantvydas", $password)
$session = New-PSSession -Vmname ws01 -Credential $credential -Verbose
$code = {
netsh int ip set address "ethernet" static 10.0.0.7 255.255.255.0 10.0.0.6 1
netsh int ip set dns "ethernet" static 10.0.0.6 primary
$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("administrator", $password)
Add-computer -computername ws01 -domain offense.local -domaincredential $credential -Verbose -Restart
}
Invoke-Command -Session $session -ScriptBlock $code$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("offense\administrator", $password)
$session = New-PSSession -Vmname dc01 -Credential $credential -Verbose
$code = {
$plainPassword = "123456"
$password = $plainPassword | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("offense\administrator", $password)
# Create users
"spotless", "sandy", "bob" | % { New-ADUser $_ }
# Reset users' passwords
Get-ADUser -Filter * -Properties samaccountname | select -exp samaccountname | ? {$_ -notmatch "krb|guest"} | ForEach-Object { Write-host Changing password for $_ to $plainPassword; net user $_ $plainPassword | out-null }
}
Invoke-Command -Session $session -ScriptBlock $codesudo git clone https://github.com/mimura1133/linux-vm-tools /opt/linux-vm-tools
sudo chmod 0755 /opt/linux-vm-tools/kali/2020.x/install.sh
sudo /opt/linux-vm-tools/kali/2020.x/install.sh
sudo reboot -fSet-VM "KALI02" -EnhancedSessionTransportType HVSocket