Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pass-the-Challenge - Credential Guardの新たなバイパス手法

Nao
February 22, 2023

Pass-the-Challenge - Credential Guardの新たなバイパス手法

2023年2月22日に行われた「Security․Tokyo #1」の発表資料です。
@n_etupirka
https://security-tokyo.connpass.com/event/273983/

Nao

February 22, 2023
Tweet

More Decks by Nao

Other Decks in Technology

Transcript

  1. $ whoami • 小松 奈央(Nao Komatsu) • Job ◦ Penetration

    Testing ◦ Mobile Application Security ◦ Security Training Instructor • Twitter / Blog ◦ https://twitter.com/n_etupirka ◦ https://n-etupirka.net February 22, 2023 2
  2. Index • Credential Guardの概要 • Pass-the-Challenge ◦ Pass-the-Challengeの概要 ◦ 実際にやってみた

    • まとめ • 参考文献 February 22, 2023 3 【注意】 本スライドの内容は犯罪行為を助長するものではありません。 サイバー空間の安心・安全な環境を確保する目的にのみ利用し、絶対に悪用しないでください。
  3. Credential Guardとは • 資格情報(NTLMハッシュなど)の保護を目的とした Windowsの機能 • 仮想化ベースセキュリティによって(Virtualization-based security)によって資格情報をLSASSから分離する • 資格情報が保護される仕組み

    ◦ LSASS:認証が必要な他のプログラムと通信し、LSAIsoを介して資 格情報を使用する ◦ LSAIso:資格情報の直接操作(暗号化や復号など)を行う。LSASS からのみ呼び出され、他のプログラムと通信不可。 February 22, 2023 5
  4. Credential Guardのアーキテクチャ February 22, 2023 6 Microsoft. “How Windows Defender

    Credential Guard works”. https://learn.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-how-it-works • 資格情報の暗号化や復号などを行う • LSASSからのみ呼び出され、 他のプログラムと通信不可 • LSAIsoを介して資格情報を使用 • 他のプログラムと通信可能
  5. MimikatzによるLSASSダンプの例 • Credential Guardが無効の場合 • Credential Guardが有効の場合 February 22, 2023

    7 NTLMハッシュを入手でき、 Pass-the-Hashなどに悪用可能 NTLMハッシュが暗号化され ているため、悪用不可
  6. Pass-the-Challengeとは • 2022年12月27日にOliver Lyak(@ly4k_)氏によって公開さ れた攻撃手法 • Credential Guardによって保護された資格情報から、NTLM ハッシュを回復することができる •

    侵害済みの端末において、新たにログオンするユーザを標的 とした従来のCredential Guardバイパス手法と異なり、端末 侵害前にログオンしていたユーザも攻撃対象となる February 22, 2023 9
  7. Pass-the-Challengeの仕組み • LSAIsoのNtlmIumCalculateNtResponseメソッドを悪用する ◦ NetNTLMv1応答値を計算するメソッド ◦ NetNTLMv1認証は基本無効化されているものの、互換性のためメ ソッド自体は存在する • LSASSから上記メソッドを呼び出し、NetNTLMv1応答値を

    取得する ◦ LSAIsoのメソッドを呼び出すためにライブラリをLSASSへロード • NtlmIumLm20GetNtlm3ChallengeResponseメソッドを悪用 する方法も存在する(本資料では対象外) February 22, 2023 10
  8. Pass-the-Challengeの仕組み 1. LSASSから以下の情報をダンプ ◦ Context Handle / Proxy Info /

    Encrypted blob 2. SecurityPackage.dll(LSAIsoを悪用するためのライブラ リ)をLSASSにロード 3. SecurityPackage.dllを介してLSAIsoの NtlmIumCalculateNtResponseメソッドを呼び出し、 NetNTLMv1応答値を取得する 4. NetNTLMv1応答値からNTLMハッシュを回復する February 22, 2023 11
  9. Pass-the-Challengeの対策 • Credential Guardの仕様を悪用する攻撃手法 ◦ 根本的な対策は困難 • 多層防御により、ネットワーク全体のセキュリティレベルを 向上させることが重要 ◦

    端末に侵入されないための対策 ◦ 侵入範囲を拡大されないための対策 ◦ 侵入を早期に検知するための監視、運用体制の強化 February 22, 2023 13
  10. 用意した環境 • Active Directory環境* ◦ ドメインコントローラ1台 ◦ クライアント端末1台(Credential Guard有効) •

    ドメインアカウント:john.smith ◦ パスワード:zmh4A5HVXG3sCiwuESKh ◦ NTLMハッシュ:664169295f48fcb3d5e43cd77c49e566 February 22, 2023 15 (*)Credential Guardの保護の対象は、ドメインに紐づく資格情報のみであるため
  11. 4. NTLMハッシュの回復 • NetNTLMv1応答値からNTLMハッシュを回復する必要がある • NetNTLMv1応答値の生成には危殆化した暗号化方式であるDES 暗号が使用されている • Pass-the-Challengeの元記事では、crack.shというWebサービス を利用している

    ◦ DES暗号のクラッキングに特化した研究目的のサービス。DES暗号のレイ ンボーテーブルを保持しており、数秒でクラック可能。 • Webサービスに気軽に認証情報をアップロードするわけにもいか ないため、自力でのNTLMハッシュ回復を試みる February 22, 2023 19
  12. 4-3. 秘密鍵の特定 • Hashcatを用いてDES暗号のクラッキングを行う ◦ C:¥> hashcat.exe -m 14000 -a

    3 -1 charsets¥DES_full.hcchr --hex-charset hashes.txt ?1?1?1?1?1?1?1?1 ◦ 単一のGeForce RTX 3090を使うと14日程度でクラック完了 February 22, 2023 22
  13. まとめ • 侵害後の端末において、Credential Guardが有効であったと しても比較的容易にNTLMハッシュを回復可能 • 推奨事項 ◦ Credential Guardは攻撃の障壁として有用な機能であるため、有効化

    することを推奨 ◦ 単一の機能や製品に頼るのではなく、多層防御によりネットワーク 全体でセキュリティレベルを向上することも重要 • 以下の記事でより詳細に解説している ◦ https://n-etupirka.net/entry/2023/01/28/104428 February 22, 2023 24
  14. 参考文献 • [1] “Pass-the-Challenge: Defeating Windows Defender Credential Guard”. https://

    research.ifcr.dk/pass-the-challenge-defeating-windows-defender-credential-guar d-31a892eee22, (accessed January 25, 2023) • [2] “Protect derived domain credentials with Windows Defender Credential Guard”. https://learn.microsoft.com/en-us/windows/security/identity-protection/credenti al-guard/credential-guard, (accessed January 25, 2023) • [3] “Net-LTLMv1認証の危険性”. https://binary-pulsar.hatenablog.jp/entry/2018/1 2/11/090000, (accessed January 25, 2023) • [4] “NTLMv1 to NTLM Reversing”. https://hashcat.net/forum/thread-9009.html, (accessed January 25, 2023) February 22, 2023 25