域内 MS14-068 的利用
Kerberos 认证流程以及域内 MS14-068 的利用
Kerberos 认证流程
KDC(Key Distribution Center) 包含 AS(Authentication Server) 和 TGS(Ticket Granting Server).
一次完整的 Kerberos 请求需要 Client Server KDC 的共同参与, 故称为 Kerberos (三只狗头).
KRB_AS_REQ
Client 向 AS 发送用户名, 以用户 Hash 加密的时间戳及 Client 信息.
KRB_AS_REP
AS 检测用户名是否有效, 之后生成一串随机字符作为 session-key, 并发送以用户 Hash 加密的 session-key, 以 krbtgt Hash 加密的 session-key 和时间戳作为 TGT(Ticket Granting Ticket).
KRB_TGS_REQ
Client 通过用户 Hash 解密获得 session-key, 再将 TGT 与以 session-key 加密的时间戳发送给 TGS.
KRB_TGS_REP
TGS 通过 krbtgt Hash 解密获得 session-key 和时间戳并检测有效性, 然后发送以 Server Hash 加密的 session-key-1 作为 TGS Ticket(Service Ticket) 和以 session-key 加密的 session-key-1.
KRB_AP_REQ
Client 通过 session-key 解密获得 session-key-1, 并向 Server 发送 TGS Ticket 和以 session-key-1 加密的时间戳.
KRB_AP_REP
Server 通过 Server Hash 解密 TGS Ticket 获得 session-key-1, 之后再次解密得到时间戳, 最后验证有效性.
ms14-068
ms14-068 可将域内普通用户提升至域管理员权限. 其原理为在 Kerberos 认证流程中 Client 可拒绝向 AS 请求 PAC 以构造一份伪造的 PAC 欺骗 TGT.
pykek
通过 pykek 利用.
|
|
|
|
kekeo
通过 kekeo 利用.
|
|
|
|
利用时无须本地管理员权限. 域内用户也能通过以上两种方式 ptt.
注意如果在 windows 2003 中是无法通过 kerberos::ptt
和 kerberos::ptc
来导入凭据的.