企业域安全设置
在针对大型企业的域渗透过程会发现,普通域用户无法执行类似于net group "domain admins" /domain 和 net group "domain controllers" /domain的命令查询域管理员和域控等敏感组,会提示发生系统错误拒绝访问。这主要是由于目标企业针对域做了安全加固,设置了ACL限制了普通域用户对敏感用户组的查询。绕过方法也很简单,条条大道通罗马,可以换个方式来进行查询,可以使用powershell或者adfind工具换个方式来进行查询。
GREATER SNOW
配置ACL禁止普通域用户对敏感组的读取
这里的敏感组包括但不限于如下: - domain admins - domain controllers - enterprise admins - domain users - domain computers 这里我们假设有一个低权限的组,该OU内有test2和hack用户。现在要禁止该组内的所有用户对以上几个组的查询。
我们这里以domain admins组为例设置。 首先,这里查看——>高级功能
从Users里面找到Domain Admins组,右键——>属性
安全——>高级
点击添加
这里主体我们选择该低权限组,类型选择拒绝,然后确定。应用即可。
其他几个组的配置一样。 效果如图,通过如下命令查询直接提示拒绝访问。
通过adfind查询如下报错
通过ad explorer查询如下报错。
绕过办法
GREATER SNOW
Domain Admins、Enterprise Admins和Domain Users
针对Domain Admins的绕过,使用PowerView.ps1脚本的Get-Netuser方法,该方法会查询域内所有用户的详细信息,通过查询出的信息的memberof属性可以看到用户输入哪些组。全局过滤一下Domain Admins和Enterprise Admins即可。
Import-Module .\PowerView.ps1
Get-Netuser
或者使用adfind进行查询
#查询域管理员组
adfind.exe -f "memberof=CN=Domain admins,CN=Users,DC=xie,DC=com" -dn
#查询企业管理员组
adfind.exe -f "memberof=CN=enterprise admins,CN=Users,DC=xie,DC=com" -dn
GREATER SNOW
domain controllers
针对Domain Admins的绕过,使用PowerView.ps1脚本的Get-NetDomainController 方法
Import-Module .\PowerView.ps1
Get-NetDomainController
或者使用adfind进行查询
#查询域控名称
AdFind.exe -sc dclist
#查询域控版本
AdFind.exe -schema -s base objectversion
GREATER SNOW
domain computers
针对Domain computers的绕过,使用PowerView.ps1脚本的Get-NetComputer方法
Import-Module .\PowerView.ps1
Get-NetComputer
或者使用adfind进行查询
#查询域中所有机器,只显示dn
AdFind.exe -f "objectcategory=computer" dn
#查询域中所有机器,显示机器名和操作系统
AdFind.exe -f "objectcategory=computer" name operatingSystem