利用资源约束委派进行的提权攻击分析
2019-09-04
前言
国外安全研究员@elad_shamir在2019年一月底发表了一篇名为”Wagging the Dog: Abusing Resource-Based Constrained Delegation to Attack Active Directory”的文章,不同于以往利用无约束委派以及传统约束委派攻击,首次提出并详细介绍利用基于资源的约束委派进行活动目录攻击的方式。文中详细解释了该攻击发现过程,对协议的分析以及攻击原理,并给出不同场景下基于此攻击进行的远程代码执行,本地权限提升等操作。
ylzz总站线路检测M01N Red Team对基于该攻击的本地权限提升进行了研究和复现,并在此基础上结合PowerShell Remoting对进一步获得域管理员权限进行了分析探讨。
委派
委派(Delegation)是一种让用户可以委托服务器代表自己与其他服务进行验证的功能,它允许服务账户在活动目录中模拟其他域用户身份,主要用于当服务需要以某个用户的身份来请求访问其他服务资源的场景。委派分为无约束委派,传统的约束委派以及基于资源的约束委派。
无约束委派(Unconstrained Delegation)是一种风险性极大的委派方式,它通过TGT转发使服务器具有模拟用户的能力。服务账户根据用户发给自己的可转发的TGT代表用户请求其他任何服务,由此可知,一旦开启了无约束委派的服务账户被攻陷,用户身份将被滥用。已有较多分析无约束委派攻击利用的文章,在Windows的官方博客中也建议用户删除使用Kerberos无约束委派的账户。 本文在此不再做详细解释。
为了解决无约束委派的问题,微软更新发布了Kerberos协议拓展S4U,该拓展包含两个协议:传统的约束委派(Constrained Delegation,aka S4U2Proxy)和协议转换(Protocol Transition, aka S4U2Self).
S4U2Proxy (约束委派):
为了方便理解,本文在此假设A为IIS Web Server,B为SQL Server,A需要使用数据库B以支撑用户访问。通过设置约束委派,可以让A模拟用户,验证并访问B以获取相应的资源。