一、概述
通过前面章节已经从Workstation 2上的提升访问权限中获得了某些凭证材料,可以进行一些域探测为进一步横向移动做准备
本节主要介绍通过普通域用户进行信息枚举,使用不同工具获取域特定信息,后面章节介绍更加专业的域攻击(如域信任和GPO滥用等)
注意:进行域探测并不一定需要高完整性权限,在某些情况下(例如 SYSTEM)可能效果更差
二、PowerView
PowerView(https://github.com/PowerShellMafia/PowerSploit
)用于域枚举的强大工具,可以过powershell进行复杂的域信息收集
beacon> powershell-import C:\Tools\PowerSploit\Recon\PowerView.ps1
2.1 域名查询
使用-Domain参数查询当前域或指定域的域信息,包括域名、林名和域控制器
beacon> powershell Get-Domain
Forest : cyberbotic.io
DomainControllers : {dc-2.dev.cyberbotic.io}
Children : {}
DomainMode : Unknown
DomainModeLevel : 7
Parent : cyberbotic.io
PdcRoleOwner : dc-2.dev.cyberbotic.io
RidRoleOwner : dc-2.dev.cyberbotic.io
InfrastructureRoleOwner : dc-2.dev.cyberbotic.io
Name : dev.cyberbotic.io
2.2 域控查询
查询当前或指定域的域控制器
beacon> powershell Get-DomainController | select Forest, Name, OSVersion | fl
Forest : cyberbotic.io
Name : dc-2.dev.cyberbotic.io
OSVersion : Windows Server 2022 Datacenter
2.3 域林查询
使用-Forest参数查询当前林或指定林的所有域
beacon> powershell Get-ForestDomain
Forest : cyberbotic.io
DomainControllers : {dc-1.cyberbotic.io}
Children : {dev.cyberbotic.io}
DomainMode : Unknown
DomainModeLevel : 7
Parent :
PdcRoleOwner : dc-1.cyberbotic.io
RidRoleOwner : dc-1.cyberbotic.io
InfrastructureRoleOwner : dc-1.cyberbotic.io
Name : cyberbotic.io
Forest : cyberbotic.io
DomainControllers : {dc-2.dev.cyberbotic.io}
Children : {}
DomainMode : Unknown
DomainModeLevel : 7
Parent : cyberbotic.io
PdcRoleOwner : dc-2.dev.cyberbotic.io
RidRoleOwner : dc-2.dev.cyberbotic.io
InfrastructureRoleOwner : dc-2.dev.cyberbotic.io
Name : dev.cyberbotic.io
2.4 域策略查询
查询当前域或指定域/域控制器的默认域策略或域控制器策略,尤其关注域密码策略等信息
beacon> powershell Get-DomainPolicyData | select -expand SystemAccess
MinimumPasswordAge : 1
MaximumPasswordAge : 42
MinimumPasswordLength : 7
PasswordComplexity : 1
PasswordHistorySize : 24
LockoutBadCount : 0
RequireLogonToChangePassword : 0
ForceLogoffWhenHourExpire : 0
ClearTextPassword : 0
LSAAnonymousNameLookup : 0
2.5 域用户查询
查询所有或特定用户。使用-Properties参数可以返回特定属性信息。默认返回当前域的所有用户,使用-Identity参数返回特定用户信息
beacon> powershell Get-DomainUser -Identity jking -Properties DisplayName, MemberOf | fl
displayname : John King
memberof : {CN=Internet Users,CN=Users,DC=dev,DC=cyberbotic,DC=io, CN=Support
Engineers,CN=Users,DC=dev,DC=cyberbotic,DC=io}
上述结果表明 jking 是Support Engineers组的成员。域中的大多数权限都委托给域组,而不是单个用户。因此如果这个域组具有特权访问权限,那么其成员也拥有这些权限
注意:如果运行此命令时不带参数-Identity,需要等待一段时间才能返回所有域用户的数据
2.6 域主机查询
查询所有或特定的域主机
beacon> powershell Get-DomainComputer -Properties DnsHostName | sort -Property DnsHostName
dnshostname
-----------
dc-2.dev.cyberbotic.io
fs.dev.cyberbotic.io
sql-2.dev.cyberbotic.io
web.dev.cyberbotic.io
wkstn-1.dev.cyberbotic.io
wkstn-2.dev.cyberbotic.io
2.7 OU查询
查询所有或特定的组织单元(OU)
beacon> powershell Get-DomainOU -Properties Name | sort -Property Name
name
----
Domain Controllers
File Servers
Servers
SQL Servers
Web Servers
Workstations
2.8 域组查询
查询所有或特定域组信息
beacon> powershell Get-DomainGroup | where Name -like "*Admins*" | select SamAccountName
samaccountname
--------------
Domain Admins
Key Admins
DnsAdmins
MS SQL Admins
Studio Admins
2.9 域组成员查询
查询特定域组成员
beacon> powershell Get-DomainGroupMember -Identity "Domain Admins" | select MemberDistinguishedName
MemberDistinguishedName
-----------------------
CN=Nina Lamb,CN=Users,DC=dev,DC=cyberbotic,DC=io
CN=Administrator,CN=Users,DC=dev,DC=cyberbotic,DC=io
2.10 域组策略对象查询
查询所有或特定组策略对象 (GPO),GPO使用-ComputerIdentity参数枚举特定计算机的GPO
beacon> powershell Get-DomainGPO -Properties DisplayName | sort -Property DisplayName
displayname
-----------
Computer Certificates
Default Domain Controllers Policy
Default Domain Policy
LAPS
Proxy Settings
Server Admins
Vulnerable GPO
Windows Defender
Windows Firewall
Workstation Admins
2.11 域组策略对象查询
查询组名对应GPO名称,再查询这些GPO包括哪些计算机
beacon> powershell Get-DomainGPOLocalGroup | select GPODisplayName, GroupName
GPODisplayName GroupName
-------------- ---------
Workstation Admins DEV\Support Engineers
Server Admins DEV\Support Engineers
上面返回信息表明Support Engineers组被分配了对某些GPO包括的计算机具有本地访问权限,尽管 GPO名称中是具有本地管理员访问权限,但也可能是不同的本地组权限,例如远程桌面用户
2.12 获取域GPO用户与本地组关联信息
枚举特定域用户/组是在哪些计算机上具有管理员权限,可以用来查找具有本地管理员访问权限的域组
beacon> powershell Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName | fl
ObjectName : Support Engineers
GPODisplayName : Server Admins
ContainerName : {OU=Servers,DC=dev,DC=cyberbotic,DC=io}
ComputerName : {web.dev.cyberbotic.io, sql-2.dev.cyberbotic.io, fs.dev.cyberbotic.io}
ObjectName : Support Engineers
GPODisplayName : Workstation Admins
ContainerName : {OU=Workstations,DC=dev,DC=cyberbotic,DC=io}
ComputerName : {wkstn-1.dev.cyberbotic.io, wkstn-2.dev.cyberbotic.io}
上述结果表明Support Engineers域组在web、sql-2、fs、wkstn-1 和 wkstn-2计算机上具有本地管理员权限
2.13 域信任查询
查询当前或特定域的所有域信任关系
beacon> powershell Get-DomainTrust
SourceName : dev.cyberbotic.io
TargetName : cyberbotic.io
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST
TrustDirection : Bidirectional
WhenCreated : 8/15/2022 4:00:00 PM
WhenChanged : 8/15/2022 4:00:00 PM
SourceName : dev.cyberbotic.io
TargetName : dev-studio.com
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection : Inbound
WhenCreated : 8/16/2022 9:52:37 AM
WhenChanged : 8/16/2022 9:52:37 AM
三、SharpView
SharpView(https://github.com/tevora-threat/SharpView)PowerView 的 C#
移植版,与powershell版本功能基本一致,但不具备与管道功能
beacon> execute-assembly C:\Tools\SharpView\SharpView\bin\Release\SharpView.exe Get-Domain
Forest : cyberbotic.io
DomainControllers : {dc-2.dev.cyberbotic.io}
Children : {}
DomainMode : Unknown
DomainModeLevel : 7
Parent : cyberbotic.io
PdcRoleOwner : dc-2.dev.cyberbotic.io
RidRoleOwner : dc-2.dev.cyberbotic.io
InfrastructureRoleOwner : dc-2.dev.cyberbotic.io
Name : dev.cyberbotic.io
四、ADSearch
ADSearch(https://github.com/tomcarver16/ADSearch
)与 PowerView 和 SharpView 相比, ADSearch 的内置搜索功能较少,但它允许指定自定义轻量级目录访问协议 (LDAP) 搜索。这些搜索可用于识别目录中符合给定条件的信息
例如,搜索所有objectCategory为user的对象
beacon> execute-assembly C:\Tools\ADSearch\ADSearch\bin\Release\ADSearch.exe --search "objectCategory=user"
[*] No domain supplied. This PC's domain will be used instead
[*] LDAP://DC=dev,DC=cyberbotic,DC=io
[*] CUSTOM SEARCH:
[*] TOTAL NUMBER OF SEARCH RESULTS: 10
[+] cn : Administrator
[+] cn : Guest
[+] cn : krbtgt
[+] cn : CYBER$
[+] cn : Bob Farmer
[+] cn : John King
[+] cn : Nina Lamb
[+] cn : MS SQL Service
[+] cn : Squid Proxy
[+] cn : STUDIO$
可以使用过滤器进一步限制查询结果。例如,搜索所有以单词“admins”结尾的域组
beacon> execute-assembly C:\Tools\ADSearch\ADSearch\bin\Release\ADSearch.exe --search "(&(objectCategory=group)(cn=*Admins))"
[*] No domain supplied. This PC's domain will be used instead
[*] LDAP://DC=dev,DC=cyberbotic,DC=io
[*] CUSTOM SEARCH:
[*] TOTAL NUMBER OF SEARCH RESULTS: 5
[+] cn : Domain Admins
[+] cn : Key Admins
[+] cn : DnsAdmins
[+] cn : MS SQL Admins
[+] cn : Studio Admins
可以使用AND、OR 和 NOT 条件使这些条件更加复杂。可以使用--full参数返回所有属性,也可以使用--attributes参数返回特定属性
beacon> execute-assembly C:\Tools\ADSearch\ADSearch\bin\Release\ADSearch.exe --search "(&(objectCategory=group)(cn=MS SQL Admins))" --attributes cn,member
[*] TOTAL NUMBER OF SEARCH RESULTS: 1
[+] cn : MS SQL Admins
[+] member : CN=Developers,CN=Users,DC=dev,DC=cyberbotic,DC=io
使用json参数还可用于以 JSON 格式格式化输出
[
{
"cn": "MS SQL Admins",
"member": "CN=Developers,CN=Users,DC=dev,DC=cyberbotic,DC=io"
}
]
标签:系列,cn,渗透,DC,dev,探测,Admins,io,cyberbotic From: https://www.cnblogs.com/o-O-oO/p/18373300原创 高级红队专家