powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)

前言常逛 IT 之家的朋友可能知道,自从 Windows Vista 以来,为了提升安全性,微软对于权限的把控越来越紧。为了对抗恶意软件随意修改系统文件,Trustedinstaller 应运而生。TrustedInstaller 是从 Windows Vista 开始出现的一个内置安全主体,它的本体是 “Windows Modules Installer” 服务。在 Windows 中拥有修改系统文件权限,以一个用户组的形式出现。通常情况下,在使用 Windows Update 安装系统更新,开启关闭 Windows 功能时起非常重要的作用。
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

拥有完全控制权限的 Trustedinstaller 用户组
它的全名是:NT SERVICE\TrustedInstaller。从名字中我们不难发现,这其实是 NT 服务,并非一个实际存在的用户组。
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

在本地用户和组内无法找到 Trustedinstaller
那如果我是 DIY 玩家,又或者因为一些原因,想要修改某些系统功能,该如何操作呢?如今,网络上提供的方法,大部分都是修改文件的所有者为系统管理员用户,然后再对管理员用户添加完全控制权限。
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

修改系统文件所有者
这个方法虽然可以实现修改系统文件,但是每次修改完成后,很多人都会忘记把权限和所有权修改回来,留下安全隐患。而且如果需要修改某文件夹内的多个文件时,除非将整个文件夹内的所有文件一起修改,不然会很繁琐。
还有一种获得 Trustedinstaller 的方式是,通过交互式服务检测,但是在最新的 Windows 11(Windows 10)中,这种方法已经失效了。
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

那在新的系统中又该如何获得 Trustedinstaller 权限呢?
其实我们还可以通过 Set-NtTokenPrivilege 窃取 Trustedinstaller 的本体 Trustedinstaller.exe 的 Token,来创建其子进程。在开始之前我们需要保证你的 Powershell 版本为 5.0 以上(Windows 10 以上版本已经自带 Powershell 5.0 了,其他版本 Windows 需要进行更新)。
准备工作首先,我们需要下载并安装 Set-NtTokenPrivilege 命令所需模块,我们先在系统 C 盘根目录新建名为 “token” 的文件夹。
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

接着,我们以管理员身份运行 Powershell,然后输入(其中 C:\token,为我们刚刚新建文件夹的路径):
Save-Module -Name NtObjectManager -Path c:\token并回车(第一次安装会出现询问,输入 “Y” 并回车):
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

稍等片刻下载完成后,我们输入:
Install-Module -Name NtObjectManager并回车,正式安装。若出现不受信任的存储库,输入 “A” 并回车:
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

稍等片刻,等待安装结束。结束后,我们需要让系统允许使用 Powershell 脚本,我们输入:
Set-ExecutionPolicy Unrestricted并回车。接着系统会显示执行策略更改,我们输入”A“并回车确认:
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

接着,我们导入 NtObjectManager 模块,我们输入:
Import-Module NtObjectManager并回车。至此,我们前期准备工作结束:
powershell|Win10/Win11 如何真正获取 Trustedinstaller 权限(非修改所有者及权限)
文章插图

正式开始现在,我们开始正式获得 Trustedinstaller 权限。在 Powershell 中依次输入:
sc.exe start TrustedInstallerSet-NtTokenPrivilege SeDebugPrivilege$p = Get-NtProcess -Name TrustedInstaller.exe$proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $p

推荐阅读