我正在学习 AD 渗透测试,正在寻找一种方法来枚举用户的权限。
注意:- 这里我所说的权限指的是安全选项卡中的权限。
那么,有没有什么工具或方法可以枚举用户拥有哪些权限?我没有找到枚举的方法,也许没有办法。
答案1
首先,用户帐户的“安全选项卡”列举了权限因此,而不是帐户在环境中拥有的权限。理解这个非常基本的原则对于试图渗透 Active Directory 并识别和理解特定实现中的漏洞的人来说至关重要。
另一个需要理解的关键点是,Active Directory 本身并不是权限的中央存储库。也就是说,虽然 Active Directory 中有很多 WHO 和 WHAT,但它并不是 WHO 可以访问 WHAT 的数据库(实际数据库对象本身除外)。虽然它可以用来提供这些信息,但它要求在设计和管理时精确地考虑到这一目标,并严格遵守维护;然而,这种情况并不常见。
由于您要执行渗透测试,因此您可能会尝试在各种环境中执行这些测试,这些环境的组成、结构和组织都不在您的控制范围内,因此您会经常遇到未得到维护的目录。
每个资源都有自己的 ACL。此外,我们谈论的不仅仅是文件共享上的 ACL,还有目录对象、打印机、文件系统等。这些帐户也可以是本地组的成员(如前所述),并且可以在成员计算机上委派用户权限——更不用说成员计算机上的特定文件系统权限条目,而这些条目不会直接由文件共享公开。对虚拟机管理程序、存储设备、交换机、防火墙和其他网络设备的访问也可以通过 Active Directory 身份验证进行控制。
这甚至没有进入受信任林、LDAP 认证的应用程序(如内部 Web 服务或应用程序)、数据库、联合登录等的访问范围。
因此,从本质上讲,你的问题的答案是一般来说,人们无法(轻易)列举出授予特定用户帐户的所有访问权限的完整列表,而且我认为这可能超出了 Active Directory 渗透测试的范围。
答案2
我无法发表评论,因此我将将其作为答案发布。
我认为只有两种方法可以做你想做的事:
- 获取用户的所有组。如果您知道每个组的 ACL 是什么,那么您将拥有自己的列表。这意味着您需要已经了解基础架构。
- 编写一个脚本来列出所有地方的所有东西(不仅是文件 ACL,还有机器上管理员组中的组等...)。我想这会非常复杂,你需要某种 AI。也许是 Splunk?我真的不知道它能做什么。