Чи є один двійковий UAC?


27

Чи є бінарний файл (.exe) у папці System32, який відповідає за функціональні можливості Windows UAC? (наприклад, uac.exe). Що буде, якби цей файл був насильно видалений? Чи зламається Windows або не вдасться до завантаження?

Тут немає жодної проблеми з XY; Мені просто цікаво дізнатися, що буде, якщо UAC буде насильно знятий з ПК.


1
Ви можете легко відключити UAC. UAC - це функція ядра. Те, що ви хочете, неможливо
Рамхаунд

Існує файл win32k.sys techze.net/… і, мабуть, цим файлом у попередньо виправлених вікнах можна керувати / змінювати .. для відключення UAC. Також можна відключити UAC звичайним чином, хоча це не файл EXE
барлоп

Ви можете відключити контроль облікових записів , використовуючи різні методи, наприклад superuser.com/questions/1013702 / ... . Я думаю, що якщо ви видалите його іншим способом злому, ви отримаєте здебільшого такий самий ефект, хоча і з помилками у відповідях нижче щодо відсутніх бінарних файлів.
інший випадковий користувач

@barlop, win32k.sys - лише сторона ядра підсистеми Windows. Іншими словами, основний код, який використовується усім. Я б не рекомендував намагатися змінити це. pasotech.altervista.org/windows_internals/Win32KSYS.pdf
Темний сокіл

@DarkFalcon На "стороні ядра підсистеми Windows", ймовірно, більше. І я не радив, щоб один "змінив"! Як ви думаєте, що хтось збирається робити? Відкрити його в блокноті? Я ніколи такого не пропонував! Відкрити шестигранний редактор? краще, але я і цього не запропонував! І ніхто б цього не робив і нічого не міняв, якщо б вони не мали ідеї, що хочуть змінити, а це займе певний рівень кваліфікації!
барлоп

Відповіді:


56

UAC - це багатокомпонентна архітектура, реалізована декількома бінарними файлами

Контроль облікових записів користувачів (UAC) відноситься до декількох компонентів, які разом утворюють архітектуру UAC . Я коротко ознайомлюсь з деякими з них разом із бінарними файлами, відповідальними за їхню реалізацію, але спочатку огляд архітектури UAC зі статті Microsoft Docs, як працює контроль облікових записів користувачів :

введіть тут опис зображення

Місцевий орган безпеки (LSA) / Фільтрований маркер

Концептуально "перший" компонент UAC реалізується підсистемою Local Security Authority, яка обробляє створення токена доступу користувача під час процесу входу. Починаючи з Windows Vista, процес входу був змінений так, що коли адміністратор входить із увімкненим UAC, підсистема LSA генерує два окремих маркери доступу для користувача:

  1. Один із повним доступом адміністратора та
  2. Другий "відфільтрований маркер" зі стандартним доступом користувачів

Як показано тут, цей процес відрізняється від стандартного входу користувача:

введіть тут опис зображення

Служба підсистеми LSA працює в lsass.exeпроцесі.

Віртуалізація

Додано в Windows 7, віртуалізація файлів і реєстрів - це компонент UAC, який захищає старі програми, не сумісні з UAC, але вимагають лише адміністративних прав для доступу до певних захищених областей файлової системи чи реєстру:

Коли адміністративна програма, яка не відповідає сумісній програмі UAC, намагається записати в захищений каталог, наприклад програмні файли, UAC надає додатку власний віртуалізований вигляд ресурсу, який він намагається змінити. Віртуалізована копія зберігається у профілі користувача.

Джерело

Перенаправлення цих спроб доступу до областей, які не потребують дозволу адміністратора, ці програми продовжують функціонувати, незважаючи на те, що UAC увімкнено.

Ця віртуалізація реалізована в ядрі .

Служба інформації про додатки

Служба інформації про додатки (AIS) читає маніфест програми та працює з підказкою згоди UAC, щоб визначити, чи дозволено виконувати програму з підвищеними правами (тобто запускати в контексті нефільтрованого маркера доступу адміністративного рівня, створеного під час входу) . Цей допис у блозі дає хороший огляд його ролі в процесі UAC:

AIS Полегшує запуск інтерактивних додатків з додатковими адміністративними привілеями. Якщо ця послуга припинена, користувачі не зможуть запускати програми з додатковими адміністративними привілеями, які вони можуть вимагати .... Оболонка перевіряє цю службу під час запуску програми. AIS - це той, хто зчитує маніфест та розділ xml 'trustInfo', який має вимоги до 'requestExecutionLevel' ...

Ось графіка, яка випливає з наведеної вище цитати, в якій детально описується роль AIS у процесі запрошення згоди на підтримку UAC:

введіть тут опис зображення

AIS реалізований в DLL,appinfo.dll який виконується svchost.exe.

Підказка про згоду

