如何运行程序nt authority/system
没有使用第三方应用程序(例如psexec
)?
我已尝试过runas "/user:system@nt authority" <app>
,runas "/user:nt authority\system" <app>
但他们都说unable to acquire user password
。
(至少如果没有办法使用,runas
有没有不使用第三方应用程序的方法?)
答案1
一种方法是作为 运行临时计划任务NT AUTHORITY\SYSTEM
。您可以通过将以下内容粘贴到 PowerShell 中来执行此操作。
解释:脚本会提示您输入命令及其参数。如果没有参数,请按Enter将其留空。然后,脚本会创建一个名为 的临时计划任务RunAs_LocalSystem_$(New-Guid)
,并将其设置为 运行NT AUTHORITY\SYSTEM
。最后,脚本会运行计划任务,然后将其删除。
param( `
[Parameter(Mandatory)][string]$Command, `
[Parameter(Mandatory)][AllowEmptyString()][string]$Arguments `
) `
Import-Module ScheduledTasks; `
$name = "RunAs_LocalSystem_$(New-Guid)"; `
$actionArguments = @{ '-Execute' = $Command; }; `
if (-not [string]::IsNullOrEmpty($Arguments)) { $actionArguments['-Argument'] = $Arguments } `
$action = New-ScheduledTaskAction @actionArguments; `
$principal = New-ScheduledTaskPrincipal -UserId 'NT AUTHORITY\SYSTEM' -LogonType Interactive; `
Register-ScheduledTask -TaskName $name -Action $action -Principal $principal | Start-ScheduledTask; `
Unregister-ScheduledTask $name -Confirm:$false
答案2
您无法使用runas
,可能是因为以下原因:
“LocalSystem 帐户是服务控制管理器使用的预定义本地帐户。安全子系统无法识别此帐户,因此您无法在调用查找帐户名称功能。它在本地计算机上拥有广泛的权限,并充当网络上的计算机。其令牌包括 NT AUTHORITY\SYSTEM 和 BUILTIN\Administrators SID;这些帐户可以访问大多数系统对象。所有区域设置的帐户名称均为 .\LocalSystem。也可以使用名称 LocalSystem 或 ComputerName\LocalSystem。此帐户没有密码。”
参考。
PSExec 基本上通过 SMB 上传并启动 Windows 服务 PSEXECSVC。使用管理员权限(由 PSExec 命令行提供)安装的 Windows 服务可以作为 LocalSystem 帐户运行(例如,可在 中指定services.msc
)。当您通过 PSExec“远程登录”系统时,您实际上是通过 SMB 协议与临时安装在另一端的正在运行的 PSEXECSVC 进行通信。我不确定更多细节,但这可能是 PSExec 能够以 LocalSystem 帐户身份执行操作的方式。
参考。
那么你可能能够通过将可执行文件包装在服务包装器(例如srvany.exe
来自 Windows 2000 资源工具包(如果它仍然有效))中来将其作为 LocalSystem 运行,或者国家安全监测中心但如果可执行文件尝试使用 Windows UI 元素,它可能不起作用(Windows XP 之后已被禁用)。
另请阅读。