Java 工具集教程

klist.exe 本地凭据缓存

klist.exe 是 Java 安全管理工具之一,它主要用于显示本地凭据缓存和密钥表中的条目。

在使用 kinit 工具修改凭据缓存或使用 ktab 工具修改密钥表后,可以通过 klist 工具来查看这些更改。其作用是验证对凭据缓存或密钥表所做的修改。

例如:在没有提供任何参数的情况下运行 klist 命令时,它将检索当前登录用户的票证,并显示相关信息,如服务名称、客户端名称和域名、加密类型、票证标志、开始时间和结束时间等。

C:\Users\Administrator>klist

当前登录 ID 是 0:0x112bdd

缓存的票证: (0)

命令语法

可以在命令行中输入 klist /? 查看命令的帮助文档,如下:

C:\Users\Administrator> klist /?

用法: klist.exe [command]

命令列表:
  [tickets] [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
  tgt [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
  purge [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
  sessions [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
  kcd_cache [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
  get <SPN> [-lh <LogonId.HighPart>] [-li <LogonId.LowPart>]
            [-kdcoptions <options>] [-cacheoptions <options>]
  add_bind <DOMAIN> <DC>
  query_bind
  purge_bind
  cloud_debug

注意:具体的参数和用法可能会因 Java 版本和操作系统而有所不同。

命令实例

klist tickets 命令

klist tickets 命令用于列出当前用户的 Kerberos 票证信息。执行该命令后,它通常会显示票证的详细信息,例如票证的服务名称、客户端名称、有效时间范围、加密类型等。例如:

C:\Users\Administrator> klist tickets

当前登录 ID 是 0:0x112bdd

缓存的票证: (0)

注意:具体的输出内容和格式可能会因操作系统、Kerberos 配置以及使用的工具版本而有所不同。

klist purge 命令

klist purge 命令用于清除当前系统内存中的 Kerberos 票据。Kerberos 票据是用于身份验证和授权的一种凭证。执行该命令后,系统将删除已存储的票据,这可能会导致需要重新进行身份验证才能访问某些需要 Kerberos 认证的资源。例如:

C:\Users\Administrator> klist purge

当前登录 ID 是 0:0x112bdd
        删除所有票证:
        已清除票证!

klist sessions 命令

klist sessions 命令用于列出当前计算机上的所有登录会话信息。执行该命令后,它将显示每个会话的相关详细信息,例如会话 ID(LogonID)等。如下:

C:\Users\Administrator> klist sessions

当前登录 ID 是 0:0x112bdd
[0] 会话 0 0:0x281dc4 IIS APPPOOL\wwwroot Negotiate:Service
[1] 会话 1 0:0x112bdd HXSTRIVE\Administrator NTLM:Interactive
[2] 会话 0 0:0x3e3 NT AUTHORITY\IUSR Negotiate:Service
[3] 会话 1 0:0x1a34e Window Manager\DWM-1 Negotiate:Interactive
[4] 会话 1 0:0x1a32c Window Manager\DWM-1 Negotiate:Interactive
[5] 会话 0 0:0x3e5 NT AUTHORITY\LOCAL SERVICE Negotiate:Service
[6] 会话 1 0:0x1567b Font Driver Host\UMFD-1 Negotiate:Interactive
[7] 会话 0 0:0x3e4 WorkGroup\HXSTRIVE$ Negotiate:Service
[8] 会话 0 0:0xd45c Font Driver Host\UMFD-0 Negotiate:Interactive
[9] 会话 0 0:0xd02f \ NTLM:(0)
[10] 会话 0 0:0x3e7 WorkGroup\HXSTRIVE$ NTLM:(0)

如果想查看特定会话的信息,可以在命令中指定会话 ID,如“klist sessions -LogonID <具体的会话 ID>”,如下:

C:\Users\Administrator> klist sessions -lh 1

当前登录 ID 是 0:0x112bdd
目标登录 ID 是 0x1:0
调用登录 ID (0x1:0)上的 API LsaGetLogonSessionData 时出错: 0x520

klist 失败,原因为 0xc000005f/-1073741729: 指定的登录会话不存在。可能已被终止。

klist query_bind 命令

klist query_bind 命令用于显示 Kerberos 已联系的每个域的缓存首选域控制器列表。执行该命令后,它将列出 Kerberos 在与各个域进行交互时所缓存的首选域控制器的相关信息。例如:

C:\Users\Administrator> klist query_bind

当前登录 ID 是 0:0x112bdd
已成功查询 kerberos KDC 绑定缓存。

KDC 绑定缓存项: (0)

klist cloud_debug 命令

klist cloud_debug 命令通常用于显示与云Kerberos信任相关的调试信息。

执行该命令后,它可能会列出一些有关Kerberos票证(Ticket)的详细信息,例如可用的云主要票证(Cloud Primary TGT)等。通过查看这些信息,可以帮助确定云Kerberos信任的配置是否成功,以及是否能够获取到用于访问特定资源的有效票证。例如:

C:\Users\Administrator> klist cloud_debug

当前登录 ID 是 0:0x112bdd
Cloud Kerberos Debug info:
Cloud Kerberos enabled by policy: 0
AS_REP callback received: 0
AS_REP callback used: 0
Cloud Referral TGT present in cache: 0
SPN oracle configured: 0
KDC proxy present in cache: 0
Public Key Credential Present: 0
Password-derived Keys Present: 0
Plaintext Password Present: 0
AS_REP Credential Type: 0
CloudAP call failed with 0xc000005f
klist 失败,原因为 0xc000005f/-1073741729: 指定的登录会话不存在。可能已被终止。

klist purge_bind 命令

klist purge_bind 命令用于删除指定域的缓存首选域控制器。执行该命令后,系统将清除与指定域相关的首选域控制器的缓存信息。这可能会导致在下次进行与该域的交互时,需要重新发现和建立与域控制器的连接。例如:

C:\Users\Administrator> klist purge_bind

当前登录 ID 是 0:0x112bdd
已成功清除 kerberos KDC 绑定缓存。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号