如何获得trustedlnstaller权限(trusted installer权限怎么获取)

发布时间:2024-03-10
本文主要介绍如何获得可信安装程序权限(如何获得可信安装程序权限),下面一起看看如何获得可信安装程序权限(如何获得可信安装程序权限)相关资讯。
本文将带你了解ti的本质是什么,并进一步探讨如何借助powershell和ntobjectmanager模块获取ti权限,从而在操作系统中完成你想要的任何操作。
如果您曾经管理过windows系统,那么您应该知道trustedinstaller(ti)组的概念。对系统文件和注册表的大多数操作都需要ti组权限。例如,您可以查看system32文件夹中文件的属性。在安全选项下,ti和文件所有者可以删除和修改文件(甚至管理员也可以 t),所以你可以 不要直接修改安全选项。
但是,如果您查看本地用户和组选项,您可以 找不到ti用户或组。本文将带你了解ti组的本质,进而进一步了解如何借助powershell和ntobjectmanager模块获得ti组的权限,从而在操作系统中完成任何你想要的操作。
什么是可信安装程序?
如果ti既不是用户也不是群体,那它是什么?查询acl会给我们一些启示。您可以使用getacl命令来读取文件的安全描述,并且我们可以列出ti信息。
从上图可以看出,我们看到identityreference项中的ti组,它的前缀是nt service。因此,它是一个windows服务sid,是vista中添加的功能。此功能允许操作系统上运行的每个服务都有一个权限检查组。通过这种机制,操作系统不必承担额外增加独立实组的成本。
sid本身是大写的服务名的sha1值,下面的代码可以计算实际的sid值:
一个
2







