php小编草莓为您介绍如何获取TrustedInstaller权限。TrustedInstaller是Windows操作系统中的重要权限,拥有该权限可以对系统文件进行修改和删除。获取此权限可以解决一些无法删除或修改系统文件的问题。在本文中,我们将提供推荐的操作步骤,帮助您获得TrustedInstaller权限,以便更好地管理和维护您的系统。跟随以下步骤,您将能够轻松获得TrustedInstaller权限,解决相关问题。
这篇文章将带你了解TI的本质是什么,进一步探索如何在powershell和NtObjectManager模块的帮助下获取TI权限,以便在操作系统中完成任何你想要的操作。
如果你曾经管理过Windows系统,那么你应该熟悉trustedInstaller(TI)组的概念。TI组在系统文件和注册表的操作中具有重要的权限。举个例子,你可以查看System32文件夹下文件的属性,在安全选项中,TI组和文件所有者具有删除和修改文件的权限,甚至管理员也无法直接修改安全选项。因此,对于系统文件和注册表的操作,需要获得TI组的权限。
然而,如果你查看本地用户和组选项,你是找不到TI用户或组的。这篇文章将带你了解TI组的本质,并介绍如何利用Powershell和NtObjectManager模块来获取TI组权限,以便在操作系统中完成你想要的任何操作。
什么是TrustedInstaller
如果TI既不是用户又不是组那它又是什么?查询ACL会给我们一些启示。你可以使用Get-Acl命令来读取一个文件的安全描述,同时我们可以列出TI信息。
从上图可以看到在IdentityReference项中我们看到了TI组,并且它有一个NT SERVICE的前缀。因此,它是一个Windows 服务SID,这是在Vista中加入的特性,这个特性允许操作系统上运行的每一项服务都有一个用来进行权限检查的组。通过这种机制,操作系统不必承担增加独立真实的组的额外开销。
SID本身是服务名的大写表示的SHA1值,下面这段代码就可以计算真实的SID值:
1
2
3
4
5
6
7
8
9
$name = "TrustedInstaller"
$name = "TrustedInstaller"
# Calculate service SID
$bytes = [Text.Encoding]::Unicode.GetBytes($name.ToUpper())
$sha1 = [System.Security.Cryptography.SHA1]::Create()
$hash = $sha1.ComputeHash($bytes)
$rids = New-Object UInt32[] 5
[Buffer]::BlockCopy($hash, 0, $rids, 0, $hash.Length)
[string]::Format("S-1-5-80-{0}-{1}-{2}-{3}-{4}", `
$rids[0], $rids[1], $rids[2], $rids[3], $rids[4])
# Calculate service SID
$bytes = [Text.Encoding]::Unicode.GetBytes($name.ToUpper())
$sha1 = [System.Security.Cryptography.SHA1]::Create()
$hash = $sha1.ComputeHash($bytes)
$rids = New-Object UInt32[] 5
[Buffer]::BlockCopy($hash, 0, $rids, 0, $hash.Length)
[string]::Format("S-1-5-80-{0}-{1}-{2}-{3}-{4}", `
$rids[0], $rids[1], $rids[2], $rids[3], $rids[4])
🎜🎜当然,你大可不必自己去实现这个方法,NTDLL中有一个RtlCreateServiceSid方法可以做到这一点,同时LSASS中也能把服务名转换成SID。也就是说,当系统资源被更改时,一个名为TrustedInstall的系统服务一定会被运行。我们使用SC模块也能发现这一点。🎜🎜🎜🎜🎜🎜🎜如果开启TI服务并查看Access Token,我们可以看到TI组被启用。🎜🎜🎜🎜🎜🎜以上是trustedinstaller权限怎么获得「推荐获取TrustedInstaller权限操作步骤」的详细内容。更多信息请关注PHP中文网其他相关文章!