Abusing Active Directory ACLs/ACEs
Last updated
Last updated
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)
Ta strona jest głównie podsumowaniem technik z https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces i https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges. Aby uzyskać więcej szczegółów, sprawdź oryginalne artykuły.
To uprawnienie daje atakującemu pełną kontrolę nad docelowym kontem użytkownika. Gdy prawa GenericAll
zostaną potwierdzone za pomocą polecenia Get-ObjectAcl
, atakujący może:
Zmienić hasło docelowego: Używając net user <nazwa_użytkownika> <hasło> /domain
, atakujący może zresetować hasło użytkownika.
Celowane Kerberoasting: Przypisz SPN do konta użytkownika, aby uczynić je podatnym na kerberoasting, a następnie użyj Rubeus i targetedKerberoast.py, aby wyodrębnić i spróbować złamać hashe biletu przyznającego (TGT).
Targeted ASREPRoasting: Wyłącz pre-autoryzację dla użytkownika, co sprawia, że jego konto jest podatne na ASREPRoasting.
To uprawnienie pozwala atakującemu na manipulowanie członkostwem grup, jeśli ma prawa GenericAll
w grupie takiej jak Domain Admins
. Po zidentyfikowaniu wyróżnionej nazwy grupy za pomocą Get-NetGroup
, atakujący może:
Dodać Siebie do Grupy Domain Admins: Można to zrobić za pomocą bezpośrednich poleceń lub korzystając z modułów takich jak Active Directory lub PowerSploit.
Posiadanie tych uprawnień na obiekcie komputera lub koncie użytkownika pozwala na:
Kerberos Resource-based Constrained Delegation: Umożliwia przejęcie obiektu komputera.
Shadow Credentials: Użyj tej techniki, aby podszyć się pod konto komputera lub użytkownika, wykorzystując uprawnienia do tworzenia shadow credentials.
Jeśli użytkownik ma prawa WriteProperty
do wszystkich obiektów w konkretnej grupie (np. Domain Admins
), może:
Dodać Siebie do Grupy Domain Admins: Możliwe do osiągnięcia poprzez połączenie poleceń net user
i Add-NetGroupUser
, ta metoda pozwala na eskalację uprawnień w obrębie domeny.
Ten przywilej umożliwia atakującym dodanie siebie do określonych grup, takich jak Domain Admins
, za pomocą poleceń, które bezpośrednio manipulują członkostwem w grupie. Użycie następującej sekwencji poleceń pozwala na samododanie:
Podobne uprawnienie, pozwala atakującym bezpośrednio dodawać siebie do grup poprzez modyfikację właściwości grup, jeśli mają prawo WriteProperty
do tych grup. Potwierdzenie i wykonanie tego uprawnienia odbywa się za pomocą:
Posiadanie ExtendedRight
na użytkowniku dla User-Force-Change-Password
umożliwia resetowanie hasła bez znajomości aktualnego hasła. Weryfikacja tego prawa i jego wykorzystanie mogą być przeprowadzone za pomocą PowerShell lub alternatywnych narzędzi wiersza poleceń, oferując kilka metod resetowania hasła użytkownika, w tym sesje interaktywne i jednowierszowe polecenia dla środowisk nieinteraktywnych. Polecenia obejmują od prostych wywołań PowerShell po użycie rpcclient
na Linuksie, co pokazuje wszechstronność wektorów ataku.
Jeśli atakujący odkryje, że ma prawa WriteOwner
do grupy, może zmienić właściciela grupy na siebie. Ma to szczególne znaczenie, gdy grupą, o której mowa, są Domain Admins
, ponieważ zmiana właściciela pozwala na szerszą kontrolę nad atrybutami grupy i członkostwem. Proces ten polega na zidentyfikowaniu odpowiedniego obiektu za pomocą Get-ObjectAcl
, a następnie użyciu Set-DomainObjectOwner
, aby zmodyfikować właściciela, zarówno przez SID, jak i nazwę.
To uprawnienie pozwala atakującemu na modyfikację właściwości użytkownika. Konkretnie, z dostępem GenericWrite
, atakujący może zmienić ścieżkę skryptu logowania użytkownika, aby wykonać złośliwy skrypt po logowaniu użytkownika. Osiąga się to poprzez użycie polecenia Set-ADObject
, aby zaktualizować właściwość scriptpath
docelowego użytkownika, aby wskazywała na skrypt atakującego.
Dzięki temu uprawnieniu, atakujący mogą manipulować członkostwem w grupie, na przykład dodając siebie lub innych użytkowników do konkretnych grup. Proces ten obejmuje utworzenie obiektu poświadczeń, użycie go do dodawania lub usuwania użytkowników z grupy oraz weryfikację zmian członkostwa za pomocą poleceń PowerShell.
Posiadanie obiektu AD i posiadanie uprawnień WriteDACL
na nim umożliwia atakującemu nadanie sobie uprawnień GenericAll
do obiektu. Osiąga się to poprzez manipulację ADSI, co pozwala na pełną kontrolę nad obiektem i możliwość modyfikacji jego członkostwa w grupach. Mimo to, istnieją ograniczenia przy próbie wykorzystania tych uprawnień za pomocą poleceń Set-Acl
/ Get-Acl
modułu Active Directory.
Atak DCSync wykorzystuje specyficzne uprawnienia replikacji w domenie, aby naśladować kontroler domeny i synchronizować dane, w tym poświadczenia użytkowników. Ta potężna technika wymaga uprawnień takich jak DS-Replication-Get-Changes
, co pozwala atakującym na wydobycie wrażliwych informacji z środowiska AD bez bezpośredniego dostępu do kontrolera domeny. Dowiedz się więcej o ataku DCSync tutaj.
Delegowane uprawnienia do zarządzania obiektami zasad grupy (GPO) mogą stwarzać znaczne ryzyko bezpieczeństwa. Na przykład, jeśli użytkownik taki jak offense\spotless
ma delegowane prawa do zarządzania GPO, może mieć uprawnienia takie jak WriteProperty, WriteDacl i WriteOwner. Te uprawnienia mogą być nadużywane w celach złośliwych, co można zidentyfikować za pomocą PowerView: bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Aby zidentyfikować źle skonfigurowane GPO, można połączyć polecenia PowerSploit. Umożliwia to odkrycie GPO, do których dany użytkownik ma uprawnienia do zarządzania: powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
Komputery z zastosowaną daną polityką: Możliwe jest ustalenie, które komputery mają zastosowaną konkretną GPO, co pomaga zrozumieć zakres potencjalnego wpływu. powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
Polityki zastosowane do danego komputera: Aby zobaczyć, jakie polityki są zastosowane do konkretnego komputera, można wykorzystać polecenia takie jak Get-DomainGPO
.
OUs z zastosowaną daną polityką: Identyfikacja jednostek organizacyjnych (OUs) dotkniętych daną polityką może być przeprowadzona za pomocą Get-DomainOU
.
Źle skonfigurowane GPO mogą być wykorzystywane do wykonywania kodu, na przykład poprzez utworzenie natychmiastowego zaplanowanego zadania. Można to zrobić, aby dodać użytkownika do lokalnej grupy administratorów na dotkniętych maszynach, znacznie podnosząc uprawnienia:
Moduł GroupPolicy, jeśli jest zainstalowany, umożliwia tworzenie i łączenie nowych GPO oraz ustawianie preferencji, takich jak wartości rejestru do uruchamiania backdoorów na dotkniętych komputerach. Ta metoda wymaga zaktualizowania GPO oraz zalogowania się użytkownika na komputerze w celu wykonania:
SharpGPOAbuse oferuje metodę nadużywania istniejących GPO poprzez dodawanie zadań lub modyfikowanie ustawień bez potrzeby tworzenia nowych GPO. To narzędzie wymaga modyfikacji istniejących GPO lub użycia narzędzi RSAT do tworzenia nowych przed zastosowaniem zmian:
Aktualizacje GPO zazwyczaj odbywają się co około 90 minut. Aby przyspieszyć ten proces, szczególnie po wprowadzeniu zmiany, można użyć polecenia gpupdate /force
na docelowym komputerze, aby wymusić natychmiastową aktualizację polityki. To polecenie zapewnia, że wszelkie modyfikacje GPO są stosowane bez czekania na następny automatyczny cykl aktualizacji.
Po zbadaniu zaplanowanych zadań dla danego GPO, takiego jak Misconfigured Policy
, można potwierdzić dodanie zadań takich jak evilTask
. Te zadania są tworzone za pomocą skryptów lub narzędzi wiersza poleceń mających na celu modyfikację zachowania systemu lub eskalację uprawnień.
Struktura zadania, jak pokazano w pliku konfiguracyjnym XML generowanym przez New-GPOImmediateTask
, określa szczegóły zaplanowanego zadania - w tym polecenie do wykonania i jego wyzwalacze. Ten plik przedstawia, jak zaplanowane zadania są definiowane i zarządzane w ramach GPO, zapewniając metodę wykonywania dowolnych poleceń lub skryptów jako część egzekwowania polityki.
GPO umożliwiają również manipulację członkostwem użytkowników i grup na docelowych systemach. Poprzez bezpośrednią edycję plików polityki Użytkownicy i Grupy, atakujący mogą dodawać użytkowników do uprzywilejowanych grup, takich jak lokalna grupa administrators
. Jest to możliwe dzięki delegacji uprawnień zarządzania GPO, co pozwala na modyfikację plików polityki w celu dodania nowych użytkowników lub zmiany członkostwa w grupach.
Plik konfiguracyjny XML dla Użytkowników i Grup określa, jak te zmiany są wdrażane. Dodając wpisy do tego pliku, określonym użytkownikom można przyznać podwyższone uprawnienia w systemach objętych zmianami. Ta metoda oferuje bezpośrednie podejście do eskalacji uprawnień poprzez manipulację GPO.
Ponadto, można również rozważyć dodatkowe metody wykonywania kodu lub utrzymywania trwałości, takie jak wykorzystanie skryptów logowania/wylogowywania, modyfikacja kluczy rejestru dla autorunów, instalacja oprogramowania za pomocą plików .msi lub edytowanie konfiguracji usług. Te techniki oferują różne możliwości utrzymania dostępu i kontrolowania docelowych systemów poprzez nadużycie GPO.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)