Trustedinstaller 权限 研究&学习
小插曲
最近,在上一些安全相关课程被问及Windows系统里面最高的权限账号是什么? 我毫不犹豫的回答了是Administrator。结果经过自己网上查阅资料,早已不是Administrator的天下。想起有些时候删除和操作系统盘的一些文件内容,总是会提及没有权限。当时,还真没怎么注意这件事情。现在,请重新开始学习认识一个新的账号:Trustedinstaller
什么是 TrustedInstaller.exe 进程?
TrustedInstaller.exe是Windows 11/10/8/7中的Windows模块安装程序服务的一个进程。它的主要功能是启用 Windows 更新和可选系统组件的安装、删除和修改。无论您使用的是 Windows 11 还是 Windows 10,TrustedInstaller 在所有平台上的工作方式都相同。
TrustedInstaller 由来
TrustedInstaller是从Windows Vista开始出现的一个内置安全主体,在Windows中拥有修改系统文件权限,本身是一个服务,以一个账户组的形式出现。它的全名是:NT SERVICE\TrustedInstaller。这个安全主体本身是一个服务,名称为:Windows Modules Installer文件路径 C:\Windows\servicing\TrustedInstaller.exe
通过 Set-NtTokenPrivilege 窃取 Trustedinstaller 的本体 Trustedinstaller.exe 的 Token,来创建其子进程。在开始之前我们需要保证你的 Powershell 版本为 5.0 以上(Windows 10 以上版本已经自带 Powershell 5.0 了,其他版本 Windows 需要进行更新)
自行创建文件夹 C:\Token
Save-Module -Name NtObjectManager -Path c:\token
稍等片刻下载完成后,我们输入:
Install-Module -Name NtObjectManager
并回车,正式安装。若出现不受信任的存储库,输入“A”并回车:
稍等片刻,等待安装结束。结束后,我们需要让系统允许使用 Powershell 脚本,我们输入:
Set-ExecutionPolicy Unrestricted
接着,我们导入 NtObjectManager 模块,我们输入:
Import-Module NtObjectManager
并回车。至此,我们前期准备工作结束:
正式开始
现在,我们开始正式获得 Trustedinstaller 权限。在 Powershell 中依次输入:
sc.exe start TrustedInstaller Set-NtTokenPrivilege SeDebugPrivilege $p = Get-NtProcess -Name TrustedInstaller.exe $proc = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $p
接下来系统会打开一个命令提示符,该命令提示符就具有 Trustedinstaller 权限,可以直接修改系统文件。我们可以通过:
whoami /groups /fo list
可以看到我们已经获得 Trustedinstaller 权限了,现在就可以通过一些命令修改系统文件了。如果想要更加方便操作,可以通过此 CMD 运行 taskmgr、notepad 等应用,在运行新任务、打开文件的浏览窗口下,进行文件编辑。编辑结束后直接关闭即可。
最后,为了方便使用可以把语句放到入一个ps1文件。下次要使用就以管理员身份执行PowerShell,然后执行这个脚本能弹窗基于[Trustedinstaller 权限]的CMD窗口;PS:不过注意,由于这个的权限太高生产环境,慎用!
sc.exe start TrustedInstaller Set-NtTokenPrivilege SeDebugPrivilege $xx= Get-NtProcess -Name TrustedInstaller.exe $proc2 = New-Win32Process cmd.exe -CreationFlags NewConsole -ParentProcess $xx
小结
这件事,给了我一些启发,在AI时代很多产品和工具都在重构,我们原本的知识体系也需要“重构”,放下固有思维,从零开始,保持空杯的一个心态。就像乔布斯说的那样:“stay hungry,stay foolish ”(保持饥渴,保持若愚)
参考资料: