Windows域渗透终极指南:RedTeaming_CheatSheet中的Domain Enumeration实战技巧
RedTeaming_CheatSheet是一份全面的渗透测试速查手册,汇集了大量在学习过程中积累的Windows域渗透命令和技术。本文将围绕其中的Domain Enumeration模块,为新手和普通用户提供一套简单易懂的实战技巧,帮助你快速掌握Windows域环境下的信息收集方法。## 一、Domain Enumeration基础认知 🧩Domain Enumeration(域枚举)
Windows域渗透终极指南:RedTeaming_CheatSheet中的Domain Enumeration实战技巧
RedTeaming_CheatSheet是一份全面的渗透测试速查手册,汇集了大量在学习过程中积累的Windows域渗透命令和技术。本文将围绕其中的Domain Enumeration模块,为新手和普通用户提供一套简单易懂的实战技巧,帮助你快速掌握Windows域环境下的信息收集方法。
一、Domain Enumeration基础认知 🧩
Domain Enumeration(域枚举)是Windows域渗透测试中的关键环节,它通过收集域内用户、组、计算机、策略等信息,为后续攻击提供重要依据。在RedTeaming_CheatSheet项目中,相关内容主要集中在windows-ad/Domain-Enumeration.md文件中,涵盖了从无认证到有认证的多种枚举方法。
核心工具介绍 🛠️
域枚举常用工具可分为PowerShell工具、原生命令和第三方工具三大类:
- PowerShell工具:如PowerView(windows-ad/Domain-Enumeration.md第20行)和SharpView,提供强大的域对象查询能力
- 原生命令:包括dsquery、net accounts等系统自带命令
- 第三方工具:如windapsearch、ldapsearch-ad等轻量级枚举工具
二、无认证枚举技巧 🔓
在没有任何凭证的情况下,依然可以尝试对域环境进行初步探测,主要通过LDAP匿名绑定实现。
1. 扫描LDAP端口
使用nmap扫描目标网段的389和636端口,定位可能的域控制器:
sudo nmap -p 389,636 <目标网段>
2. 测试匿名绑定
通过Python脚本测试是否允许匿名LDAP绑定:
from ldap3 import *
s = Server('<IP地址>', get_info=ALL)
c = Connection(s, '', '')
c.bind() # 若返回True则表示匿名绑定成功
3. 获取基础域信息
使用windapsearch工具获取域功能级别、用户列表和计算机列表:
# 获取域功能级别
python3 windapsearch.py --dc-ip <IP> -u "" --functionality
# 获取所有域用户
python3 windapsearch.py --dc-ip <IP> -u "" -U
# 获取所有计算机
python3 windapsearch.py --dc-ip <IP> -u "" -C
三、认证枚举实战 🚀
当拥有域内用户凭证后,可以进行更深入的域信息收集,主要通过PowerView和Active Directory模块实现。
1. 加载枚举工具
# 导入PowerView
. ./PowerView.ps1
# 导入AD模块
Expand-Archive ADModule-master.zip
Import-Module .\ADModule-master\ADModule-master\Microsoft.ActiveDirectory.Management.dll
Import-Module .\ADModule-master\ADModule-master\ActiveDirectory\ActiveDirectory.psd1
2. 域基础信息查询
# 获取当前域信息
Get-Domain
# 获取域SID
Get-DomainSID
# 获取域密码策略
Get-DomainPolicy
net accounts /domain
3. 用户和组枚举
# 获取所有用户
Get-DomainUser | select samaccountname
# 获取特定用户信息
Get-DomainUser -Username <用户名>
# 获取所有管理员组
Get-DomainGroup -GroupName *admin*
# 获取组成员
Get-DomainGroupMember -Groupname "Domain Admins" -Recurse
4. 计算机和共享枚举
# 获取所有计算机
Get-DomainComputer
# 按操作系统筛选计算机
Get-DomainComputer -OperatingSystem "*Windows 10*"
# 查找域内共享
Find-DomainShare -CheckShareAccess
# 查找敏感文件
Find-InterestingDomainShareFile -Verbose
5. GPO和OU枚举
# 获取所有GPO
Get-DomainGPO
# 获取应用于特定计算机的GPO
Get-DomainGPO -Computername <计算机名>
# 获取所有OU
Get-DomainOu -Fulldata
# 获取OU中的计算机
Get-DomainOu <OU名称> | %{Get-DomainComputer -ADSPath $_}
四、高级枚举技术 🔍
1. ACL权限分析
# 获取对象ACL
Get-DomainObjectAcl -Identity <对象名> -ResolveGUIDS
# 查找有趣的ACL
Find-InterestingDomainAcl -ResolveGUIDs
2. 域信任关系枚举
# 获取域信任
Get-DomainTrust
# 获取森林信息
Get-Forest
# 获取森林中的所有域
Get-ForestDomain
3. BloodHound自动化分析
BloodHound是一款强大的域关系分析工具,能直观展示域内权限关系:
# 收集数据
SharpHound.exe -c all
# 导入数据到BloodHound进行分析
五、总结与注意事项 ⚠️
Domain Enumeration是域渗透的基础,通过本文介绍的方法,你可以系统地收集域内关键信息。在实际操作中,建议优先使用windows-ad/Domain-Enumeration.md中记录的原生命令和PowerShell工具,减少第三方工具带来的检测风险。
记住,枚举过程中应遵循最小权限原则,避免对目标系统造成不必要的影响。RedTeaming_CheatSheet项目持续更新,建议定期查看最新版本以获取更多枚举技巧和命令。
要开始使用这份指南,你可以通过以下命令克隆项目:
git clone https://gitcode.com/gh_mirrors/red/RedTeaming_CheatSheet
通过不断实践这些Domain Enumeration技巧,你将能够快速掌握Windows域环境的信息收集方法,为后续渗透测试打下坚实基础。
更多推荐
所有评论(0)