在无需密码的情况下,代表另一个用户获取 TGS
场景:你是本地管理员,并且有一个已登录的用户,你想要模拟(Impersonate)该用户!
链条:SeTcbPrivilege 允许你读取 LSA 存储,从 TGT 中提取会话密钥(SESSION KEY),并伪造一个请求来获取 TGS;你必须使用 LUID 而不是用户名。
目标:借助 Kerberos TGS 从本地管理员升级为域管理员
要求:本地管理员权限,并且有一个域管理员已登录(或处于断开状态)。在本指南中,域管理员用户为 CALIPENDULA\fagiolo
向 GIUDA 请求一个以 SYSTEM 身份运行的 shell
GIUDA -runaslsass 或者
GIUDA -runaspid:PID (NT AUTHORITY\SYSTEM 的 PID,请自行枚举)你需要一个以 SeTcpPrivilege 权限运行的 PID,仔细查找,也可以尝试 WINLOGON 的 PID!

让 GIUDA 显示所有已登录用户的 LUID
GIUDA -askluids

取出你想要模拟的 LUID,并让 GIUDA 获取你想要的 msdsspn

使用 PSSession 登录域控制器

可选地,你可以要求保存 TGS,并将其传递给下一步或另一台机器(也可以在 Linux 上使用,但仅当用户不需要 PREAUTH 时,因为你只有 TGS 而没有 TGT)

非常感谢 Erwan22,他为 Active Directory 编写了一套非常强大的 Pascal 单元。谢谢 Erwan22,你真的太棒了!