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 命令用于列出当前用户的 Kerberos 票证信息。执行该命令后,它通常会显示票证的详细信息,例如票证的服务名称、客户端名称、有效时间范围、加密类型等。例如:
C:\Users\Administrator> klist tickets
当前登录 ID 是 0:0x112bdd
缓存的票证: (0)注意:具体的输出内容和格式可能会因操作系统、Kerberos 配置以及使用的工具版本而有所不同。
klist purge 命令用于清除当前系统内存中的 Kerberos 票据。Kerberos 票据是用于身份验证和授权的一种凭证。执行该命令后,系统将删除已存储的票据,这可能会导致需要重新进行身份验证才能访问某些需要 Kerberos 认证的资源。例如:
C:\Users\Administrator> klist purge
当前登录 ID 是 0:0x112bdd
删除所有票证:
已清除票证!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 命令用于显示 Kerberos 已联系的每个域的缓存首选域控制器列表。执行该命令后,它将列出 Kerberos 在与各个域进行交互时所缓存的首选域控制器的相关信息。例如:
C:\Users\Administrator> klist query_bind
当前登录 ID 是 0:0x112bdd
已成功查询 kerberos KDC 绑定缓存。
KDC 绑定缓存项: (0)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 命令用于删除指定域的缓存首选域控制器。执行该命令后,系统将清除与指定域相关的首选域控制器的缓存信息。这可能会导致在下次进行与该域的交互时,需要重新发现和建立与域控制器的连接。例如:
C:\Users\Administrator> klist purge_bind
当前登录 ID 是 0:0x112bdd
已成功清除 kerberos KDC 绑定缓存。