DPAPISnoopツール、オフラインでのWindows認証情報回復に向けCREDHISTハッシュを抽出

新たにアップデートされたオープンソースツール「DPAPISnoop」は、WindowsのCREDHISTエントリをオフラインでクラック可能なハッシュ行として抽出できるようになりました。これにより、レッドチーム演習やポストエクスプロイテーション活動において、認証情報を回復する新たな手段が開かれています。

Nettitudeがリリースしたこのアップデートは、既存のマスターキーハッシュ抽出機能を拡張し、CREDHISTチェーンへの完全対応を追加しています。

Lrqaによると、WindowsのData Protection API(DPAPI)は攻撃的なセキュリティ操作において広く悪用されるターゲットであり、ブラウザの認証情報、保存されたパスワード、マスターキーの回復に頻繁に利用されています。

しかし、DPAPIの関連データと並んで保存されながらもあまり注目されてこなかったアーティファクトが、CREDHISTファイルです。このファイルは%APPDATA%\Microsoft\Protect\CREDHISTに格納されています。

ユーザーがWindowsのパスワードを変更した場合でも、既存のDPAPI暗号化ブロブは引き続き復号できる必要があります。これを実現するために、WindowsはCREDHISTを通じてパスワード履歴チェーンを管理しており、過去のパスワードを使って古いDPAPIデータを回復できるようになっています。

チェーン内の各エントリは直前のパスワードから派生した鍵素材で暗号化されており、最新のエントリはユーザーの現在のパスワードで保護されています。つまり、最新エントリをクラックすれば、そのままアクティブなパスワードを取得できます。

GitHubで公開されているアップデート済みのDPAPISnoopツールは、CREDHISTファイルの構造を解析し、各エントリを識別子$credhist$をプレフィックスとするクラック可能なハッシュ行として出力します。

このツールは、現在のユーザー自身のCREDHISTおよびマスターキーハッシュに対しては、管理者権限なしで動作します。

各エントリから抽出される主なフィールドには、ユーザーのセキュリティ識別子(SID)、使用中のハッシュおよび暗号化アルゴリズム、PBKDF2のラウンド数、16バイトの初期化ベクトル(IV)、そして暗号化された過去の認証情報が含まれます。

現在のパスワードまたはそのSHA1値が与えられた場合、DPAPISnoopはCREDHISTチェーン全体を辿り、最新のエントリから古いエントリへと順に復号することもできます。

チェーンの途中エントリのクラックに成功すると、過去のSHA1ハッシュおよびNTLMハッシュが得られます。これらは古いエントリの解錠に活用でき、ユーザーのパスワードパターンを時系列で明らかにします。ターゲットをプロファイリングする攻撃者にとって、これは重要な情報収集の成果となります。

Lrqaによると、このツールのアップデートに合わせて2つの新しいHashcatモジュールが追加されています。3DES + HMAC-SHA1を使用するレガシーなDPAPI CREDHISTエントリ向けのモード15920と、AES-256 + SHA-512を使用するモダンなエントリ向けのモード15930です。

現代のWindows環境では通常、SHA-512 PBKDFとAES-256、8,000ラウンドが使用されています。一方、古いCREDHISTエントリはSHA-1ベースのPBKDF2と3DESに依存している場合があり、クラックにかかる時間が大幅に短くなります。

そのため、レガシーアカウントや移行済みシステムがスコープに含まれる演習では、過去のエントリが特に魅力的なターゲットとなります。両モードについて、アップストリームのHashcatへのプルリクエストが次のステップとして予定されています。

研究者たちは、これはWindowsの脆弱性ではなく、DPAPIのパスワード履歴設計から生じる想定内の結果であると強調しています。

防御側は、%APPDATA%\Microsoft\Protect\CREDHISTへの異常な読み取り、%APPDATA%\Microsoft\Protect\<SID>\への一括アクセス、SMBや管理共有を経由したDPAPIディレクトリへのアクセスを監視することが推奨されます。

検知リソースとして、SigmaHQによるCREDHISTへの異常なアプリケーションアクセスのルールおよびElastic Security Labsを参照できます。

推奨される検知アプローチは、DPAPIの広範な使用状況を監視するのではなく、DPAPIファイルへの異常なアクセスパターンに焦点を当てることです。このAPIはWindows環境全体で常に正当な用途に利用されているためです。

翻訳元: https://cyberpress.org/dpapisnoop-tool-extracts-credhist-hashes/

ソース: cyberpress.org