@ Бенн відповідь пояснює ключову роль (в) відомому UAC Згоду Prompt. Це реалізовано в consent.exeі відповідає за отримання згоди користувача або облікових даних адміністратора, щоб дозволити запуск програми, що вимагає прав адміністратора.

Безпечний робочий стіл

На захищеному робочому столі за замовчуванням відображається запит на згоду UAC. UACBlog Майкрософт розповідає, що цього робочого столу унікальне порівняно з робочим столом користувача:

Ви найчастіше взаємодієте з [Безпечним робочим столом] під час входу в Windows, оскільки інтерфейс входу в систему працює на захищеному робочому столі. Основна відмінність захищеного робочого столу від User Desktop полягає в тому, що тут можуть запускатися тільки довірені процеси, що виконуються як SYSTEM (тобто ніщо не працює як рівень привілеїв користувача), і шлях до безпечного робочого столу з робочого столу користувача також слід довіряти через весь ланцюжок.

Ідея його використання при питанні згоди користувача на запуск програми з підвищеними дозволами полягає в тому, що зловмисне програмне забезпечення не може імітувати захищений робочий стіл, якщо воно вже не має адміністративних прав, і в цьому випадку обман користувача в його наданні є суперечливим.


Висновок: UAC - це не лише один двійковий. Це тканина переплетених підсистем.

Існують ще інші аспекти архітектури UAC, не висвітлені тут, але це повинно дати достатньо доказів для фактів, які:

  1. UAC не реалізований в одному двійковому.
  2. Якщо це включено, це невід'ємна частина виконання адміністративних завдань.

З моменту свого впровадження в Windows Vista він був глибоко інтегрований у ключові частини операційної системи, завдяки чому видалити весь код, відповідальний за UAC, не порушуючи інші речі (наприклад, вашу здатність до входу!).

Я думаю, що можна впевнено сказати, що якщо ви "насильно видалили" UAC, ви б зламали Windows.


1
На основі цього посилання FWIW tehze.net/… , схоже, файл win32k.sys, як видається, грає роль Я помічаю, що файл file.exe визначає його як "PE32 + виконуваний файл (рідний) x86-64, для MS Windows"
barlop

win32k.sys - це, по суті, великий шматок ядра. Звичайно, це відіграє певну роль в ОАК. Це є для Windows.
Роджер Ліпскомб

25

Як чудово пояснив Twisty , є багато компонентів, які допомагають реалізувати UAC. Частина UAC, яку люди найбільше знайомі, - це діалог про піднесення / згоду:

Це передбачено consent.exe"Згодою інтерфейсу користувача для адміністративних застосувань". Я спробував перейменувати його в VM і побачив, що відбувається. Як і очікувалося, під час використання "запустити як адміністратор" не з'являться запити щодо висоти - натомість ви отримуєте помилку, що не знайдено файлів, яка звинувачує те, що ви намагаєтеся підняти:

не знайдено

Спроба використовувати будь-який елемент інтерфейсу панелі управління, який потребує піднесення (тобто має піктограму щита), навіть якщо увійшов як адміністратор, не вдається з подібними помилками. Спроба запустити адміністративні речі з меню "Пуск" створює дещо іншу помилку:

жодне додаток не пов’язано

Залежно від набору ACL під час перейменування, яке все порушило, це неможливо виправити зсередини ОС, оскільки файлові операції можуть вимагати підвищення (навіть якщо вони зазвичай не створюють діалогове вікно згоди). Хоча видимість, що нагадує звичайним користувачам, діяльність не здається деградованою.


3
@muru, я б припустив, що accept.exe не просто повертає істинне чи помилкове, а натомість маркер, який потрібно виконати під. Це означає, що ви не можете перейти від звичайного користувача до маркера адміністратора без фактичної автентифікації як адміністратора.
Джої

6
@muru Windows перевіряє та замінює багато системних файлів, не впевнений, включений чи ні. Однак, з точки зору безпеки, справа в суперечливій формі - щоб замінити згоду.exe, вам потрібні в першу чергу права адміністратора, так що ескалації привілеїв немає, навіть якщо це можливо замінити так, як ви це уявляєте.
Луаан

3
Просто включити його з моєї думки. Ви все ще можете завантажити машину в Linux або щось замінити файл. Але для цього потрібен фізичний доступ до машини, що в основному є також адміністративним доступом. Тож це все ще не стурбованість безпеки
DeadChex

1
@EricTowers Так, але оскільки адміністративні привілеї потрібні для зміни consent.exe, зловмисник, який може це зробити, знаходиться вже з іншого боку герметичного люка і має більш прості способи робити погані справи.
Ben N

1
@TwistyImpersonator Цікаве запитання! Мовчазне піднесення, здається, також викликає запуск згоди (за моніторингом запуску процесу ), коли це робиться під звичайним обліковим записом адміністратора. Вбудований обліковий запис адміністратора не підлягає UAC, тому всі його програми вже підвищені, і Consent не залучається. Ви можете змінити таку поведінку, скориставшись цією політикою безпеки .
Бен Н
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.