Linux Active Directory

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Linuxマシンは、Active Directory環境内に存在することもあります。

AD内のLinuxマシンは、異なるCCACHEチケットをファイル内に保存している可能性があります。このチケットは、他のKerberosチケットと同様に使用および悪用できます。これらのチケットを読み取るには、チケットのユーザー所有者であるか、rootである必要があります。

列挙

LinuxからのAD列挙

Linux(またはWindowsのbash)でADにアクセスできる場合、ADを列挙するためにhttps://github.com/lefayjey/linWinPwnを試すことができます。

LinuxからADを列挙する他の方法を学ぶには、次のページを確認してください:

389, 636, 3268, 3269 - Pentesting LDAP

FreeIPA

FreeIPAは、主にUnix環境向けのMicrosoft Windows Active Directoryのオープンソース代替です。Active Directoryに類似した管理のために、完全なLDAPディレクトリとMIT Kerberosキー配布センターを組み合わせています。CAおよびRA証明書管理のためにDogtag Certificate Systemを利用し、スマートカードを含む多要素認証をサポートしています。Unix認証プロセスのためにSSSDが統合されています。詳細については、次を参照してください:

FreeIPA Pentesting

チケットの操作

パス・ザ・チケット

このページでは、Linuxホスト内でKerberosチケットを見つけることができるさまざまな場所を見つけることができます。次のページでは、これらのCCacheチケット形式をKirbi(Windowsで使用する必要がある形式)に変換する方法と、PTT攻撃を実行する方法を学ぶことができます:

Pass the Ticket

/tmpからのCCACHEチケットの再利用

CCACHEファイルは、Kerberos資格情報を保存するためのバイナリ形式で、通常は/tmpに600の権限で保存されます。これらのファイルは、ユーザーのUIDに関連する**名前形式krb5cc_%{uid}**で識別できます。認証チケットの検証には、**環境変数KRB5CCNAME**を希望するチケットファイルのパスに設定する必要があり、再利用を可能にします。

env | grep KRB5CCNAMEを使用して、認証に使用されている現在のチケットをリストします。形式はポータブルで、環境変数を設定することでチケットを再利用できますexport KRB5CCNAME=/tmp/ticket.ccacheを使用します。Kerberosチケットの名前形式はkrb5cc_%{uid}で、uidはユーザーのUIDです。

# Find tickets
ls /tmp/ | grep krb5cc
krb5cc_1000

# Prepare to use it
export KRB5CCNAME=/tmp/krb5cc_1000

CCACHE チケットの再利用とキーチェーン

プロセスのメモリに保存された Kerberos チケットは抽出可能です。特に、マシンの ptrace 保護が無効になっている場合(/proc/sys/kernel/yama/ptrace_scope)。この目的に役立つツールは https://github.com/TarlogicSecurity/tickey にあり、セッションに注入してチケットを /tmp にダンプすることで抽出を容易にします。

このツールを設定して使用するには、以下の手順に従います:

git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey
make CONF=Release
/tmp/tickey -i

この手順は、さまざまなセッションに注入を試み、抽出されたチケットを/tmp__krb_UID.ccacheという命名規則で保存することで成功を示します。

SSSD KCMからのCCACHEチケット再利用

SSSDは、/var/lib/sss/secrets/secrets.ldbのパスにデータベースのコピーを保持しています。対応するキーは、/var/lib/sss/secrets/.secrets.mkeyのパスに隠しファイルとして保存されています。デフォルトでは、キーはroot権限を持っている場合にのみ読み取ることができます。

**SSSDKCMExtractor **を--databaseおよび--keyパラメータで呼び出すと、データベースを解析し、秘密を復号化します。

git clone https://github.com/fireeye/SSSDKCMExtractor
python3 SSSDKCMExtractor.py --database secrets.ldb --key secrets.mkey

資格情報キャッシュKerberosブロブは、Mimikatz/Rubeusに渡すことができる使用可能なKerberos CCacheファイルに変換できます。

keytabからのCCACHEチケット再利用

git clone https://github.com/its-a-feature/KeytabParser
python KeytabParser.py /etc/krb5.keytab
klist -k /etc/krb5.keytab

/etc/krb5.keytab からアカウントを抽出する

サービスアカウントキーは、ルート権限で動作するサービスにとって不可欠であり、/etc/krb5.keytab ファイルに安全に保存されています。これらのキーは、サービスのパスワードに似ており、厳格な機密性が求められます。

keytabファイルの内容を確認するには、klist を使用できます。このツールは、特にキータイプが23として識別される場合に、ユーザー認証のためのNT Hashを含むキーの詳細を表示するように設計されています。

klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash

Linuxユーザーにとって、KeyTabExtract はRC4 HMACハッシュを抽出する機能を提供し、これをNTLMハッシュの再利用に活用できます。

python3 keytabextract.py krb5.keytab
# Expected output varies based on hash availability

macOSでは、**bifrost**はkeytabファイル分析のためのツールとして機能します。

./bifrost -action dump -source keytab -path /path/to/your/file

抽出したアカウントとハッシュ情報を利用して、crackmapexec のようなツールを使用してサーバーへの接続を確立できます。

crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"

参考文献

AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポートする

Last updated