6.9 KiB
Zewnętrzna domena lasu - jednokierunkowa (wychodząca)
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
W tym scenariuszu twoja domena ufa pewnym uprawnieniom dla podmiotu 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 bezpieczeństwo, gdy zostanie ustanowione zaufanie między dwoma domenami, tutaj określanymi jako domena A i domena B, gdzie domena B rozszerza swoje zaufanie do domeny A. W tej konfiguracji tworzone jest specjalne konto 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 dostępu do usług między domenami.
Kluczowym aspektem do zrozumienia jest to, że hasło i skrót tego specjalnego konta można wyodrębnić 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
Ta ekstrakcja jest możliwa, ponieważ konto, zidentyfikowane za pomocą znaku $ po nazwie, jest aktywne i należy do grupy "Domain Users" w domenie 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 zdobycia punktu zaczepienia w domenie A jako użytkownik, choć z ograniczonymi uprawnieniami. Jednak ten dostęp wystarcza do przeprowadzenia enumeracji w domenie A.
W scenariuszu, w którym ext.local
jest domeną ufającą, a root.local
jest domeną zaufaną, zostanie utworzone konto użytkownika o nazwie EXT$
w root.local
. Za pomocą odpowiednich narzędzi możliwe jest wydobywanie kluczy zaufania Kerberos, ujawniających poświadczenia EXT$
w root.local
. Polecenie do osiągnięcia tego celu to:
lsadump::trust /patch
Następnie można użyć wyodrębnionego 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
Ten krok uwierzytelniania otwiera możliwość wyliczenia i nawet wykorzystania usług w root.local
, takich jak atak Kerberoast w celu wydobycia poświadczeń konta usługi przy użyciu:
.\Rubeus.exe kerberoast /user:svc_sql /domain:root.local /dc:dc.root.local
Pozyskiwanie hasła zaufania w postaci tekstu jawnego
W poprzednim etapie użyto hasha zaufania zamiast hasła w postaci tekstu jawnego (które również zostało wydobyte za pomocą mimikatz).
Hasło w postaci tekstu jawnego można uzyskać, konwertując wynik [ CLEAR ] z mimikatz z postaci szesnastkowej i usuwając bajty zerowe '\x00':
Czasami podczas tworzenia relacji zaufania, użytkownik musi wpisać hasło zaufania. W tej demonstracji klucz to oryginalne hasło zaufania, które jest czytelne dla człowieka. Ponieważ klucz cykluje (co 30 dni), hasło w postaci tekstu jawnego nie będzie czytelne dla człowieka, ale nadal technicznie użyteczne.
Hasło w postaci tekstu jawnego można użyć do wykonywania regularnej autoryzacji jako konto zaufania, jako alternatywa dla żądania TGT przy użyciu tajnego klucza Kerberos konta zaufania. Tutaj, zapytanie root.local z ext.local dla członków Domain Admins:
Referencje
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do HackTricks i HackTricks Cloud github repos.