Как запустить приложение как TrustedInstaller или SYSTEM без использования внешних программ?

Как запустить приложение как TrustedInstaller или SYSTEM без использования внешних программ?

Как можно запустить приложение от имени TrustedInstaller или SYSTEM, используя только командную строку и/или PowerShell, но без внешних программ или команд?

решение1

Насколько мне известно, простого способа войти в систему какСИСТЕМАили какДоверенный установщикбез использования сторонних инструментов, таких как собственные инструменты Microsoft (на самом деле Sysinternals Руссиновича)PsExec, Nirsoft'sNirCmdили СордумаPowerRun.

Однако использовать эти инструменты легко.появлятьсябыть встроенным в графический интерфейс Windows, т.е. как элемент контекстного меню для исполняемых файлов, сИзменение реестра, добавляющее определенный инструмент в контекстное меню.

[Даже с этими привилегиями иногда может быть невозможно выполнить простые задачи, такие как использованиеRegeditдля изменения ключа, принадлежащегоДоверенный установщик, без принятия на себя ответственности.]

решение2

Отhttps://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html, вот шаги, которые я пробую на своей машине

  1. Откройте PowerShell (как администратор)
  2. PS> Установить-Модуль -Имя NtObjectManager
  3. PS> Пуск-Сервис -Имя TrustedInstaller
  4. PS> $parent = Get-NtProcess -ServiceName TrustedInstaller
  5. PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent

Примечания:
Install-Moduleдля импорта модуля достаточно запустить его только один раз.https://www.powershellgallery.com/packages/NtObjectManager/

После шага 5 откроется новая командная строка, в ней мы можем проверить, запустив whoamiее, и она покажет:nt authority\system

решение3

Кстати, вот скрипт .ps1, сделанный изКоманды @hasto:

$ConfirmPreference = "None"
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
    Start-Process powershell -ArgumentList "-NoProfile -File `"$PSCommandPath`"" -Verb RunAs
    exit
}
Set-ExecutionPolicy -ExecutionPolicy bypass
Install-Module -Name NtObjectManager
Start-Service -Name TrustedInstaller
$parent = Get-NtProcess -ServiceName TrustedInstaller
$proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent
$ConfirmPreference = "High"

Связанный контент