hacktricks/network-services-pentesting/pentesting-kerberos-88/harvesting-tickets-from-linux.md
2023-08-03 19:12:22 +00:00

5.4 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

在Linux上票据存储在凭证缓存或ccache中。有三种主要类型,用于指示票据的存储位置

  • 文件,默认情况下存储在**/tmp目录下,格式为krb5cc_%{uid}**。
  • 内核密钥环Linux内核提供的用于存储密钥的特殊空间。
  • 进程内存,仅当一个进程需要使用票据时使用。

要验证特定机器上使用的存储类型,必须检查**/etc/krb5.conf文件中的变量_default_ccache_name_ **默认情况下该文件对任何用户都具有读取权限。如果缺少此参数则其默认值为_FILE:/tmp/krb5cc_%{uid}_。

为了从其他两个来源(密钥环和进程)提取票据在2017年发布的一篇重要论文Kerberos Credential Thievery (GNU/Linux)中详细解释了从中恢复票据的方法。

密钥环 - 来自论文

Linux内核有一个名为密钥环的功能。这是内核中的一块内存区域,用于管理和保存密钥

keyctl系统调用在内核版本2.6.10 5中引入。这为用户空间应用程序提供了一个API,可用于与内核密钥环进行交互。

正在使用的密钥环的名称可以从具有默认情况下任何用户的读取权限八进制644Kerberos配置文件/etc/krb5.conf中解析出来。攻击者可以利用这些信息来搜索包含密钥环和提取票据 11。在一个密钥环中ccache被存储为组件。如图2所示文件ccache由3个不同的组件组成头部、默认主体和一系列凭证。密钥环保存默认主体和凭证。该脚本将这些组件转储到单独的文件中。然后使用攻击者合成的头部以正确的顺序组合这些部分,以重建文件ccache。然后可以将这个重建的文件转移到攻击者的机器上然后用于冒充Kerberos用户。生成有效ccache头部的简单程序可以在附录A.3中看到。

基于论文中的heracles.sh脚本你可以使用一个由完整文章的作者创建的C工具tickey,从密钥环中提取票据

/tmp/tickey -i

这些信息来自:https://www.tarlogic.com/en/blog/how-to-attack-kerberos/

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