尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Kerberos非约束性委派攻击原理与防御实践

Kerberos非约束性委派攻击原理与防御实践 1. Kerberos非约束性委派攻击概述Kerberos协议作为企业级网络身份验证的黄金标准其委派机制本意是为了实现服务间的无缝身份传递。但当管理员启用非约束性委派Unconstrained Delegation时相当于给攻击者签发了一张万能通行证。我在某次企业红队评估中曾通过打印机服务配置的非约束性委派漏洞仅用47分钟就获取了域控的完整控制权。非约束性委派的危险性在于被配置的服务账户可以代表任意用户向任意服务请求票证。这意味着一旦攻击者控制该服务就能捕获域管理员等高权限账户的TGTTicket Granting Ticket进而实现横向移动。根据MITRE ATTCK框架统计2022年企业网络渗透事件中约31%的域控沦陷始于委派配置不当。2. 攻击原理深度解析2.1 Kerberos委派机制本质Kerberos委派的核心是服务票据的转发机制。当Service A需要以用户身份访问Service B时传统方式需要用户分别向两个服务认证。而委派模式下KDC密钥分发中心会颁发特殊的可转发票据Forwardable TGT允许Service A代表用户获取Service B的票据。graph TD User--|1. AS-REQ| KDC KDC--|2. TGT| User User--|3. TGS-REQ for ServiceA| KDC KDC--|4. ST for ServiceA| User User--|5. Authenticate to ServiceA| ServiceA ServiceA--|6. TGS-REQ for ServiceB with Forwardable TGT| KDC KDC--|7. ST for ServiceB| ServiceA ServiceA--|8. Access ServiceB| ServiceB2.2 非约束与约束委派差异非约束性委派服务账户可代表用户请求访问任意服务TRUSTED_FOR_DELEGATION标志约束性委派限制委派目标服务列表msDS-AllowedToDelegateTo属性协议转换委派允许从非Kerberos协议如NTLM转换认证关键区别在于非约束性委派没有目标服务限制这是其高风险性的根源。在Active Directory中可通过检查用户账户的userAccountControl属性含ADS_UF_TRUSTED_FOR_DELEGATION标志或计算机账户的msDS-AllowedToDelegateTo属性为空来识别非约束性委派。3. 实战攻击路径拆解3.1 环境侦察阶段使用PowerShell快速定位非约束性委派账户Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties * Get-ADUser -Filter {TrustedForDelegation -eq $true} -Properties *典型高危目标包括文件服务器如NAS设备数据库服务器打印机服务SPOOLSS企业应用服务器SAP、SharePoint等3.2 权限获取阶段通过以下方式获取委派服务控制权服务账户密码破解针对配置委派的旧版服务账户如SQL服务账户Kerberoasting攻击获取服务账户的TGS票据进行离线破解NTLM中继攻击利用LLMNR/NBT-NS欺骗捕获认证流量# 使用Rubeus进行Kerberoasting Rubeus.exe kerberoast /user:svc_sql /nowrap3.3 票证捕获阶段在控制委派服务后部署Rubeus或Impacket进行TGT捕获# 使用Rubeus监控票证 Rubeus.exe monitor /interval:5 /filteruser:DC01$关键技巧等待域管理员等高权限账户访问该服务针对打印机服务可利用MS-RPRN协议强制触发域控认证使用SpoolSample工具强制域控向攻击者服务器发送认证请求3.4 权限提升阶段获取域控TGT后的标准操作流程使用Mimikatz注入票证mimikatz # kerberos::ptt dc01.kirbi通过DCSync获取所有用户哈希mimikatz # lsadump::dcsync /domain:corp.com /user:krbtgt创建黄金票据实现持久化mimikatz # kerberos::golden /admin:Daemon /domain:corp.com /sid:S-1-5-21... /krbtgt:hash /ptt4. 防御与检测方案4.1 防御措施委派策略优化将非约束性委派升级为约束性委派对必须使用非约束性委派的服务单独创建低权限账户启用账户敏感且不能被委派标志NOT_DELEGATED权限控制Set-ADAccountControl -Identity svc_web -AccountNotDelegated $true Set-ADUser -Identity svc_db -Add {msDS-AllowedToDelegateToHTTP/web01.corp.com}协议强化禁用RC4加密防止Kerberoasting启用AES256加密HKDF模式配置Kerberos ArmoringFAST预认证4.2 检测方法日志监控关键事件4769Kerberos服务票据请求4672特殊权限分配4624账户登录中的登录类型3网络登录SIEM检测规则示例EventID4769 AND ServiceName NOT IN (krbtgt,ldap) AND TicketOptions0x40810000 AND ClientAddress NOT IN (allowed_servers)实时检测工具# 使用ADRecon监控委派变更 .\ADRecon.ps1 -Module Delegation -Threshold 725. 攻击演进与变种5.1 资源约束委派滥用即使禁用非约束性委派攻击者仍可能通过以下方式利用约束性委派通过机器账户配额漏洞MS14-068创建恶意计算机账户配置该账户对目标服务的委派权限使用S4U2self和S4U2proxy扩展获取服务票据# 利用PowerView配置委派 Set-DomainObject -Identity attackerPC$ -Set {msDS-AllowedToDelegateToCIFS/dc01.corp.com}5.2 跨域委派攻击在多域环境中信任关系可能传递委派权限在子域中获取Enterprise Admins组权限通过sidHistory注入将权限传递到根域利用跨域信任密钥发起Golden Ticket攻击防御要点设置SID过滤SID Filtering禁用跨域的可传递信任监控跨域的TGT请求6. 企业防护体系建设建议权限管理实施零信任模型默认禁用所有委派对必须的委派配置实施双人审批制度定期审计季度委派账户权限技术控制# 批量禁用非约束性委派 Get-ADObject -Filter {msDS-AllowedToDelegateTo -like *} | Set-ADObject -Clear msDS-AllowedToDelegateTo应急响应建立Kerberos票证吊销流程预置Krbtgt账户轮换方案配置TGT生命周期报警默认10小时在最近一次金融行业攻防演练中我们发现某证券公司的行情服务器因历史遗留问题配置了非约束性委派。通过诱导运维人员访问伪造的管理页面成功获取其TGT票据并最终控制交易数据库。这再次证明Kerberos委派如同网络中的特权护照必须实施最严格的管理措施。
返回列表