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

リソースセンターブログ

Active Directory における平文パスワードの侵害

Active Directory における平文パスワードの侵害

Mar 17, 2023

多くの注目が pass-the-hash および pass-the-ticket 攻撃の防止に集まっていますが、これらの手口は、攻撃者がコマンドラインから実行できることに相手を限定してしまいます。平文パスワードを侵害すると、攻撃者はアカウントに無制限にアクセスできます。そこには、Webアプリケーション、VPN、メールなどへのアクセスが含まれる可能性があります。

平文パスワードを抽出する方法の1つが Kerberoasting です。しかし、この総当たり攻撃の手法は時間と忍耐が多く必要です。平文パスワードを抽出する、より速くて簡単な方法もありますので、本記事で解説します。

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

[Free Guide] Active Directory Security Best Practices

グループ ポリシーの設定

Windows Server 2008 で Microsoft は Group Policy の設定(GPP)を導入しました。GPP の代表的な用途の 1 つは、サーバーやワークステーション上でローカル アカウント(Administrator アカウントなど)を作成および管理することです。これに関連して、管理者はこれらのアカウント用のパスワードを配布(プッシュ)できます。

パスワードは SYSVOL 内の Group Policy の XML ファイルに保存され、AES キーを使って暗号化されます。ですが Microsoft は AES キーを公開してしまいました 。そのため、これらのパスワードを復号できるため、実質的に平文パスワードと同等になります。

SYSVOL の共有が Authenticated Users(認証済みユーザー)に対して開かれているため、組織内の任意のユーザーがそこに保存されているファイルを読み取れます。したがって、任意のユーザー アカウントがグループ ポリシーのファイルを見つけて復号でき、その結果、Administrator アカウントの平文パスワードにアクセスできてしまいます。PowerSploit コマンド Get-GPPPassword は、これらのパスワードを見つけて復号します。

この件について、より詳しい解説は Sean Metcalf の投稿Microsoft の投稿 をご覧ください。 また、Microsoft は セキュリティ速報 の一部として、パスワードを含む GPP をスキャンするための便利なスクリプトも提供しています。

Mimikatz と LSASS のミニダンプ

通常、Mimikatz はメモリから NTLM のパスワードハッシュや Kerberos チケットを抽出するために使用されます。しかし、あまり知られていない機能の1つとして、LSASS プロセス用に作成されたダンプからプレーンテキストのパスワードを抽出できる点があります。つまり、攻撃者はドメインコントローラー上で不正なコードを実行せずとも、プレーンテキストのパスワードを侵害できます。ダンプファイルは対話形式で作成することも、ProcDump を使用して作成することも可能で、いずれの場合でも、その活動はアンチウイルスソフトウェアによってフラグ付けされにくいと考えられます。ダンプが作成されたら、ドメインコントローラーからコピーして、Mimikatz をオフラインで使ってプレーンテキストの認証情報を回収できます。

ここでは ProcDump を使ってドメインコントローラー上でプロセスダンプを作成する様子を確認できます。

Image

このコマンドは本質的に LSASS プロセスのスナップショットを作成し、プレーンテキストのパスワード情報を含みます:

Command-line interface displaying Mimikatz 2.1.1 performing LSASS memory dump and credential extraction.

作成したファイルは、Mimikatz を使ったオフライン パスワード抽出のために別のホストへコピーできます。sekurlsa::minidump コマンドを使用すると、Mimikatz のコンテキストを抽出したダンプ ファイルに切り替え、sekurlsa::logonpasswords コマンドを発行できます:

Console output displaying extracted authentication details for user 'Gene.Parmesan' in 'JEFFLAB' domain, including various password hashes and a plaintext password.

Digest 認証プロトコルに対して Mimikatz を使用する

Digest 認証プロトコル(WDigest.dll)は Windows XP で導入され、HTTP および SASL に使用されます。何より重要なのは、WDigest を有効にすると、ローカルで認証されたアカウントの平文の資格情報が保存されることです。2014 年に Microsoft がパッチを公開しました。このパッチにより、UseLogonCredential のレジストリ値を使って WDigest を無効化できます。とはいえ、多くの組織では、いまも WDigest を有効にした状態で多数のサーバーやワークステーションを運用しています。

WDigest が有効になっている場合、攻撃者は sekurlsa::logonpasswords コマンドで平文の資格情報を簡単に抽出できます:

Image

可逆的な暗号化を悪用する

Active Directory は、ユーザー パスワードを可逆的な暗号化(reversible encryption)で保存できるようにしますが、これは本質的に平文(plain text)として保存するのと同じです。このポリシーは Windows Server 2000 で導入され、現在でも最も新しいバージョンに至るまで存在しています。 Microsoft によると 、これは「ユーザーのパスワードが認証に必要となるプロトコルを使用するアプリケーションをサポートするため」に導入されたものです。

通常、このポリシーは無効になっていますが、有効にすると攻撃者は DCSync のような手法を使って、平文のパスワードを簡単に抽出できます。:

Image

上記のコマンドは平文のパスワードを返します:

可逆的な暗号化(reversible encryption)のポリシーは、グループ ポリシーのユーザー アカウント制御(Group Policy User Account Control)設定と、きめ細かな パスワード ポリシー によって有効化できます。攻撃者は悪意をもって、Domain Admins にリンクするきめ細かなパスワード ポリシーを作成し、特権アカウントの平文パスワードにアクセスできるように、自身のパスワードを可逆的な暗号化で保存させることが可能かもしれません。

結論

ご覧のとおり、興味を持った攻撃者が Active Directory アカウントの平文パスワードを入手する方法は、決して不足していません。詳しくは、関連する次の投稿をお読みください:PowerSploit を使って平文パスワードを抽出する弱いパスワードを見つける弱いパスワードを攻撃するローカル アカウントのパスワードを攻撃する

Netwrix StealthDEFEND により、インフラ全体にわたるこのような攻撃や、さらに高度な攻撃を効果的に検知し、リアルタイムで対応できます。

共有する

もっと詳しく

著者について

Jeff Warren

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

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