$ name = 可信安装商
#计算服务sid
$bytes = [text。encoding]:: unicode . getbytes($name。toupper())
$ sha1 =[系统。security . cryptography . sha1]: : cr::blockcopy($hash,0,$rids,0,$ hash。长度)
[string]:: format( 80{ 0 }{ 1 }{ 2 }{ 3 }{ 4 } , `
$rids[0],$rids[1],$rids[2],$rids[3],$rids[4])
当然,你不知道。;你不必自己实现这个方法。ntdll中有一个rtlcreateservicesid方法可以做到这一点,lsass也可以将服务名转换成sid。换句话说,当系统资源发生变化时,一定会运行一个名为trustedinstall的系统服务。我们也可以通过使用sc模块来找到这一点。
如果我们打开ti服务并查看访问令牌,我们可以看到ti组已启用。
背景知识到此结束。如果我们是管理员,如何使用trustedinstaller?
成为值得信赖的安装商
如果您搜索了如何删除ti拥有的资源,您一般会得到这样的结果:它会告诉您首先获取文件或密钥的所有权,然后更改dacl以添加管理员组。这是因为即使是与ifileoperation uac com兼容的组件,通常也不会自动运行,会弹出如下对话框:
改变系统文件的权限真的不是一个好主意。如果你做错了,你会暴露操作系统给eop,尤其是目录。explorer可以轻松地将所有子文件和文件夹的安全属性更改为初始值。当然ti会阻止你这么做,但总有人出于某种目的想这么做。
您可能会想,我可以将当前用户添加到ti组。可惜像netlocalgroupaddmembers这样的lsass api不使用sid,修改注册表值nt service\trustedinstaller也是无效的。因为它根本不是一个真正的群,是用其他方法创建的。也许你可以通过念一个魔法咒语来做到,或者至少使用底层的rpc调用,但是我不这么做。;我不认为它 这是值得的。
因此,修改ti服务设置的最快方法是通过更改设置来运行另一个二进制文件。奇怪的是,ti服务使得系统上的文件很难被随意修改,但它并不保护自己,修改的操作只需要一个普通管理员的权限就可以完成。所以你可以使用下面的命令来删除任何文件。
一个
sc config trustedinstaller binpath = cmd.exe/c del路径\到\文件
启动ti服务,文件嗖的一声就没了。这个命令能够生效的另一个原因是ti不是受保护的进程灯(ppl),这也是一件奇怪的事情,因为ti组被赋予了删除和停止ppl服务的权利。我向msrc指出了这一点(2013年亚历克斯·洛内斯库也指出了这一点),但微软没有采取任何措施来解决这个问题。似乎微软并不 我也不认为ppl是一个安全的界限。
完成上述操作后,您必须将ti服务恢复到原始状态,否则windows update等服务将无常工作。既然ti服务有一个令牌,我们可以借用这个令牌来创建一个新的进程吗?
作为管理员,我们可以调用sedebugprivilege函数来打开ti进程及其令牌。那么我们可以做任何事情,试试看:
it 很简单。it 是时候尝试ti的其他操作了。
嗯,看来我们可以 不要使用这个标记来创建或模拟一个进程,这样不好。我们可以在上图底部看到原因。我们只有token_query的特权,但是我们至少需要token_duplicate的特权来获得创建新进程所需的令牌。检查令牌的安全描述,并使用进程黑客找出为什么我们的访问权限如此之低(我们不 甚至没有读控制权限)。
如您所见,administrator组只有token_query权限。这与我们通过token获得的访问权限是一致的。你可能想知道为什么sedebugprivilege不 t生效,因为调试权限只绕过进程和线程对象的安全检查,它不会 不要用token做任何事情,因为我们可以。;得不到它的帮助。这似乎有点麻烦,但不是 除了修改服务二进制文件的暴力操作之外,还有其他方法可以达到目的吗?
当然不是。有一些例子来说明我们如何能使一个类似ti的服务运行。一般来说,我们可以安装一个服务来运行代码,然后ti令牌,最后创建一个新的进程。很容易理解,如果我想创建一个服务,我只需要修改可信安装程序服务。
因此,有两种非常简单的方法可以绕过这种权限限制,并且不需要任何新的或修改的或代码注入的服务。让 让我们先来看看创建新流程的问题。一个流程的父流程会调用createprocess,这是对的。对于uac来说,这将提升子进程的权限,这似乎有点奇怪。为了支持微软推出的vista中的最小特权原则,在创建新进程时明确指定一个父进程,这样特权增强的进程仍然是调用者的子进程。
通常,当uac打开时,您可以显示指定新进程的令牌。但是,如果不指定令牌,新进程将从父进程继承令牌。所以我们这样做的唯一要求就是获得父进程句柄的process_create_process权限。由于我们已经拥有了sedebugprivilege的特权,所以我们可以获得ti进程的全部特权,包括创建它的子进程的特权。这样做的额外好处是,在内核中创建进程的代码甚至会直接将正确的会话id分配给调用者,这样就可以创建交互式进程。我们利用这个特性,通过newwin32process使用ti服务的令牌在当前桌面上创建一个任意进程,并通过parentprocess参数传入process对象。
在不创建新进程的情况下模拟令牌也很有用。有什么办法可以实现吗?是的。我们可以使用ntimpersonatethread api,它允许从现有线程中捕获上下文,并可以应用于另一个线程。模拟上下文的过程是内核首先尝试捕获线程的令牌。如果线程没有令牌,内核将通过模拟复制与线程相关的进程的令牌。ntimpersonatethread api的美妙之处在于,当设置父进程时,您不需要 不需要访问令牌。它只需要thread_direct_impersonation来访问一个线程,我们只能通过使用sedebugprivilege来实现。因此,不生成新进程的模拟线程可以通过以下步骤获得:
至少使用process_query_information权限打开一个进程,并枚举其线程。
使用thread_direct_imp测试与他们的资源进行交互,比如使用沙盒工具来获取他们所拥有的资源,你可以使用本文提到的方法。
了解更多如何获得可信安装程序权限(如何获得可信安装程序权限)相关内容请关注本站点。
上一个:虎斑秋海棠的栽培技术
下一个:秋季泡普洱怎么喝养生?

怎么进oppo官方网站,OPPO手机真伪查询官方网站
i5 4690k配什么主板性价比高(i5 4690k配什么主板比较好ZOL问答)
HP06W2F4700T5E厚声高功率电阻,HPF1206-470R-1/2W
三星note系列怎么样
KmTBCr26G搅拌机叶片-硅熔胶铸造
安息茴香栽培技术
控制茶叶农药残留提高茶叶质量
怎样实现PLC断电数据保持
笔记本电脑 品牌 排行,笔记本电脑品牌排名
普洱茶的区分