Japan
サイト内の現在位置
資格情報の窃取 ~Cached Domain Credentials編~
NECセキュリティブログ2023年2月3日
NECサイバーセキュリティ戦略統括部セキュリティ技術センターの山﨑です。使用しているノートPCがドメインコントローラー(以降、DC)とネットワーク接続できない状況にも関わらず、ノートPCにドメインアカウントでログインができた経験をお持ちではないでしょうか?実は、Windowsはドメインアカウントの資格情報をキャッシュする機能があります。今回は、本機能を悪用した資格情報の窃取に関する内容です。
資格情報窃取の目的
攻撃者は組織のネットワークに侵入後、特権アカウントの資格情報の窃取を試みます。これは、初期侵入が成功した時点で、攻撃者が組織内を自由に移動するための権限を持っていることは稀であり、目的を達成するためには特権アカウントの資格情報が必要となるためです。MITRE ATT&CKでは、資格情報を窃取するための17のテクニック(本記事執筆時点)が紹介されています [1]。
ドメインアカウントの資格情報のキャッシュ
Windowsはドメインアカウントの資格情報をキャッシュする機能があります。ドメイン環境ではDCがドメインアカウントの認証を行いますが、何らかの理由でDCと通信できない場合でもローカルのキャッシュを使用してWindowsホストにログインすることができます。特に、社外に持ち出すことの多い、ノートPCを使っている方にとっては便利な機能です。
デフォルトでは、最近ログインした10個のドメインアカウントの資格情報をキャッシュしますが、上限を超えた場合は、最も古いキャッシュが上書きされます。上限値はグループポリシーで変更可能です。キャッシュされた資格情報は、本機能を無効化するか、上限を超えたことによる上書きが行われない限り、無期限に残ります。
ここで、個人に配布されているようなクライアントPCを考えてみます。個人で利用するクライアントPCに、多数のアカウントでログインするようなことはあまり考えられません。つまり、一度キャッシュされた資格情報が上限値によって上書きされず、長期間残り続ける可能性があります。攻撃者は、過去に特権アカウントが当該クライアントPCにログインしていたことを期待して資格情報を抽出します。推測可能なパスワードを設定していた場合は、抽出した情報からパスワードが特定される可能性があります。本テクニックは、OS Credential Dumpingの中のCached Domain CredentialsサブテクニックとしてMITRE ATT&CKで紹介されています [2]。
キャッシュからの資格情報抽出の様子
ドメイン参加しているクライアントPCにSEC-BLOG\d-user001アカウント(SEC-BLOGドメインユーザー、クライアントPCのローカル管理者)で侵入に成功していることを前提としてキャッシュされた資格情報の抽出を試行します。
以下の図は、mimikatz [3]のlsadumpモジュールを使用した様子です。SEC-BLOG\d-user001アカウントに加えて、過去にログインしていたSEC-BLOG\Super-userアカウントのパスワードハッシュ(MsCacheV2形式)も抽出できたことが確認できます。

攻撃者はその後、抽出したアカウントのパスワードハッシュをオフラインで解析します。
- ※MsCacheV2形式のパスワードハッシュは、Pass-the-hash攻撃でのNTLMハッシュのように、ハッシュ値の状態でそのまま悪用することはできません。
今回の場合は、推測可能なパスワードが設定されていたために、hashcat [4]でSEC-BLOG\Super-userの平文パスワードを特定できました。
- ※SEC-BLOG\Super-userは名前の通り特権(ドメイン管理者)アカウントでした

緩和策・対策
本サブテクニックに対する緩和策としては以下が挙げられます。
-
Protected Usersグループへの追加
このグループはWindows Server 2012 R2で導入されました。本グループに所属するアカウントは資格情報がキャッシュされません。 -
キャッシュされる資格情報の上限値を制限
キャッシュされる資格情報の上限を少なくすることで、過去にログインした特権アカウントの資格情報がキャッシュに残り続ける可能性を低減できます。CIS Microsoft Windows Server 2022 Benchmark[5]では、上限値を4以下に設定することを推奨しています。
-
パスワードの強化
上述のとおり、キャッシュから抽出されるMsCacheV2形式のパスワードハッシュはハッシュ値の状態でそのまま悪用することはできません。各アカウントに複雑で推測困難なパスワードを設定することで、攻撃者に平文パスワードを特定され攻撃に悪用される可能性を低減することができます。
参考
- [1]Credential Access, Tactic TA0006 – Enterprise(MITRE)
https://attack.mitre.org/tactics/TA0006/
- [2]OS Credential Dumping: Cached Domain Credentials, Sub-technique T1003.005 – Enterprise(MITRE)
https://attack.mitre.org/techniques/T1003/005/
- [3]mimikatz(github, ParrotSec)
https://github.com/ParrotSec/mimikatz
- [4]hashcat(github, hashcat)
https://github.com/hashcat/hashcat
- [5]CIS Microsoft Windows Server Benchmarks(Center for Internet Security)
https://www.cisecurity.org/benchmark/microsoft_windows_server
執筆者プロフィール
山﨑 泉樹(やまざき せんじゅ)
セキュリティ技術センター リスクハンティング・システムグループ
ペネトレーションテスト、インシデント対応に関する業務に従事。
CISSP、RISS、GPEN、GCPN、SANS FOR508メダルを保持。

執筆者の他の記事を読む
アクセスランキング
2025年3月2日~3月8日に読まれた記事のランキング