Skip to main content

用户与组

用户与组是域的重要组成部分,并且组是用户的容器,在同一个组里的用户具有特定的相同属性。对于用户和组的枚举,自然是我们首先要做的,因为很多漏洞和不当配置的利用都是围绕着用户与组、主机、服务等展开的。

 

准备工作

我们可以使用多种工具对域内的用于和组进行枚举,这里,我们使用 PowerView 脚本。我们可以通过 powershell-import 导入脚本,然后使用 powershell 或者 powerpick 命令进行脚本命令执行。

image.png

Web02 在 white-bird.local 域中,我们可以进而对该域进行枚举。虽然我们还没有正式学到域信任的概念,在课程介绍阶段,大家了解到 white-bird.local raven-med.local 域互相信任,当然也包括了 Web01 主机所在的 prod 子域。简单来说,可以互相访问对方域的资源,至少可以枚举对方域的域信息。例如,我们在 Web02 主机上以 white-bird\serveradm 的身份枚举到了 PROD 域中的所有域用户的账户名称,通过 -domain 指定要枚举的域。Web01 是一台 Linux 的域主机,如果一些学员对在 Linux 域主机的枚举还不熟悉的话,我们可以以这样的方式跨域枚举。

image.png

好了,补充了工具用法与简单的理论知识,我们来枚举域的用户与群组信息。

 

用户与组的枚举

在枚举域用户的时候,我们需要关注以下这些属性:


用户描述

虽然很多时候用户描述可能是空白的,但如果不是空白的话,用户描述可能会揭露域用户的角色。 如服务器管理员、开发人员等。

PowerView枚举:Get-NetUser | select description


是否禁用了预认证

如果某些域用户没有禁用了域认证 ,我们可以 使用ASREPRoasting 攻击他们并获取 krb5asrep 哈希。 如果幸运的话,我们有可能离线破解这些哈希并获得明文凭证。值得一提的是,在现代化的AD环境中,已经没有必要禁用域认证了,从安全与防御的角度出发,系统管理员应当给所有账户开启域认证。

PowerView枚举 Get-NetUser -PreAuthNotRequired


是否具有SPN

如果一个域用户具有 SPN,那么它是一个服务帐号。我们可以对它们进行 Kerberoasting 攻击并获取 krb5tgs 哈希。 如果幸运的话,我们可能离线破解这些哈希并获得用户的明文凭证。

PowerView枚举:Get-NetUser -SPN


组归属

每个域用户至少属于“域用户”组,但如果有任何域用户属于多个组,那么他们往往可能具有特别的权限,例如可以访问某台主机上的共享目录。

更适合通过BloodHound查看成员与组的关系,虽然使用SharpHound枚举的时候会带来迹象。


外部成员

如果一个外部成员被拿下了,我们可借此移动到该外部成员原来所在的域。

PowerView枚举:Get-DomainForeignUser


而在枚举组的时候,我们需要关注一下这些

组描述

类似于用户描述

PowerView描述:Get-NetGroup | select description


组类型

如果一个组并非是内置的,而是自定义的,例如Server Admins,那么我们需要多关注一下,因为这个组可能具有特定的权限,例如对SQL服务器具备本地管理员权限。

 

外部组

意义同外部成员。

PowerView枚举:Get-DomainForeignGroupMember