我经常使用openssl s_client
它来测试和调试 SSL 连接(到 LDAPS 或 HTTPS 服务)。它允许我将问题隔离到 SSL,而不会受到任何干扰。
我想对 Kerberos 做类似的事情。我想进行一个小测试,它将显示:
- 初始机器登录(计算机帐户)
- 用户请求服务的初始 AS 请求
- 用户获取票证的 Kerberos 交换
- (可选)发送给服务的请求
如果我在 KDC 上运行 Wireshark,我可以执行步骤 1、2 和 3,但这通常不是一个选项。如果我在客户端上监控流量,我可以设法捕获步骤 2、3 和 4。
是否有工具可以让我捕获从计算机帐户开始的每个 Kerberos 登录步骤,而无需在 KDC 上运行 Wireshark?
答案1
我将继续提交我之前的评论作为答案。我希望这正是原帖作者想要的。
正如您所知,您可以使用 klist.exe 来清除您的 Kerberos 票证。
因此,启动 Wireshark 并开始跟踪。然后清除您的 Kerberos 票证。然后在命令提示符中键入net stop netlogon & net start netlogon
。(或者执行类似尝试访问网络文件共享的操作。)这将导致计算机从 KDC/域控制器请求新的 Kerberos 票证。现在停止您的 Wireshark 跟踪。您已成功捕获包含域成员和域控制器之间交互的网络跟踪。
答案2
更新:这个答案是 *nix 特定的,问题是关于 Windows 的。为了以防万一,将其保留以供将来参考。
您可以使用:
kdestroy
取消你的旧票kinit
申请 TGTkvno
请求服务票,例如kvno host/$(hostname -f)
哦,而且klist
不允许您清除缓存。它显示您已获得的票。