External Forest Domain - One-Way (Outbound)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
W tym scenariuszu twoja domena ufa pewnym uprawnieniom dla podmiotu z innych domen.
Występuje luka w zabezpieczeniach, gdy nawiązywana jest relacja zaufania między dwoma domenami, określonymi tutaj jako domena A i domena B, gdzie domena B rozszerza swoje zaufanie do domeny A. W tej konfiguracji w domenie A tworzony jest specjalny konto dla domeny B, które odgrywa kluczową rolę w procesie uwierzytelniania między tymi dwiema domenami. To konto, powiązane z domeną B, jest wykorzystywane do szyfrowania biletów do uzyskiwania dostępu do usług w różnych domenach.
Kluczowym aspektem do zrozumienia jest to, że hasło i hash tego specjalnego konta mogą być wyodrębnione z kontrolera domeny w domenie A za pomocą narzędzia wiersza poleceń. Polecenie do wykonania tej akcji to:
To ekstrakcji jest możliwa, ponieważ konto, identyfikowane znakiem $ po swojej nazwie, jest aktywne i należy do grupy "Użytkownicy domeny" w domenie A, dziedzicząc tym samym uprawnienia związane z tą grupą. Umożliwia to osobom uwierzytelnienie się w domenie A przy użyciu poświadczeń tego konta.
Ostrzeżenie: Możliwe jest wykorzystanie tej sytuacji do uzyskania dostępu do domeny A jako użytkownik, chociaż z ograniczonymi uprawnieniami. Niemniej jednak, ten dostęp jest wystarczający do przeprowadzenia enumeracji w domenie A.
W scenariuszu, w którym ext.local
jest domeną ufającą, a root.local
jest domeną zaufaną, konto użytkownika o nazwie EXT$
zostałoby utworzone w root.local
. Przy użyciu określonych narzędzi możliwe jest zrzucenie kluczy zaufania Kerberos, ujawniając poświadczenia EXT$
w root.local
. Polecenie do osiągnięcia tego to:
Następnie można użyć wyodrębnionego klucza RC4 do uwierzytelnienia jako root.local\EXT$
w root.local
za pomocą innej komendy narzędzia:
Ten krok uwierzytelniania otwiera możliwość enumeracji, a nawet wykorzystania usług w root.local
, takich jak przeprowadzenie ataku Kerberoast w celu wyodrębnienia poświadczeń konta usługi za pomocą:
W poprzednim przepływie użyto hasha zaufania zamiast hasła w postaci jawnej (które również zostało zrzucane przez mimikatz).
Hasło w postaci jawnej można uzyskać, konwertując wyjście [ CLEAR ] z mimikatz z formatu szesnastkowego i usuwając bajty zerowe ‘\x00’:
Czasami podczas tworzenia relacji zaufania użytkownik musi wpisać hasło dla zaufania. W tej demonstracji klucz to oryginalne hasło zaufania i dlatego jest czytelne dla człowieka. Ponieważ klucz cyklicznie się zmienia (co 30 dni), hasło w postaci jawnej nie będzie czytelne dla człowieka, ale technicznie nadal będzie użyteczne.
Hasło w postaci jawnej można wykorzystać do przeprowadzenia regularnej autoryzacji jako konto zaufania, co stanowi alternatywę dla żądania TGT przy użyciu tajnego klucza Kerberos konta zaufania. Tutaj zapytanie do root.local z ext.local o członków Domain Admins:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)