
Пользовательский модуль PowerShell для настройки лабораторной среды Active Directory для практики тестирования на проникновение.
Цель этого модуля — автоматизировать развертывание лаборатории Active Directory для практики внутреннего тестирования на проникновение.
Благодарности Joe Helle и его курсу PowerShell for Pentesters за создание векторов атак.
PSModulePath# Display PSModulePath
$env:PSModulePath.split(";")
# Move module to path
Move-Item .\ADLab\ "C:\Windows\system32\WindowsPowerShell\v1.0\Modules\"
# Import global module
Import-Module ADLab
# Import local module
Import-Module .\ADLab.psm1
Эта функция подготавливает текущую ВМ/компьютер для использования в качестве контроллера домена для нового леса. Она устанавливает статический IP-адрес, задает DNS-сервер как localhost и переименовывает компьютер.
# Prepare the current VM with all default values while displaying verbose output
Invoke-DCPrep -Verbose
# Set custom hostname and use Google DNS for Internet access
Invoke-DCPrep -Hostname "DC" -NewIPv4DNSServer "8.8.8.8"
# Use custom IP and default gateway and display verbose output
Invoke-DCPrep -Verbose -NewIPv4Address "192.168.1.99" -NewIPv4Gateway "192.168.1.1"
Функция устанавливает компонент AD DS и настраивает новый лес Active Directory без необходимости ввода данных пользователем. Перезагружает компьютер после завершения.
# Installs a new forest with FQDN of "bufu-sec.local" with default DSRM password of "Password!"
Invoke-ForestDeploy -Domain bufu-sec.local
# Installs a new forest with FQDN of "bufu-sec.local" with the DSRM password set to "P@ssword!" and displaying debug messages
Invoke-ForestDeploy -Domain "bufu-sec.local" -DSRMPassword "P@ssword!" -Verbose
Функция начинает с установки компонента DNS. Затем добавляет основную зону и настраивает пересылку запросов.
# Install and configure DNS on the current host and display verbose output.
Invoke-DNSDeploy -Verbose -NetworkID 192.168.47.0/24 -ZoneFile "47.168.192.in-addr.arpa.dns" -ServerForwarder 1.1.1.1
Функция начинает с установки компонента DHCP на текущем компьютере. Затем добавляет необходимые группы безопасности и авторизует новый DHCP-сервер на контроллере домена. Наконец, настраивает новую область DHCP с указанными значениями.
# Install and configure DHCP on the local DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10
# Install and configure DHCP on the specified DC.
Invoke-DHCPDeploy -Verbose -ScopeName "Default" -ScopeID 192.168.47.0 -StartIP 192.168.47.100 -EndIP 192.168.47.200 -SubnetMask 255.255.255.0 -DNSServer 192.168.47.10 -Router 192.168.47.10 -DCFQDN DC01.bufu-sec.local
Функция начинает с создания групп и подразделений (OU), определенных в глобальной переменной Groups. Затем по умолчанию генерирует 10 объектов пользователей для каждого OU.
# Fill forest with objects and display verbose output
Invoke-ADLabConfig -Verbose
# Create 50 users for each OU and display verbose output
Invoke-ADLabConfig -Verbose -UserCount 50
Функция получает определенное количество случайных пользователей из домена и устанавливает для каждого флаг DoesNotRequirePreAuth. Исключает учетные записи по умолчанию, такие как Administrator и krbtgt. По умолчанию делает 5% пользователей ASREP-Roastable.
# Make 5% of users ASREP-Roastable and display verbose output
Set-ASREPRoasting -Verbose
# Make 10 random users in the domain ASREP-Roastable
Set-ASREPRoasting -VulnerableUsersCount 10
# Make user bufu ASREP-Roastable and display verbose output
Set-ASREPRoasting -Users bufu -Verbose
# Make supplied list of users ASREP-roastable and display verbose output
Set-ASREPRoasting -Users ("bufu", "pepe") -Verbose
Функция получает определенное количество случайных пользователей из домена и добавляет SPN для каждого. Исключает учетные записи по умолчанию, такие как Administrator и krbtgt. По умолчанию делает 5% пользователей kerberoastable.
# Make 5% of users ASREP-Roastable and display verbose output
Set-Kerberoasting -Verbose
# Make 10 random users in the domain ASREP-Roastable
Set-Kerberoasting -VulnerableUsersCount 10
# Make user bufu ASREP-Roastable and display verbose output
Set-Kerberoasting -Users bufu -Verbose
# Make supplied list of users ASREP-roastable and display verbose output
Set-Kerberoasting -Users ("bufu", "pepe") -Verbose
Функция начинает с предоставления группе Chads прав GenericAll на группу Domain Admins. Затем предоставляет группе Degens права GenericALl на группу Chads. Наконец, предоставляет права GenericAll на некоторых пользователей из группы Degens некоторым пользователям группы Normies.
# Create vulnerable ACLs and display verbose output
Set-BadACLs -Verbose
Функция сначала настраивает GPO для разрешения WinRM через TCP-порт 5985 на системы, присоединенные к домену. Затем включает PS Remoting через GPO.
# Enable PS Remoting and display verbose output
Set-PSRemoting -Verbose