Запуск програм в Windows без прав адміністратора за допомогою RunWithRestrictedRights

Запуск програм в Windows без прав адміністратора за допомогою RunWithRestrictedRights

Чи задавалися ви питанням, чи безпечно запускати чергове викачане додаток?

Автор: Ashwin

Чи задавалися ви питанням, чи безпечно запускати чергове викачане додаток? У цій статті ми розглянемо це питання. Одне з найкращих рішень – запуск програми в пісочниці (наприклад, в Sandboxie) або на віртуальній машині, оскільки в цьому випадку права доступу у додатки будуть серйозно обмежені.

Мені завжди було цікаво, чому додатками потрібні розширені права. Наприклад, у разі утиліт для посилення безпеки системи або управління функціями Windows, такий запит правомірний, але в інших ситуаціях все не так очевидно. Програми, після запуску яких з’являються спливаючі вікна від UAC (User Account Control; Контроль облікових записів користувачів), можуть не запуститися зовсім, якщо ви не дозволите.

Малюнок 1: Опис та параметри програми RunWithRestrictedRights

З іншого боку, було б непогано використовувати цю можливість в примусовому режимі. І тут нам на допомогу приходить RunWithRestrictedRights. Ця утиліта, керована з командного рядка, використовує Windows Integrity Mechanism для обмеження прав додатків, щоб не завдати шкоди системі (краще, ніж PSExec).

Коли я вперше запустив RunWithRestrictedRights виникла помилка «a required privilege is not held by the client» (у клієнта немає необхідних привілеїв). Для вирішення цієї проблеми у облікового запису повинні бути такі права, використовувані RunWithRestrictedRights при управлінні іншими додатками:

  1. Налаштування квот пам’яті для процесу (Adjust memory quotas for a process).

  2. Заміна маркера рівня процесу (Replace a process level token).

Більш докладно про ці права можна дізнатися в офіційній документації. Права додаються в розділі Control Panel (Панель керування) > Administrative Tools (Адміністрування) > Local Security Policy (Локальна політика безпеки) > User Rights Assignment (Призначення прав користувача). Слід переконатися, що вищевказані дозволи додано група «Адміністратори». Після внесення зміни необхідно перезавантажити комп’ютер.

Примітка: мені потрібно було налаштувати тільки права, пов’язані із заміною маркера рівня процесу.

Як використовувати RunWithRestrictedRights

  1. Запустіть командний рядок з правами (цей крок дуже важливий).

  2. Введіть команду, використовуючи наступний шаблон: C:\RunWithRestrictedRights.exe “application”.

Необхідно вказати місцезнаходження директорії з файлом RunWithRestrictedRights.exe. Я використовую папку H:\Downloads\. Слово «application» потрібно замінити на додаток, яке виходьте запустити (Notepad, MSPaint і так далі).

Таким чином, підсумкова команда повинна виглядати так: H:\Downloads\RunWithRestrictedRights.exe notepad. Для зручності можна прив’язати змінну оточення до місцезнаходженням програми.

Малюнок 2: Приклад запуску програми з обмеженими правами

Якщо все зроблено правильно, додаток з обмеженими привілеями має запуститися. У командному рядку ви також побачите нове повідомлення, що «notepad» запущений на рівні Medium Integrity з ідентифікатором процесу – aaaa, де aaaa – чотиризначний номер.

Спробуємо запустити додаток, не являє частиною операційної системи і вимагає UAC (наприклад, Kingston SSD Manager).

Я запустив команду C:\Windows\system32>H:\Downloads\RunWithRestrictedRights.exe “C:\Program Files (x86)\Kingston_SSD_Manager\KSM.exe”.

Малюнок 3: Приклад запуску програми від стороннього розробника

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

Як перевірити, що додаток працює з обмеженими правами? Розробник рекомендує використовувати Process Explorer. Зайдіть у властивості процесу і подивіться прапори BUILTIN\Administrators, Mandatory Label Local account and member of Administrators group (див. малюнок нижче).

Малюнок 4: Властивості процесу KSM.exe

Крім того, в RunWithRestrictedRights передбачено кілька параметрів, які можна використовувати наступним чином: RunWithRestrictedRights.exe <application> -argument.

Аргумент –w запустить додаток з обмеженнями відразу ж, але повернення до командного рядку не станеться, поки програма не закриється. Наприклад, H:\Downloads\RunWithRestrictedRights.exe “notepad” –w.

Хочете запускати програми з рівнем Low Integrity? Скористайтеся аргументом –l. У випадку з аргументом –P використовуються права групи Power Users. Аргумент -d <sid> забороняє використання прав SID. Аргумент –v призначений для відображення більш детальної інформації.

Загалом, досить просте додаток, що дозволяє підвищити рівень безпеки.

Висновок

RunWithRestrictedRights – портативне додаток, яке працює, починаючи з Windows 7 і вище (хоча розробники стверджують, що в Windows XP теж працює). Утиліта також підтримує Windows Server 2003 і більш пізні версії. Програма розроблена компанією Core Technologies, яка розробляє Service Trigger Editor, розглянутим нами недавно.

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

З урахуванням вищесказаного, для виконання щоденних обов’язків хорошою ідеєю буде використання аккаунтів звичайних користувачів, а адміністративних – тільки в разі крайньої необхідності. У 2017 році компанія Microsoft повідомила, що користувачі можуть захиститися від 94% критичних вразливостей Windows, якщо будуть використовувати неадміністративні облікові записи.

Джерело

Поділитися
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Реклама

195

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Схожі записи

Почніть набирати текст зверху та натисніть "Enter" для пошуку. Натисніть ESC для відміни.

Повернутись вверх