入口向日葵 RCE,省略,之后会在边界找到 Kim:p@ss1234 这个用户的信息,以此开始


查询到 Kim 这个用户不仅可以以 WINRM 的方式登录DC,也可以使用 WMI

使用 WMIEXEC 是被拒绝访问了,SMBEXEC 和 PSEXEC 大概率也是这样

在Windows上可以使用:https://github.com/adityatelange/evil-winrm-py,也可以安装 Ruby 带 DevKit 版本来进行Windows上的打包,中间修改密码的关系就省略了,详情可以看靶场的 WriteUp
设计的思路:
Kim:p@ss1234 -> 修改Jim的密码登录 winrm(Generic All) -> Jim可以强制修改mht的密码,但无法登录winrm(FocuseChangePasswd)-> mht对Tom(Generic Write权限)破解出来Tom的密码 -> Tom 委派到AD$ -> RBCD on SPN-less User -> AD Administrator

RBCD on SPN-less users,这就是为什么使用 GetUserSPNs.py 不能获取到Tom的Hash
可以看到 Tom 虽然对 AD 有 AllowedToAct 但是无法使用 getST 获取到服务票据


GetUserSPNs.py 设计初衷是 “枚举 + 请求真实 SPN”,Tom 在 SEC.LAB 域内没有SPN
接着使用 targetedKerberoast 枚举域内用户的哈希

最后使用 RBCD on Less SPN User 的打法获取到域管理员票据进行横向移动
获取一个没有 SPN 的、但被允许对目标机器进行委派的用户账户的 TGT(票据授予票据),并从中提取出该 TGT 的会话密钥(session key),将该用户账户的密码哈希替换为上一步中获得的 TGT 会话密钥,结合 S4U2self 和 U2U,使用这张服务票据(Pass-the-Ticket),以高权限用户的身份访问目标系统






















请登录后查看评论内容