1. 域内安全攻防的认知边界突破
在传统企业内网安全建设中,Kerberos认证和ACL访问控制往往被视为"铁壁铜墙"般的基础防护机制。许多蓝队成员认为只要正确配置了这些机制,就能有效防御大部分内网横向移动行为。但现实中的红队行动证明,这种认知存在严重误区——2023年某大型金融企业渗透测试中,攻击者仅用3小时就通过Kerberos票据伪造突破了ACL防线。
域环境中的安全对抗本质上是身份信任体系的博弈。Kerberos作为微软Active Directory的认证核心,其TGT(Ticket Granting Ticket)和ST(Service Ticket)机制在红队眼中并非不可逾越的屏障,而是充满可能性的攻击面。比如黄金票据(Golden Ticket)攻击利用krbtgt账户的NTLM哈希伪造TGT,可以完全绕过Kerberos的身份验证流程。
ACL访问控制列表同样存在认知偏差。多数管理员认为ACL条目配置完成就万事大吉,却忽略了以下几个致命盲点:
- 继承权限的级联漏洞(如子容器意外继承父容器写权限)
- 特殊权限位的组合利用(如WriteDACL+WriteOwner的组合)
- 隐藏的SID历史属性导致的权限逃逸
2. Kerberos协议的攻击面深度解析
2.1 票据伪造的三种实战形态
黄金票据攻击需要先获取krbtgt账户的哈希,这通常通过域控提权或DCSync攻击实现。关键参数包括:
- 域SID(如S-1-5-21-3623811015-3361044348-30300820)
- krbtgt的AES256密钥(对Windows Server 2012以上版本更有效)
- 票据有效期(建议设置为10年避免频繁更新)
白银票据(Silver Ticket)则针对特定服务,如CIFS或LDAP。与黄金票据不同,它只需要服务账户的NTLM哈希,但只能访问特定资源。实战中常用来绕过MFA(多因素认证),因为票据验证发生在服务端。
钻石票据(Diamond Ticket)是近年出现的高级技术,结合了黄金票据的持久性和白银票据的隐蔽性。通过修改PAC(Privilege Attribute Certificate)中的签名算法字段,可以绕过某些EDR的检测。
2.2 Kerberoasting的现代变种
传统Kerberoasting通过请求SPN服务票据后离线破解,但现代防御体系已能有效检测TGS-REQ异常请求。进化后的技术包括:
- 定时爆破(将破解过程分散在72小时以上)
- 票据加密方式降级(强制使用RC4_HMAC_MD5)
- 基于LDAP的属性过滤(只针对高权限服务账户)
# 隐蔽型Kerberoasting示例(需域用户权限) $search = New-Object DirectoryServices.DirectorySearcher([ADSI]"") $search.Filter = "(&(objectCategory=user)(servicePrincipalName=*)(!userAccountControl:1.2.840.113556.1.4.803:=2))" $results = $search.FindAll() foreach($result in $results) { $user = $result.GetDirectoryEntry() Add-Type -AssemblyName System.IdentityModel New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList $user.servicePrincipalName[0] }3. ACL攻击链的构造艺术
3.1 权限继承的致命组合
域内ACL的继承体系存在逻辑悖论:为了方便管理开启的权限继承,可能造成子OU获得危险权限。典型攻击路径:
- 通过BloodHound识别具有GenericAll权限的账户
- 查找该账户有WriteDACL权限的父容器
- 利用继承关系获得子对象的完全控制权
# 使用BloodHound收集ACL关系 SharpHound.exe --CollectionMethod ACL,Container --Domain corp.com3.2 重置SID历史的权限魔术
当域内存在跨域信任关系时,SID历史属性可能保留原域的权限。攻击者通过以下步骤实现权限提升:
- 获取源域中Domain Admins组的SID(如S-1-5-21-4151243773-3058319020-2720227554-512)
- 在目标域中修改用户对象的SIDHistory属性
- 通过Kerberos协议申请包含新SID的TGT
防御要点:启用域级策略"网络安全:限制NTLM:添加远程服务器例外"可部分缓解此类攻击
4. 防御体系的进阶建设方案
4.1 Kerberos加固的四个维度
密钥体系升级
- 强制使用AES256加密(禁用RC4)
- 定期轮换krbtgt账户密码(每180天至少两次)
票据监控策略
<!-- 组策略设置示例 --> <ComputerConfiguration> <WindowsSettings> <SecuritySettings> <Kerberos> <LogLevel>2</LogLevel> <MaxTicketAge>600</MaxTicketAge> </Kerberos> </SecuritySettings> </WindowsSettings> </ComputerConfiguration>PAC验证强化
- 启用KDC签名验证(RequireStrictKDCValidation)
- 部署具备PAC校验能力的EDR方案
协议行为分析
- 基线化正常TGS-REQ请求频率
- 监控异常加密类型降级行为
4.2 ACL防御的纵深配置
实施最小权限原则时需要特别注意:
- 禁用容器继承时使用"仅保留显式条目"选项
- 对关键组(如Domain Admins)设置拒绝删除的权限
- 定期使用脚本审计ACL配置:
Get-Acl -Path "AD:\OU=Servers,DC=corp,DC=com" | Select-Object -ExpandProperty Access | Where-Object { $_.IdentityReference -like "*\*" } | Format-Table IdentityReference,AccessControlType,ActiveDirectoryRights -AutoSize5. 红队视角的对抗升级
现代攻防演练中,高级红队会采用时间差攻击策略:
- 在维护窗口期植入黄金票据(利用备份操作时的DCSync机会)
- 通过合法的管理操作(如PAM系统)掩盖ACL修改行为
- 利用云同步服务的延迟特性实现权限持久化
防守方需要建立三维检测体系:
- 时间维度:对比Kerberos票据签发时间与登录事件的时间戳
- 空间维度:关联不同系统间的访问路径异常跳转
- 行为维度:分析权限使用频率的统计学异常
在最近一次金融行业攻防演练中,某团队通过分析Exchange服务器上的ACL修改日志,成功发现攻击者通过"邮箱完全访问权限"到"域管理员权限"的隐蔽升级路径。这证明传统基于签名的检测已不足以应对现代域内攻击。