Mimikatz で ChangeNTLM および SetNTLM コマンドを使用すると、攻撃者はユーザーのパスワードを操作し、Mimikatzで権限を昇格させることができます。Active Directory これらのコマンドと、それらが行う処理を確認しましょう。
厳選された関連コンテンツ:
ChangeNTLM
ChangeNTLM コマンドはパスワードの変更を実行します。このコマンドを使用するには、アカウントの現在のパスワード、またはその NTLM パスワードハッシュを知っている必要があります。NTLM パスワードハッシュは、平文のパスワードよりもはるかに盗み取りやすい場合があります。デフォルトでは、ユーザーのパスワードを変更する権限は Everyone に付与されているため、このコマンドは特別な権限なしに任意のユーザーが実行できます。
現在のパスワードハッシュだけを知っていてユーザーのパスワードを変更するために、コマンドを使用する例を示します。
これにより、ドメイン コントローラーのイベント ログにイベント ID 4723 が出力されます。
SetNTLM
このコマンドはパスワードのリセットを実行します。実行するためにユーザーの現在のパスワードを知っている必要はありませんが、そのアカウントに「Reset Password」の権限が必要です。この権限はデフォルトでは Everyone に付与されません。
ユーザーのパスワードをリセットするためにこのコマンドを使用する例を示します。:
これにより、ドメイン コントローラーのイベント ログに Event ID 4724 が記録されます。
攻撃シナリオ:ChangeNTLM
ユーザーのパスワード ハッシュが侵害されると、攻撃者は pass-the-hash attacks を実行できるようになります。しかし、これらの攻撃は通常、システムやアプリケーションへのコマンドラインからのアクセスに限られます。Outlook Web Access (OWA)、SharePoint、またはリモート デスクトップ セッションにログインするには、攻撃者がユーザーの平文パスワードを必要とする場合があります。攻撃者は4つの素早い手順で攻撃を実行し、痕跡を隠すことができます:
- アカウントの NTLM ハッシュを侵害(漏えい)します。
- ハッシュを使ってパスワードを変更します。
- 新しい平文パスワードを使用して、目的のアプリケーションまたはサービスにアクセスします。
- 盗まれたハッシュを使って、パスワードを以前の値に戻します。
この攻撃は、侵害されたアカウントをさらに悪用するために非常に有効です。
攻撃シナリオ:SetNTLM
このシナリオでは、攻撃者がドメインへのアクセスが制限されたアカウントを侵害しています。こうした攻撃経路を悪用するには、ユーザーのパスワードをリセットしてアカウントを乗っ取る必要がありますが、攻撃者はパスワードを変更することで、自分のアカウントが侵害された事実をユーザーに通知したくありません。攻撃者は、標的が侵害された後にユーザーのパスワードをリセットし、さらに元の値に戻すにはどうすればよいのでしょうか?SetNTLMを入力してください。
攻撃者は、次の基本的な手順をたどることができます:
- Bloodhound を使用して、Active Directory の権限とパスワードのリセットを活用する攻撃経路を特定します。
- 攻撃経路を悪用し、必要に応じてパスワードをリセットします。
- 特権アクセスが取得できたら、Mimikatz を使用して、侵害されたすべてのアカウントの NTLM パスワード履歴を抽出します。
- SetNTLM を使用して、以前の NTLM ハッシュをアカウントに適用し、パスワードを元の状態に戻します。
注記: 同じことは Set-SamAccountPasswordHash コマンドでも実行できます。
例
次の攻撃経路があると仮定します。この経路では、3 回のパスワード リセットによって、現在のユーザーから Domain Admin まで到達します。:
どのアカウントを侵害する必要があるのかが分かったので、ユーザーに気づかれないように、できるだけ迅速に攻撃を実行したいと思います。基本的な PowerShell を使えば、パスワード リセットの攻撃経路をスクリプト化できます。次のスクリプトはパスワードを受け取り、攻撃チェーンに沿って進み、目標の Domain Admin に到達するまでの間、侵害された各ユーザーになりすまします:
次に、Domain Admin として新しい PowerShell セッションを起動し、 DCSync 操作を実行して、すべてのアカウントの NTLM パスワード履歴を取得します:
そこから、SetNTLM コマンドを使ってパスワードを以前の値に戻します:
以上です。これで私たちは Domain Admin になり、途中でユーザーのアカウントが侵害されたことにユーザーが気づかないよう、可能な限り痕跡を隠しました。
SetNTLM および ChangeNTLM 攻撃の検出と防止
攻撃の検知
攻撃者が ChangeNTLM 攻撃を使用すると、4723 イベントが生成されますが、以下のとおり Subject と Target Account は異なります。これは、ユーザーが自分で行う通常のパスワード変更とは異なります。通常は、この 2 つの値は同一になります。管理者がパスワードをリセットする場合は、リセットを実行して 4724 イベントを生成します。
攻撃の防止
SetNTLM 攻撃が実行されるリスクを軽減するには、ディレクトリ内でパスワードのリセット権限を制御します。ChangeNTLM 攻撃のリスクを軽減するには、ユーザーのハッシュがどのように、またどこに保存されるかを制御します。
Netwrix が支援できること
The Netwrix Active Directory Security Solution は、現在の AD 設定におけるセキュリティ上のギャップを明確にすることから、巧妙な攻撃をリアルタイムで検知し、脅威に即時に対応することまで、Active Directory をエンドツーエンドで保護するのに役立ちます。すべてのアイデンティティ、アクセスを提供する機密データ、および基盤となる AD インフラが、クリーンであること、理解されていること、適切に構成されていること、綿密に監視されていること、そして厳密に制御されていることを保証します——その結果、皆さまの業務がより簡単になり、組織のセキュリティもより強固になります。
共有する
もっと詳しく
著者について
Jeff Warren
チーフ・プロダクト・オフィサー
Jeff Warren は Netwrix のプロダクトポートフォリオを統括しており、安全に重点を置いたプロダクトマネジメントおよび開発の分野で10年以上の経験を持ちます。Netwrix に入社する前、Jeff は Stealthbits Technologies にてプロダクト組織を率いていました。そこで彼はソフトウェアエンジニアとしての経験を活かし、革新的でエンタープライズ規模のセキュリティソリューションの開発に取り組みました。手を動かす実践的なアプローチと、難しいセキュリティ課題を解決するのが得意な点を強みに、Jeff は「実際に機能する」実用的なソリューションの構築に注力しています。彼はデラウェア大学(University of Delaware)で情報システム(Information Systems)の学士号を取得しています。