
CVE-2020-1472 - Zerologon 脆弱性 Python 実装
説明
- Impacket ライブラリを使用して CVE-2020-1472 - Zerologon 脆弱性をテストする Python スクリプト(Secura 研究によるクレジット)。
- この欠陥は、Windows ドメインコントローラで利用可能な Netlogon リモートプロトコルに起因し、ユーザーとマシンの認証に関するさまざまなタスクに使用されます。
- 具体的には、Netlogon セッションの AES-CFB8 暗号化の使用に問題があります。AES-CFB8 標準では、プレーンテキストの各「バイト」にランダム化された初期化ベクトル(IV)が必要であり、攻撃者がパスワードを推測するのを防ぎます。しかし、Netlogon の ComputeNetlogonCredential 関数は IV を固定の 16 ビットに設定しており、ランダム化されていないため、攻撃者が復号されたテキストを制御できる可能性があります。
- 「AES 操作モードの誤った使用により、任意のコンピュータアカウント([ドメインコントローラ]自体を含む)の ID を偽装し、そのアカウントに対して空のパスワードを設定することが可能になります」と Secura の研究者は述べています。

- スクリプトは Netlogon 認証バイパスを試みます。バイパスに成功するとスクリプトは終了します。
- ドメインコントローラがパッチ適用されている場合、スクリプトは 2000 ペアの RPC 呼び出しを送信した後に停止します(ターゲットは脆弱ではなく、偽陰性の確率は 0.04%)。
- デフォルトでは、これによりドメインコントローラアカウントのパスワードが変更されることに注意してください。これにより DCSync が可能になりますが、他の DC との通信も切断されます。
- 詳細情報と元の研究は こちら
前提条件
または Impacket リリースを こちら からダウンロードしてください。解凍し、配置したディレクトリで次のコマンドを実行します。
使い方
ドメインコントローラ名 DC-NAME、IP アドレス X.X.X.X の場合、次のようにスクリプトを実行します。
python cve-2020-1472.py DC-NAME X.X.X.X
DC 名は NetBIOS コンピュータ名です。この名前が正しくない場合、スクリプトは STATUS_INVALID_COMPUTER_NAME エラーで失敗します。