在上一节,我们深入探讨了 Windows 文件权限的理论基础:访问控制列表和 访问控制项,并了解了 BUILTINUsers
、Everyone
和 Authenticated Users
这些内置账户的特殊性。然而,理解只是第一步。要真正将这些概念应用于安全审计或开发实践,我们需要一个编程接口来操作这些抽象的权限。
此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。
本文内容部分节选自小报童《.NET 剖析ACL & ACE 与内置账户》,完整的文章内容请加入小报童后订阅查看。现在限时只需69元,永久买断!目前已有300+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!
免责声明:此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。任何未经授权的网络渗透、入侵或对他人网络破坏的活动而造成的直接或间接后果和损失,均由使用者为自身的行为负责并承担全部的法律和连带责任,与本号及作者无关,请务必遵循相关法律法规。本文所提供的工具仅用于学习和本地安全研究和测试,禁止用于其他方面。
在 .NET 中,文件权限信息调用通过静态方法 File.GetAccessControl()
。可以把它想象成一把钥匙,用于打开文件的“安全锁”,获取其内部的权限设置。
2.1 FileSecurity
FileSecurity 代表了文件的安全描述符,可以把它看作是一个容器,里面装着该文件的所有权限规则。 该对象包含了文件的 ACL,它不直接告诉你有哪些权限,而是提供了一系列方法,让你能够查询和管理这些权限规则。
IdentityReference owner = fileSecurity.GetOwner(typeof(NTAccount));Console.WriteLine(owner.Value);
还可以通过 FileSecurity.GetGroup() 方法获取文件的组信息,在 Windows 文件中,组的作用非常有限,通常不像 Linux/Unix 那样重要。
最重要的还是 GetAccessRules() 方法,它是 FileSecurity 类中的一个核心方法,通常会返回一个集合,这个集合里包含了文件的所有访问控制项ACE。这个方法就像是让你查看一个权限清单。每条 ACE 都是清单上的一行,详细说明了“谁被赋予了什么权限”。
2.2 AccessRule
FileSystemAccessRule 是 .NET 中用于管理文件和文件夹权限的核心组件,代表了文件或文件夹的单个访问控制规则(Access Control Entry, ACE)。我们可以把 FileSystemAccessRule 看作是 Windows 权限列表中的一行记录。
在 .NET 中,通常不会直接创建 FileSystemAccessRule 对象。相反,一般情况下会通过 FileSecurity 对象的 GetAccessRules() 方法来获取一个 FileSystemAccessRule 对象的集合。
2.3 实战解析
我们以获取 "C:windowssystem32calc.exe" 文件为例,具体代码如下所示。
string file =@"C:windowssystem32calc.exe";FileSecurity fileSecurity = File.GetAccessControl(file);IdentityReference owner = fileSecurity.GetOwner(typeof(NTAccount));Console.WriteLine($"Owner: {owner.Value}");AuthorizationRuleCollection rules = fileSecurity.GetAccessRules(true,true,typeof(NTAccount));foreach(FileSystemAccessRule rule in rules){Console.WriteLine($"User/Group: {rule.IdentityReference.Value}, Rights: {rule.FileSystemRights}, Access: {rule.AccessControlType}");}
运行后返回如下图所示的结果信息,其中,Synchronize 是 Windows 内核对象的同步权限。
综上,FileSecurity 就像文件的权限清单,而 FileSystemAccessRule 就是清单里的具体一条规则。搞明白这两个类,就能在安全里读懂一个文件到底谁能访问、能做什么,甚至还能改掉这些规则。想要了解完整或者更多的内网安全方向的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。
1) .NET 安全防御绕过2) .NET 本地权限提升3) .NET 内网信息收集4) .NET 内网代理通道5) .NET 内网横向移动6) .NET 目标权限维持7) .NET 数据传输外发8) .NET 目标痕迹清理
原价899,现在限时只需69元,永久买断!目前已有300+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!
每增加五十人涨价10元,抓紧订阅,超值!订阅后请关注公众号:dotNet安全矩阵,发送订单截图和您的微信号,邀请您加入专属交流群。感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者扫描下方海报微信二维码加入即可,订阅后小报童定时会将最新内容通过微信推送给您。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...