仅使用命令提示符和/或 PowerShell,但没有外部程序或命令,如何以 TrustedInstaller 或 SYSTEM 身份运行应用程序?
答案1
据我所知,没有简单的方法可以登录系统或受信任的安装程序无需使用第三方工具,例如微软自己的工具(实际上是 Russinovich 的 Sysinternals 工具)执行程序,Nirsoft 的近红外命令或 Sordum 的动力运行。
然而,使用这些工具很容易出现原生于 Windows GUI,即作为可执行文件的上下文菜单项,带有注册表调整将特定工具添加到右键菜单中。
[即使拥有这些特权,有时也可能无法执行简单的任务,例如使用注册表编辑器修改拥有的密钥受信任的安装程序,而不承担责任。]
答案2
从https://www.tiraniddo.dev/2017/08/the-art-of-becoming-trustedinstaller.html,下面是我在我的机器上尝试的步骤
- 打开你的 powershell(以管理员身份)
- PS> 安装模块-名称 NtObjectManager
- PS> 启动服务-名称 TrustedInstaller
- PS> $parent = Get-NtProcess -ServiceName TrustedInstaller
- PS> $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $parent
注意:
Install-Module
导入模块只需要运行一次。https://www.powershellgallery.com/packages/NtObjectManager/
完成第 5 步后,将打开新的命令提示符,我们可以通过运行whoami
它来检查是否显示nt authority\system
答案3
顺便说一下,这是一个由@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"