探讨Windows SeRelabelPrivilege特权滥用的危害
2024-9-9 09:8:23 Author: mp.weixin.qq.com(查看原文) 阅读量:0 收藏

今天我们来探讨一个近期在安全评估中发现的有趣问题——SeRelabelPrivilege 的滥用。这个特权在某些组策略中被授予了内置的 Users 组,并应用于多个计算机账户。对这种特权我感到非常好奇,因此决定深入研究其潜在影响和可能的滥用场景。
根据微软的文档,拥有 SeRelabelPrivilege 权限的用户可以改变文件或进程的完整性级别,从而提升或降低其安全性。
我决定进行实验来探究这个特权的实际效果。首先,我通过组策略将 SeRelabelPrivilege 分配给一个标准用户:
发现该特权只在高完整性级别下可用。
经过一系列测试,我发现这个特权实际上允许用户获取资源的所有权,包括那些完整性级别比用户更高的资源。
获得所有权后,用户可以赋予自己对资源的完全控制,这与滥用 SeDebugPrivilege 的效果类似。
我的目标是取得 SYSTEM 进程的所有权,授予自己完全控制权,然后在 NT AUTHORITY\SYSTEM 账户下创建一个进程。
为此,我创建了一个简单的概念验证(POC):   
首先,我需要获取当前用户 SID 并启用特定权限:
这里需要以WRITE_OWNER访问权限打开该进程。在 SetSecurityInfo 调用中,这里必须要有“LABEL_SECURITY_INFORMATION”标志,否则就无法拥有高级别的进程。
一旦获得了所有权,就可以完全控制该进程:    
上面我们通过一段简单的实验代码成功地获取了 SYSTEM 进程的所有权,并在 NT AUTHORITY\SYSTEM 帐户下创建了一个新进程。
接下来让我们看看它是否有效。
这里7116 是 winlogon 进程,它在系统完整性下运行,归 SYSTEM 所有:
所有权已更改,并成功授予了完全控制权:   
那么这里滥用这个功能的最简单方法是执行父进程注入。
最终获得 SYSTEM 访问权限。

结论

总结来说,SeRelabelPrivilege 允许用户即使在完整性级别更高的情况下也能获取资源的所有权,并赋予自己完全访问权限。这种特权的滥用结果与 Debug Privilege 十分相似,而微软为何实现这一特权仍然是一个谜。   

文章来源: https://mp.weixin.qq.com/s?__biz=MzUzMDUxNTE1Mw==&mid=2247508163&idx=1&sn=731dd45dcfbf1c49ad5be3f3c8ce4f56&chksm=fa52757dcd25fc6b532a569960d5253c87cbf01fa85ac2343e6bfa9c1b99a7ff1d1adde98d5a&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh