moyozizi 发表于 2021-4-13 18:40
郭总勇武啊 直接开干
是假的 TrustedInstaller
真的 TrustedInstaller 帐号还蛮复杂的。
这个链接的评论有
https://www.bilibili.com/video/av61102395
自己看吧
没用的。Windows里面权限检查时比对的是SID而不是名称。SID是内部使用的标识符,所有用户、组还有别的能被赋予权限的东西都对应一个SID,比如说LocalSystem对应的就是S-1-5-19。注册表HKEY_USERS下面那些S-1-打头的就是SID。
你就算创建一个也叫TrustedInstaller的用户,它的SID跟Windows给原先那个TrustedInstaller分配的SID也是不同的,所以不具有原先那个TrustedInstaller的权限。
实际上,你可以试一下,比如说创建一个用户叫aaaaa,在一个文件的权限里给它赋予一些权限,然后删掉这个用户,再重新创建用户名字不变,会发现,这次重新创建的同名用户不再具有之前设置的权限了,而文件的权限设置里会多一个显示着SID的条目。这,就是因为虽然重新创建的用户用户名一样,但是SID不一样,而文件的DACL(就是表示谁有什么权限的结构)里存的是SID。
另外,自带的TrustedInstaller,并不是一个一般的“用户”,而是一个“服务账户”,全称是“NT SERVICE\TrustedInstaller”(可以试一下,在文件权限设置里面添加权限时输入这个是有效并且会表示自带的TrustedInstaller的,而直接输入TrustedInstaller是没用的)。使用本地用户和组(lusrmgr.msc)可以发现并没有这个名字的用户。实际上是Windows的一个服务Windows Modules Installer,它的名称就是TrustedInstaller(长的那个是显示名),这个服务的功能主要是在Windows更新之类的时候进行具体的安装工作,所以需要修改系统文件的权限。这个服务也是以LocalSystem启动的,但是因为它名称叫TrustedInstaller,所以它启动时服务控制管理器自动给它一个独特的“服务账户”的SID,也就是“NT SERVICE\TrustedInstaller”的SID。
另外,真要修改这些系统文件的话,对于相当一部分文件,在自己具有管理员权限的情况下,可以进入权限设置,设置所有者为Administrators或者自己的用户,然后作为所有者就可以修改权限了,可以给自己加上完全访问的权限。 2019-07-29 06:48154回复
yangbowen1028另外,前面有个地方我说错了,LocalSystem的SID是S-1-5-18,S-1-5-19是LocalService。
2019-07-29 08:218回复
yangbowen1028回复 @GLeave :不行的。首先,用户名里不能有反斜杠等符号,所以不能创建这个名称的用户。其次,服务账户的SID是S-1-5-80打头的,而一般用户的是S-1-5-21打头的,所以也不可能有一般用户的SID符合TrustedInstaller的SID,那么权限检查的时候自然不可能被当作TrustedInstaller。
不过,假如编写一个冒充TrustedInstaller服务的程序,替换掉Windows自带的这个服务的程序,让Windows把这个自己编写的程序当作TrustedInstaller服务来启动,那么或许可以让这个程序获得TrustedInstaller的权限吧。我没试过不知道,但是理论上讲如果Windows不检查这些文件是否被篡改的话,应该是可以的吧。用cmd什么的替换掉TrustedInstaller.exe应该是不行的,因为这个程序自己也必须在启动之后的一小段时间内告诉服务控制管理器自己是这个服务。
|