Основываясь на нашей работе в предыдущем разделе, теперь у нас есть контроль над пользователем, adunn
у которого есть привилегии DCSync в INLANEFREIGHT.LOCAL домен. Давайте углубимся в эту атаку и рассмотрим примеры ее использования для полной компрометации домена как с хоста атаки Linux, так и с хоста атаки Windows.
DCSync - это метод кражи базы паролей Active Directory с помощью встроенного Directory Replication Service Remote Protocol
, который используется контроллерами домена для репликации данных домена. Это позволяет злоумышленнику имитировать контроллер домена для получения хэшей паролей NTLM пользователя.
Суть атаки заключается в запросе контроллера домена на репликацию паролей с помощью расширенного права DS-Replication-Get-Changes-All. Это расширенное право управления доступом в AD, которое позволяет реплицировать секретные данные.
Для выполнения этой атаки вы должны иметь контроль над учетной записью, имеющей права на выполнение репликации домена (пользователь с Реплицируемым каталогом Изменяется, а Реплицируемый каталог изменяет все установленные разрешения). Администраторы домена / предприятия и администраторы домена по умолчанию имеют это право по умолчанию.
Обычно во время проверки обнаруживаются другие учетные записи, обладающие этими правами, и после взлома их доступ может быть использован для получения текущего хэша пароля NTLM для любого пользователя домена и хэшей, соответствующих их предыдущим паролям. Здесь у нас есть стандартный пользователь домена, которому предоставлены разрешения на репликацию:
DCSync
PS C:\\htb> Get-DomainUser -Identity adunn |select samaccountname,objectsid,memberof,useraccountcontrol |fl
samaccountname : adunn
objectsid : S-1-5-21-3842939050-3880317879-2865463114-1164
memberof : {CN=VPN Users,OU=Security Groups,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL, CN=Shared Calendar
Read,OU=Security Groups,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL, CN=Printer Access,OU=Security
Groups,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL, CN=File Share H Drive,OU=Security
Groups,OU=Corp,DC=INLANEFREIGHT,DC=LOCAL...}
useraccountcontrol : NORMAL_ACCOUNT, DONT_EXPIRE_PASSWORD
PowerView можно использовать для подтверждения того, что у этого обычного пользователя действительно есть необходимые разрешения, назначенные его учетной записи. Сначала мы получаем SID пользователя в приведенной выше команде, а затем проверяем все списки управления доступом, установленные для объекта домена ("DC=inlanefreight,DC=local"
), используя Get-ObjectAcl, чтобы получить списки управления доступом, связанные с объектом. Здесь мы специально ищем права на репликацию и проверяем, обладает ли этими правами наш пользователь adunn
(обозначенный в приведенной ниже команде как $sid
). Команда подтверждает, что у пользователя действительно есть права.
DCSync
PS C:\\htb> $sid= "S-1-5-21-3842939050-3880317879-2865463114-1164"
PS C:\\htb> Get-ObjectAcl "DC=inlanefreight,DC=local" -ResolveGUIDs | ? { ($_.ObjectAceType -match 'Replication-Get')} | ?{$_.SecurityIdentifier -match $sid} |select AceQualifier, ObjectDN, ActiveDirectoryRights,SecurityIdentifier,ObjectAceType | fl
AceQualifier : AccessAllowed
ObjectDN : DC=INLANEFREIGHT,DC=LOCAL
ActiveDirectoryRights : ExtendedRight
SecurityIdentifier : S-1-5-21-3842939050-3880317879-2865463114-498
ObjectAceType : DS-Replication-Get-Changes
AceQualifier : AccessAllowed
ObjectDN : DC=INLANEFREIGHT,DC=LOCAL
ActiveDirectoryRights : ExtendedRight
SecurityIdentifier : S-1-5-21-3842939050-3880317879-2865463114-516
ObjectAceType : DS-Replication-Get-Changes-All
AceQualifier : AccessAllowed
ObjectDN : DC=INLANEFREIGHT,DC=LOCAL
ActiveDirectoryRights : ExtendedRight
SecurityIdentifier : S-1-5-21-3842939050-3880317879-2865463114-1164
ObjectAceType : DS-Replication-Get-Changes-In-Filtered-Set
AceQualifier : AccessAllowed
ObjectDN : DC=INLANEFREIGHT,DC=LOCAL
ActiveDirectoryRights : ExtendedRight
SecurityIdentifier : S-1-5-21-3842939050-3880317879-2865463114-1164
ObjectAceType : DS-Replication-Get-Changes
AceQualifier : AccessAllowed
ObjectDN : DC=INLANEFREIGHT,DC=LOCAL
ActiveDirectoryRights : ExtendedRight
SecurityIdentifier : S-1-5-21-3842939050-3880317879-2865463114-1164
ObjectAceType : DS-Replication-Get-Changes-All