UAC - User Account Control
Використовуйте Trickest для легкої побудови та автоматизації робочих процесів за допомогою найбільш продвинутих інструментів спільноти у світі. Отримайте доступ сьогодні:
UAC
Контроль облікових записів користувачів (UAC) - це функція, яка дозволяє запит на підтвердження для підвищених дій. Додатки мають різні рівні цілісності
, і програма з високим рівнем може виконувати завдання, які потенційно можуть підірвати систему. Коли UAC увімкнено, додатки та завдання завжди виконуються в контексті безпеки облікового запису неадміністратора, якщо адміністратор не надає цим додаткам/завданням явний дозвіл на доступ рівня адміністратора до системи. Це зручна функція, яка захищає адміністраторів від ненавмисних змін, але не вважається межею безпеки.
Для отримання додаткової інформації про рівні цілісності:
Коли UAC працює, користувачу-адміністратору надаються 2 токени: стандартний ключ користувача для виконання звичайних дій на звичайному рівні та один з привілеями адміністратора.
Ця сторінка розглядає, як працює UAC докладно і включає процес входу, досвід користувача та архітектуру UAC. Адміністратори можуть використовувати політику безпеки для налаштування роботи UAC специфічно для своєї організації на локальному рівні (за допомогою secpol.msc) або налаштовувати та розповсюджувати через об'єкти політики груп (GPO) в середовищі домену Active Directory. Різні налаштування розглядаються докладно тут. Існує 10 налаштувань групової політики, які можна встановити для UAC. У таблиці наведено додаткові подробиці:
Деякі програми автоматично підвищуються якщо користувач належить до групи адміністраторів. Ці виконувані файли мають у своєму Маніфесті параметр autoElevate зі значенням True. Крім того, виконуваний файл повинен бути підписаний Microsoft.
Отже, для обхіду UAC (підвищення рівня доступу з середнього до високого) деякі зловмисники використовують ці виконувані файли для виконання довільного коду, оскільки він буде виконаний з процесу з високим рівнем доступу.
Ви можете перевірити Маніфест виконуваного файлу за допомогою інструменту sigcheck.exe від Sysinternals. І ви можете переглянути рівень доступу процесів за допомогою Process Explorer або Process Monitor (від Sysinternals).
Перевірка UAC
Щоб підтвердити, що UAC увімкнено, виконайте:
Якщо це 1
, то UAC активовано, якщо це 0
або не існує, то UAC неактивовано.
Потім перевірте, який рівень налаштований:
Якщо
0
, то UAC не буде запитувати (як вимкнено)Якщо
1
, адміністратор попросить ввести ім'я користувача та пароль, щоб виконати виконуваний файл з високими правами (на захищеному робочому столі)Якщо
2
(Завжди повідомляти мене), UAC завжди буде запитувати підтвердження від адміністратора, коли він спробує виконати щось з високими привілеями (на захищеному робочому столі)Якщо
3
схоже на1
, але не обов'язково на захищеному робочому століЯкщо
4
схоже на2
, але не обов'язково на захищеному робочому століЯкщо
5
(типово), він попросить адміністратора підтвердити запуск не віконних бінарних файлів з високими привілеями
Потім вам потрібно переглянути значення LocalAccountTokenFilterPolicy
Якщо значення 0
, тоді тільки користувач RID 500 (вбудований адміністратор) може виконувати адміністративні завдання без UAC, а якщо це 1
, всі облікові записи в групі "Адміністратори" можуть це робити.
І, нарешті, перегляньте значення ключа FilterAdministratorToken
Якщо 0
(типово), обліковий запис вбудованого адміністратора може виконувати віддалені адміністративні завдання, а якщо 1
, обліковий запис вбудованого адміністратора не може виконувати віддалені адміністративні завдання, якщо LocalAccountTokenFilterPolicy
встановлено на 1
.
Підсумок
Якщо
EnableLUA=0
або не існує, немає UAC для нікогоЯкщо
EnableLua=1
іLocalAccountTokenFilterPolicy=1
, немає UAC для нікогоЯкщо
EnableLua=1
іLocalAccountTokenFilterPolicy=0
іFilterAdministratorToken=0
, немає UAC для RID 500 (Вбудований адміністратор)Якщо
EnableLua=1
іLocalAccountTokenFilterPolicy=0
іFilterAdministratorToken=1
, UAC для всіх
Усю цю інформацію можна отримати за допомогою модуля metasploit: post/windows/gather/win_privs
Ви також можете перевірити групи вашого користувача та отримати рівень цілісності:
Обхід UAC
Зверніть увагу, що якщо у вас є графічний доступ до жертви, обхід UAC простий, оскільки ви можете просто клацнути "Так", коли з'явиться запит UAC.
Обхід UAC потрібний в такій ситуації: UAC активовано, ваш процес працює в контексті середньої цілісності, і ваш користувач належить до групи адміністраторів.
Важливо зазначити, що набагато складніше обійти UAC, якщо він має найвищий рівень безпеки (Always), ніж якщо він має будь-який інший рівень (Default).
UAC вимкнено
Якщо UAC вже вимкнено (ConsentPromptBehaviorAdmin
0
), ви можете виконати зворотний shell з правами адміністратора (високий рівень цілісності), використовуючи щось на зразок:
UAC обхід з дублюванням токенів
Дуже простий UAC "обхід" (повний доступ до файлової системи)
Якщо у вас є оболонка з користувачем, який знаходиться в групі Адміністраторів, ви можете підключити C$ через SMB (файлову систему) локально на новий диск і матимете доступ до всього в межах файлової системи (навіть домашньої папки адміністратора).
Здається, що цей трюк більше не працює
Ухилення UAC за допомогою cobalt strike
Техніки Cobalt Strike будуть працювати лише у випадку, якщо UAC не встановлено на максимальний рівень безпеки
Empire та Metasploit також мають кілька модулів для обхідної UAC.
KRBUACBypass
Документація та інструмент за посиланням https://github.com/wh0amitz/KRBUACBypass
Використання уразливостей обходу UAC
UACME - це компіляція кількох уразливостей обходу UAC. Зверніть увагу, що вам потрібно буде скомпілювати UACME за допомогою Visual Studio або MSBuild. Під час компіляції буде створено кілька виконуваних файлів (наприклад, Source\Akagi\outout\x64\Debug\Akagi.exe
), вам потрібно буде знати, який саме вам потрібен.
Варто бути обережним, оскільки деякі обходи можуть спонукати інші програми, які повідомлять користувача, що щось відбувається.
У UACME є версія збірки, з якої почав працювати кожний метод. Ви можете шукати метод, який впливає на ваші версії:
Також, використовуючи цю сторінку, ви отримуєте версію Windows 1607
зі збірки.
Ще більше обхідів UAC
Всі техніки, використані тут для обходу AUC, потребують повного інтерактивного шелу з жертвою (звичайний шел nc.exe не достатньо).
Ви можете отримати сеанс meterpreter. Перейдіть до процесу, у якого значення Session дорівнює 1:
(explorer.exe має працювати)
Обхід UAC з GUI
Якщо у вас є доступ до GUI, ви можете просто прийняти запит UAC, коли ви його отримаєте, вам не потрібно його обходити. Таким чином, отримання доступу до GUI дозволить вам обійти UAC.
Більше того, якщо ви отримаєте сеанс GUI, яким хтось користувався (потенційно через RDP), там є деякі інструменти, які будуть працювати в якості адміністратора, звідки ви зможете запустити наприклад cmd як адміністратор без повторного запиту від UAC, як https://github.com/oski02/UAC-GUI-Bypass-appverif. Це може бути трохи прихованіше.
Гучний обхід UAC методом брутфорсу
Якщо вас не турбує шум, ви завжди можете запустити щось на кшталт https://github.com/Chainski/ForceAdmin, що просить підвищити дозволи, поки користувач не погодиться.
Власний обхід - Основна методологія обходу UAC
Якщо ви подивитесь на UACME, ви помітите, що більшість обходів UAC використовують уразливість Dll Hijacking (головним чином записуючи шкідливу dll на C:\Windows\System32). Прочитайте це, щоб дізнатися, як знайти уразливість Dll Hijacking.
Знайдіть бінарний файл, який автоматично підвищує (перевірте, що при його виконанні він працює на високому рівні цілісності).
За допомогою procmon знайдіть події "NAME NOT FOUND", які можуть бути вразливі до DLL Hijacking.
Ймовірно, вам доведеться записати DLL всередині деяких захищених шляхів (наприклад, C:\Windows\System32), де у вас немає прав на запис. Ви можете обійти це, використовуючи:
wusa.exe: Windows 7,8 та 8.1. Він дозволяє видобувати вміст файлу CAB всередині захищених шляхів (тому що цей інструмент виконується на високому рівні цілісності).
IFileOperation: Windows 10.
Підготуйте скрипт, щоб скопіювати ваш DLL всередину захищеного шляху та виконати вразливий та автоматично підвищений бінарний файл.
Ще одна техніка обходу UAC
Полягає в тому, що спостерігається, як автоматично підвищений бінарний файл намагається читати з реєстру ім'я/шлях бінарного файлу або команди для виконання (це цікавіше, якщо бінарний файл шукає цю інформацію всередині HKCU).
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, підтримувані найбільш продвинутими інструментами спільноти у світі. Отримайте доступ сьогодні:
Last updated