У Windows для виконання деяких дій недостатньо мати права адміністратора. Наприклад, ви не зможете замінити або видалити системні файли, деякі гілки реєстру, зупинити системні служби або виконати інші потенційно небезпечні дії, які можуть поставити під загрозу стабільність. Системного адміністратора в таких випадку доводиться призначати собі власником таких об’єктів або виконувати дії від імені системи. У цій статті ми розглянемо, як запустити програму або командний рядок в Windows від імені привілейованого аккаунта SYSTEM (Local System).

  • Запуск командного рядка від Local System в старих версіях Windows (до Vista)
  • Запуск програм від імені системи за допомогою PSExec в Windows 10
Вбудована обліковий запис SYSTEM використовується диспетчером управління службами SCM (Service Control Manager) для запуску та управління системними службами. З-під облікового запису System (може називатися NT AUTHORITY SYSTEM, Local System або Computer LocalSystem) запускається більшість системних служб і процесів (в тому числі ядро ​​NT Kernel). Відкрийте оснастку управління службами services.msc і зверніть увагу на служби, у який в стовпці LogOnAs вказано Local System. Ці служби запущено з-під облікового запису SYSTEM.системні служби windows запущені від імені localsystem

Запуск командного рядка від Local System в старих версіях Windows (до Vista)

В знятих з підтримки Windows XP і Windows Server 2003 була цікава можливість, що дозволяє запустити програму або ж інтерактивну командний рядок (cmd) з правами системи через планувальник. Досить увійти з правами адміністратора, відкрити командний рядок і набрати в ній:

at 12:23 /interactive cmd.exe

, де 12:23 – поточний час + одна хвилина (в 24-годинному форматі).

Після настання зазначеного часу перед вами відкривається вікно командного рядка, запущене з правами Local System. Якщо ви виконали цю команду в термінальному (rdp) сесії Windows Server 2003 / XP, майте на увазі, що командний рядок з правами System відображається тільки в консольної сесії (як підключитися до rdp консолі).

Запуск пограмма від імені системи в Windows

У Windows 10 запуск інтерактивної рядки за допомогою команди at не підтримується. Замість нього рекомендується використовувати schtasks.exe.

Команда AT признана нерекомендуемой. Используйте вместо нее schtasks.exe.
Внимание! В соответствии с повышенной безопасностью данное задание будет  выполняться в запланированное время, но не интерактивно. Если требуется интерактивное задание, воспользуйтесь служебной программой schtasks.exe (для получения дополнительных сведений введите schtasks /?). Такой запрос не поддерживается.

windows 10 команда at застаріла і не підтримується

Запуск програм від імені системи за допомогою PSExec в Windows 10

Починаючи з Windows 7 трюк з запуском інтерактивної командного рядка від імені системи через планувальник не працює. Для запуску команд від імені NT Authority System можна використовувати утиліту PSExec.exe от Sysinternals.

утиліту PSExec.exe можна завантажити на сайті Microsoft https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Утиліта PSExec знайома будь-якому адміністратору і в першу чергу призначена для віддаленого управління Windows, проте в ній є корисна можливість запуску процесів від імені System. Деякі антивіруси можуть впізнавати PSExec.exe як потенційно небезпечну програму (за допомогою psexec до речі поширювався сумнозвісний вірус notpetya),

Утиліта PSExec не вимагає установки. Відкрийте командний рядок з правами адміністратора ( “Run as administrator”) перейдіть в каталог, в якому знаходиться виконуваний файл PSexec.exe і наберіть:

psexec -i -s cmd.exe

параметр запускає додаток в інтерактивному режимі (користувач може взаємодіяти з програмою на робочому столі, якщо це параметр не вказувати, процес запускається в консольної сесії), –s означає що командний рядок потрібно запустити з-під системи

При першому запуску PsExec попросить вас прийняти ліцензійну угоду.

запуск інтерактивної cmd.exe з psexec з правами system

Після виконання команди з’явиться нове вікно з командним рядком, запущеної з-під облікового запису NT Authority System. Перевірте це, виконавши команду:

whoami

psexec whoami перевірка що командний рядок запущена від імені NT Authority  System

Таким чином ви запустити будь-яку програму, команду або скрипт з правами системи. Досить в параметрі утиліти PsExec змінити cmd.exe на ім’я виконуваного файлу потрібної програми.

У вікні командного рядка ви можете виконувати будь-які команди в контексті SYSTEM. Тепер ви зможете змінити назву або вилучити системні файли / гілки реєстру, власником яких є TrustedInstaller або SYSTEM. Всі програми або процеси, які ви запустите їх цього вікна також будуть запущені з підвищеними привілеями LocalSystem. Наприклад, можна зупинити системну службу, або закрити дескриптор зайнятого системою файлу.

За допомогою PSExec ви можете отримати інтерактивну командну з правами NT AUTORITY СИСТЕМА з віддаленого комп’ютера. Для цього використовується команда:

psexec -s \msk-PCBuh2 cmd.exe

При появі помилки couldn’t install PSEXESVC service, Впевніться, що:

  • командний рядок запущена від імені адміністратора;
  • перевірте, можливо служба PSEXESVC вже запущена.служба PSEXESVC вже запущена

Є ще ряд сторонніх утиліт для запуску програм від імені System (AdvancedRun, RunAsSystem, PowerRun), але я не бачу сенсу використовувати їх сенсу. Оскільки по-перше це сторонні утиліти, і ви не можете гарантувати що в їхньому коді немає шкідливих закладок, і по-друге офіційна утиліта PsExec від Microsoft відмінно справляється із завданням.

Leave a Reply

Your email address will not be published. Required fields are marked *