hacktricks/network-services-pentesting/pentesting-kerberos-88/harvesting-tickets-from-linux.md
2023-07-07 23:42:27 +00:00

7.1 KiB
Raw Blame History

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

Linuxでは、チケットは資格情報キャッシュまたはccacheに保存されます。3つの主要なタイプがあり、それぞれがチケットの場所を示しています

  • ファイルは、デフォルトでは**/tmp**ディレクトリの下に、**krb5cc_%{uid}**という形式で保存されます。
  • カーネルキーリングは、キーを保存するためにLinuxカーネル内に提供される特別な領域です。
  • プロセスメモリは、1つのプロセスだけがチケットを使用する場合に使用されます。

特定のマシンで使用されているストレージのタイプを確認するには、デフォルトの_ccache_name_変数を**/etc/krb5.conf**ファイルで確認する必要があります。デフォルトでは、このパラメータが欠落している場合、そのデフォルト値は_FILE:/tmp/krb5cc_%{uid}_です。

他の2つのソースキーリングとプロセスからチケットを抽出するためには、2017年に公開された優れた論文Kerberos Credential Thievery (GNU/Linux)が、それらからチケットを回復する方法を説明しています。

キーリング - 論文から

Linuxカーネルには、キーリングと呼ばれる機能があります。これは、キーを管理および保持するためにカーネル内に存在するメモリ領域です。

keyctlシステムコールは、カーネルバージョン2.6.10 5で導入されました。これは、ユーザースペースのアプリケーションがカーネルキーリングと対話するために使用できるAPIを提供します。

使用中のキーリングの名前は、デフォルトでは誰でも読み取り許可8進数644が有効になっているKerberos設定ファイル/etc/krb5.confから解析できます。攻撃者はこの情報を利用して、キーリングを含むチケットを検索し、チケットを抽出することができます。この機能を実装した概念実証スクリプトは、セクションA.2 (hercules.sh)で確認できます。キーリングでは、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 🎥