Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

リソースセンターブログ

DCShadow による権限昇格

DCShadow による権限昇格

Nov 20, 2024

DCShadow は、オープンソースツール mimikatz の機能です。別のブログ記事では、攻撃者が管理者の資格情報を入手した後に、DCShadow を使って検知されずにドメイン内で永続化を実現する方法を解説します。しかし、DCShadow は攻撃者が特権を昇格することも可能にします。

厳選した関連コンテンツ:

ドメイン管理者は、どのようにしてさらに高い権限を得られるのでしょうか。別のフォレストで管理者権限を取得することで可能です。攻撃者は SID History を悪用して、ユーザー アカウントに管理用 SID を追加し、他の信頼されているドメインやフォレストで管理者レベルの権限を取得できます。この記事では、この仕組みがどのように動作するのかを見ていきます。

ステップ 1:信頼関係を確認する

最初のステップは、どのような信頼関係が存在するかを把握することです。これを行う方法はいくつかありますが、PowerShell を通じて活用するのは次の2つです。PowerSploit フレームワークと Active Directory の PowerShell モジュールです。

見つかった各信頼関係について、SID フィルタリングが有効になっているかどうかを確認する必要があります。有効になっている場合は、過去の SID を使って、その信頼関係の反対側にあるフォレストへアクセスすることはできません。 しかし無効になっている場合は、話が別です。移行後にこのオプションを無効のままにしておくことがよくあります。そうすることで、ユーザーが必要なシステムやデータへのアクセスを失わないようにできます。次の PowerShell コマンドは、信頼関係を検出し、SID フィルタリングを含むオプションを列挙します:

      Get-NetDomainTrust | ForEach-Object{Get-ADTrust –filter * -server $_.TargetName}
      

このコマンドの出力結果を以下に示します。SID フィルタリングが無効になっている(SidFilteringQuarantined = False)gobias.local ドメインへの信頼関係があることが分かります。したがって、過去の SID を使ってそのドメイン内のリソースにアクセスできるようになります。

DCShadow1

SID フィルタリングと信頼関係について詳しくは、こちらの TechNet の投稿

ステップ 2:SID History を使って特権を昇格

次に、信頼されているフォレスト内のリソースにアクセスできるように、ユーザー アカウントに管理用 SID を追加する必要があります。ここで DCShadow が役立つのは、主に 2 つの理由があるためです:

  • AD Users & Computers のようなアプリケーションでは、SID History をネイティブに変更することはできません。
  • DCShadow は、検出されることなくこの変更を行います。

SID History に追加する SID を選ぶだけで十分です。Administrator や Domain Admins のような、よく知られた SID や組み込みのユーザー/グループは使用しません。これらの SID は、ほかのドメインにある同等のオブジェクトに対してのみ割り当てられるように制御が用意されているためです。 domain reconnaissanceを行えば、昇格された権限を得るために、アクセス トークンに追加したいドメインのユーザーまたはグループを見つけられるはずです。

次の DCShadow コマンドを使用して、gobias.local フォレストの AD-Admins グループをユーザー アカウントに追加しましょう。

      lsadump::dcshadow /object:"CN=Jeff Warren,OU=Administrators,OU=Users,OU=JEFFLAB,DC=JEFFLAB,DC=local" /attribute:sidhistory /value:S-1-5-21-1722627474-2472677011-3296483304-1113
      

新しく追加された SIDhistory の値を確認するには、次のスクリプトを実行します:

      Get-ADUser Jeff -Properties sIDHistory
      

DCShadow2

この一連の操作がすべて機能していることは、いったんこのユーザーで再ログインし、whoami /groups コマンドを実行して新しいグループ メンバーシップを確認することで確認できます。なお、このユーザーがトークン内でこのグループを取得しているのは、SID history を通じてのみです。

DCShadow3

ステップ 3. 昇格された権限を使用する

アクセス権が手に入ると、信頼されたフォレストからデータを抽出する方法はいくつもあります。最も効率的な方法の1つは DCSync で、対象のドメインコントローラー上でコードを実行する必要がないためです。

アカウントに SID 履歴を追加する前は、対象フォレストに対して DCSync を実行しようとすると、アクセスが拒否されていました:

Image

しかし、ユーザー アカウントに履歴 SID を追加した後は、同じコマンドを問題なく実行でき、非常に価値の高い krbtgt Kerberos サービス アカウントを含む任意のアカウントのパスワード ハッシュを取得できるようになりました。

DCShadow5

DCShadow の検出と対応

DCShadow を検出するために主に使用される方法は、不正な(rogue)ドメイン コントローラーの登録および登録解除に一致する行動パターンを見つけ、そこからプッシュされるレプリケーション トラフィックを監視することです。標準搭載(out of the box)では、Netwrix StealthDEFEND が DCShadow の兆候を検出するために、すべてのドメイン レプリケーションおよび変更イベントを積極的に監視します。

Netwrix Threat Prevention ブロッキングポリシーを使用すると、犯行アカウントやワークステーションが追加のレプリケーション、認証、その他の活動を実行することを防止できます。これにより攻撃者の動きを遅らせ、対応担当者が脅威を完全に排除するためのより多くの時間を確保できます。

共有する

もっと詳しく

著者について

Jeff Warren

チーフ・プロダクト・オフィサー

Jeff Warren は Netwrix のプロダクトポートフォリオを統括しており、安全に重点を置いたプロダクトマネジメントおよび開発の分野で10年以上の経験を持ちます。Netwrix に入社する前、Jeff は Stealthbits Technologies にてプロダクト組織を率いていました。そこで彼はソフトウェアエンジニアとしての経験を活かし、革新的でエンタープライズ規模のセキュリティソリューションの開発に取り組みました。手を動かす実践的なアプローチと、難しいセキュリティ課題を解決するのが得意な点を強みに、Jeff は「実際に機能する」実用的なソリューションの構築に注力しています。彼はデラウェア大学(University of Delaware)で情報システム(Information Systems)の学士号を取得しています。