Ntds.dit ファイルからパスワードハッシュを抽出
Sep 26, 2025
Ntds.dit ファイルにはすべての Active Directory パスワードハッシュが保存されているため、抽出・解読(クラッキング)・悪用によって資格情報を取得し、ドメイン全体を完全に制御しようとする攻撃者にとって格好の標的です。よく使われる手法には、ボリューム シャドウ コピー(volume shadow copies)や PowerSploit などがあります。防御には、特権グループの厳格な管理と再認証、疑わしいアクセスの監視、そして検知・遮断・露出(リスク)低減を行うツールによる多層防御が必要です。
Pass-the-Hash(PtH)や Pass-the-Ticket(PtT)といった資格情報ベースの攻撃に多くの注目が集まる一方で、より深刻で効果的な攻撃が見落とされがちです。その一つとして、Active Directory ドメイン のコントローラーから Ntds.dit ファイルを持ち出して(外部流出させて)しまう攻撃があります。この脅威が何を意味するのか、攻撃がどのように実行できるのか、そして組織をどう守れるのかを見ていきましょう。
Ntds.dit ファイルとは何ですか?
Ntds.dit ファイルは、ユーザー オブジェクト、グループ、およびグループ メンバーシップに関する情報など、Active Directory のデータを保存するデータベースです。さらに重要な点として、このファイルにはドメイン内のすべてのユーザーのパスワード ハッシュも保存されています。これらのハッシュを抽出したサイバー犯罪者は、Mimikatz などのツールを使って PtH 攻撃を実行したり、Hashcat のようなツールでオフラインからパスワードを解読(クラック)したりできます。実際のところ、攻撃者がハッシュを抽出できれば、ドメイン上のあらゆるユーザーになりすますことが可能です。つまり、ドメイン管理者も含まれます。
Ntds.dit ファイルへの攻撃はどのように機能しますか?
最初のステップは、Ntds.dit のコピーを入手することです。これは簡単そうに見えますが、実際はそうではありません。なぜなら、このファイルは AD によって常に使用されているため、ロックされているからです。ファイルをそのままコピーしようとすると、次のようなエラー メッセージが表示されます:
この障害を回避する方法はいくつかあります。たとえば、Windows に組み込まれた機能を利用する、または PowerShell ライブラリを使うといった方法です。たとえば、攻撃者は次のことができます:
- VSSAdmin コマンドを使用してボリューム シャドウ コピーを利用する
- PowerSploit のペネトレーション テスト用 PowerShell モジュールを使用する
- Active Directory の一部として利用できる NTDSUtil の診断ツールを活用する
- ドメイン コントローラーが仮想マシンとして稼働している場合はスナップショットを活用する
これらのアプローチのうち最初の 2 つを順に見ていきましょう。
VSSAdmin を使用して Ntds.dit ファイルを盗み出す
ステップ 1:ボリューム シャドウ コピーを作成します:
ステップ 2:ボリューム シャドウ コピーから Ntds.dit ファイルを取得します:
ステップ 3:レジストリまたはボリューム シャドウ コピーから SYSTEM ファイルをコピーします。これは、後で Ntds.dit ファイルを復号するために必要なブート キーが含まれているためです:
ステップ 4:足跡を消す:
PowerSploit NinjaCopy を使用して Ntds.dit ファイルを盗み取る
PowerSploit は、Active Directory の悪用に利用できるさまざまな機能を含む PowerShell のペネトレーションテスト用フレームワークです。Invoke-NinjaCopy モジュールは、生のボリュームを読み取ることで、NTFS パーティション化されたボリュームからファイルをコピーします。これにより、攻撃者は監視システムに通知せずに、Active Directory によりロックされているファイルへアクセスできるようになります。
ステップ 2. パスワードハッシュを抽出する
攻撃者が Ntds.dit ファイルのコピーを入手したら、次のステップはそこからパスワードハッシュを抽出することです。DSInternals は PowerShell モジュール を提供しており、Ntds.dit ファイルとやり取りするために使用できます。パスワードハッシュを抽出する方法は次のとおりです:
ステップ 3. パスワードハッシュを使用して攻撃を完了する。
攻撃者が Ntds.dit ファイルからパスワードハッシュを抽出できたら、Mimikatz のようなツールを使用してパス・ザ・ハッシュ(PtH)攻撃を実行できます。さらに、Hashcat のようなツールを使ってパスワードをクラックし、その平文の値を取得することも可能です。攻撃者がこれらの資格情報を手に入れた後は、それを使って何ができるかに制限はありません。
組織は Ntds.dit ファイルへの攻撃に対してどのように防御できますか?
この攻撃から組織を守る最善の方法は、ドメイン コントローラーにログオンできるユーザー数を制限することです。これには、Domain Admins や Enterprise Admins のような高度に特権が付与されたグループのメンバーだけでなく、Print Operators、Server Operators、Account Operators のような比較的権限の低いグループのメンバーも含まれます。これらのすべてのグループのメンバーシップは厳密に制限し、変更がないか常に監視し、頻繁に再認証(recertify)を行う必要があります。
さらに、ボリューム シャドウ コピーからユーザーがファイルを取得しようとした際に警告を出し、場合によってはそれを防止できる監視ソフトウェアの利用も検討してください。
Netwrix のソリューションがどのように役立つか
Netwrix は、Ntds.dit のパスワード抽出攻撃を防御するための多層的なアプローチを提供します。
Ntds.dit ファイルを盗もうとする試みを検出
Netwrix Threat Manager は、Ntds.dit のパスワード抽出攻撃を検出するための効果的なツールです。Ntds.dit ファイルに対する予期しないアクセス イベントを継続的に監視し、たとえば次のようなものを含みます。
- ファイル システム上のファイルへの直接アクセス — Ntds.dit ファイルは使用中、Active Directory によってロックされているため、攻撃者は通常 Active Directory サービスを停止しない限り、そのファイルを取得できません。AD サービスは Local System として実行されるため、ユーザー アカウントによる成功および拒否されたアクセス イベントを監視することで、望ましくないアクセス試行に関する有意義な洞察が得られます。
- ボリューム シャドウ コピーを介した Ntds.dit ファイルへのアクセス — Ntds.dit ファイルがロックされていても、攻撃者はドライブ全体のシャドウ コピーを作成し、そこから Ntds.dit ファイルを抽出できます。
Ntds.dit ファイルへのアクセスをブロックする
Netwrix Threat Prevention ファイル システム上の Ntds.dit ファイルへの直接アクセスと、ボリューム シャドウ コピー経由でのアクセスの両方をブロックできます。その結果、攻撃者がファイルのロックを解除するために Active Directory を停止し、完全な管理者権限を持っていたとしても、ファイルに直接アクセスすることはできません。
攻撃対象領域(アタックサーフェス)を積極的に削減する
Netwrix Access Analyzer Domain Admins や Server Operators など、ドメイン コントローラーにアクセスできる管理グループを確認し、制御するのに役立ちます。これらのグループのメンバーシップを厳密に制限することで、攻撃者が Ntds.dit ファイルにアクセスするリスクを下げられます。
Netwrix Threat Manager の無料トライアルを申し込む
共有する
もっと詳しく
著者について
Jeff Warren
チーフ・プロダクト・オフィサー
Jeff Warren は Netwrix のプロダクトポートフォリオを統括しており、安全に重点を置いたプロダクトマネジメントおよび開発の分野で10年以上の経験を持ちます。Netwrix に入社する前、Jeff は Stealthbits Technologies にてプロダクト組織を率いていました。そこで彼はソフトウェアエンジニアとしての経験を活かし、革新的でエンタープライズ規模のセキュリティソリューションの開発に取り組みました。手を動かす実践的なアプローチと、難しいセキュリティ課題を解決するのが得意な点を強みに、Jeff は「実際に機能する」実用的なソリューションの構築に注力しています。彼はデラウェア大学(University of Delaware)で情報システム(Information Systems)の学士号を取得しています。