获取 Kerberos 票证文件

获取 Kerberos 票证文件

我正在尝试获取 Kerberos 票证作为文件。Kerberos 服务器是 FreeIPA。

当我使用kinit USERNAME电脑登录时,登录正常。当我使用查看票证时klist,它显示信息

Ticket cache: KEYRING:persistent:1000:1000
Default principal: [email protected]

Valid starting       Expires              Service principal
08/15/2020 22:36:12  08/16/2020 22:36:08  krbtgt/[email protected]

它似乎存储在密钥环中。我如何从该密钥环中获取文件?

答案1

KRB5CCNAME您可以通过环境变量或选项请求传统的基于文件的 ccache 格式-c

$ export KRB5CCNAME="FILE:/tmp/krb5cc_$UID"
$ kinit
$ hexdump -C /tmp/krb5cc_$UID

或者,如果您只对单个票证的内容感兴趣,您可以使用来keyctl提取它们(它们存储为单独的键):

$ pp=$(keyctl get_persistent @s)
$ keyctl show $pp
Keyring
 718513420 ---lswrv   2001 65534  keyring: _persistent.2001
 952719927 --alswrv   2001   100   \_ keyring: _krb
 986359066 --alswrv   2001   100       \_ user: krb_ccache:primary
1022423951 --alswrv   2001   100       \_ keyring: 2001
 741425749 --alswrv   2001   100           \_ user: __krb5_princ__
 350568129 --als-rv   2001   100           \_ big_key: krbtgt/[email protected]

记下最左边的列中的密钥 ID,然后使用:

$ keyctl pipe 350568129 | dumpasn1

最后,您可以使用 libkrb5 API 来遍历凭证和转储cred->ticket例子

相关内容