External Forest Domain - One-Way (Outbound)
このシナリオでは、あなたのドメインが異なるドメインのプリンシパルにいくつかの権限を信頼しています。
列挙
アウトバウンドトラスト
Trust Account Attack
セキュリティの脆弱性は、ドメイン A とドメイン B の間に信頼関係が確立されるときに存在します。ここで、ドメイン B はドメイン A に対して信頼を拡張します。この設定では、ドメイン B のためにドメイン A に特別なアカウントが作成され、これは2つのドメイン間の認証プロセスにおいて重要な役割を果たします。このアカウントはドメイン B に関連付けられており、ドメイン間でサービスにアクセスするためのチケットを暗号化するために使用されます。
ここで理解すべき重要な点は、この特別なアカウントのパスワードとハッシュが、コマンドラインツールを使用してドメイン A のドメインコントローラーから抽出できるということです。このアクションを実行するためのコマンドは次のとおりです:
この抽出は、名前の後に**$が付いたアカウントがアクティブであり、ドメインAの「Domain Users」グループに属しているため、これに関連する権限を継承しているため可能です。これにより、個人はこのアカウントの資格情報を使用してドメインA**に対して認証することができます。
警告: この状況を利用して、ユーザーとしてドメインAに足場を築くことは可能ですが、権限は限られています。しかし、このアクセスはドメインAでの列挙を行うには十分です。
ext.local
が信頼するドメインで、root.local
が信頼されたドメインであるシナリオでは、root.local
内にEXT$
という名前のユーザーアカウントが作成されます。特定のツールを使用することで、Kerberos信頼キーをダンプし、root.local
内のEXT$
の資格情報を明らかにすることが可能です。これを達成するためのコマンドは次のとおりです:
これに続いて、抽出したRC4キーを使用して、別のツールコマンドを使用してroot.local
内のroot.local\EXT$
として認証することができます:
この認証ステップは、root.local
内のサービスを列挙し、さらには悪用する可能性を開きます。たとえば、次のコマンドを使用してサービスアカウントの資格情報を抽出するために Kerberoast 攻撃を実行することができます:
明文の信頼パスワードの収集
前のフローでは、明文パスワードの代わりに信頼ハッシュが使用されました(これはmimikatzによってダンプされました)。
明文パスワードは、mimikatzの[ CLEAR ]出力を16進数から変換し、ヌルバイト‘\x00’を削除することで取得できます:
信頼関係を作成する際に、ユーザーが信頼のためにパスワードを入力する必要がある場合があります。このデモでは、キーは元の信頼パスワードであり、したがって人間が読み取れるものです。キーがサイクルする(30日ごと)と、明文は人間が読み取れなくなりますが、技術的には依然として使用可能です。
明文パスワードは、信頼アカウントとして通常の認証を行うために使用でき、信頼アカウントのKerberos秘密鍵を使用してTGTを要求する代替手段となります。ここでは、ext.localからroot.localに対してDomain Adminsのメンバーをクエリしています:
参考文献
Last updated