CVE-2020-1472 (ZeroLogon) 検出および緩和デモ
このプロジェクトは、ZeroLogonとしても知られる深刻なWindows脆弱性CVE-2020-1472の検出と緩和を示しています。この脆弱性により、攻撃者は認証なしで管理者アクセスを取得できます。これは学校のサイバーセキュリティプロジェクトの一環として開発されました。PoCコードのクレジットはTom Tervoort(Secura)に、SuricataルールセットのクレジットはProofpoint Emerging Threatsに帰属します。
主な構成要素:
- PoCスクリプトを使用したドメインコントローラの脆弱性テスト
- Windowsイベントログを介した兆候の監視
- カスタムルールを使用したSuricata IDSの実装
- Windows Updateの適用
実証された検出手法
1. 脆弱性テストスクリプト
- Tom Tervoort(Secura)によるPythonスクリプト
- Netlogon認証バイパスを介してドメインコントローラの脆弱性をテストするために
impacketライブラリを活用
2. Windowsイベントログ分析
以下の主要なイベントを探します:
4624: DC資格情報を使用した正常なログオン
4672: 攻撃者に割り当てられた特別な特権(例:管理者)
5805: Netlogonエラーイベント(悪用の兆候)
3. Suricataを使用した侵入検知
- Suricataを使用してドメインコントローラ上のネットワークトラフィックを分析
- Proofpoint Emerging Threatsルールセットからのカスタムルールを実装
- ZeroLogonエクスプロイトで一般的に使用されるゼロバイトのシーケンスを検出
要件
このデモを再現するには、以下のセットアップが必要です:
攻撃者マシン
ターゲットマシン
- VirtualBox(同じNATNetwork構成、プロミスキャスモード有効)
- Windows Server 2019 Essentials(2019年9月更新)
- 新しいドメインとDCを作成(ターゲットマシンサーバーをDCとして使用)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- Proofpoint Emerging Threats Rulesリポジトリからのルールファイル
emerging-all.rules by Proofpoint
設定メモ:
Suricataの設定は**Notepad++**を使用して変更されました:
HOME_NETはターゲットマシンのIPアドレスに設定されました
rule-filesセクションはemerging-all.rulesファイルを使用するように更新されました
検出アプローチのデモンストレーション
ステップ1: ターゲットマシンのコンピュータ名とIPアドレスを確認
- サーバーマネージャーを開きます。
- ローカルサーバーに移動します。Ethernetの下にあるコンピュータ名とIPアドレスをメモします。このデモでは、コンピュータ名はFTB4-Victim-Win、IPアドレスは10.0.2.4です。

ステップ2: 脆弱性テストスクリプトの起動
- 攻撃者マシンでターミナルを開きます
- ターゲットマシンのコンピュータ名とIPを指定してPythonテストスクリプトを実行します:
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- スクリプトは、ドメインコントローラがZeroLogon攻撃によって完全に侵害される可能性があることを示すメッセージで終了します。

ステップ3: Windowsイベントログの分析
- ターゲットマシンでイベントビューアーを起動します。アイコンはタスクバーにあります。
- Windowsログ、次にセキュリティに移動します。
- 以下に示すように、ZeroLogonバイパスに関連する2つのセキュリティイベントがあります:イベント4672とイベント4624。


- システム(同じくWindowsログの下)に移動します。レベルがエラーでソースがNETLOGONのイベントが見つかるまでスクロールダウンします。それを選択します。これはZeroLogonバイパスに関連する別のイベントです。

- Windowsイベントビューアーを閉じて構いません。
ステップ4: Suricataを使用した侵入検知
- ターゲットマシンで、管理者としてコマンドプロンプトを開きます。
- 以下のコマンドを実行してSuricataを起動します:
cd C:\Program Files\Suricata\
- 適切なIPアドレスを指定して以下のコマンドを実行します
suricata -c suricata.yaml -i <target IP> -l log

- タスクバーのアイコンからエクスプローラーを開きます。
C:\Program Files\Suricata\logに移動します。
- ナビゲーションバーに
powershellと入力し、Enterキーを押します。Windows PowerShellが起動します。

- Windows PowerShellで
get-content .\fast.log -waitと入力し、Enterキーを押します。以前のテストからのログは無視し、空のスペースまでスクロールダウンします。

- 攻撃者マシンでもう一度Pythonテストスクリプトを起動します。
- ターゲットマシンに戻り、生成された新しいアラートを確認します。これらのアラートはZeroLogonの試行または悪用を示しています。

- Windows PowerShellとコマンドプロンプトのウィンドウを閉じて構いません。
fast.txtを開きます。ログはこのファイルに保存されています。

緩和アプローチのデモンストレーション
CVE-2020-1472 (ZeroLogon) に対する最も効果的な緩和策は、最新のWindowsセキュリティ更新プログラムをインストールすることです。
手順:
- ターゲットマシンで設定アプリを開きます。
- 更新とセキュリティ → Windows Update に移動します
- **「更新プログラムのチェック」**をクリックし、システムが最新の更新プログラムをダウンロードしてインストールするのを待ちます。
- 必要に応じてマシンを再起動します。

これらの更新プログラムは、安全なリモートプロトコルの使用を強制し、ドメインコントローラでデフォルトで強制モードを有効にすることで、MicrosoftのZeroLogon脆弱性の修正を適用します。
制限事項に関する注意
このプロジェクトで実証された検出および緩和アプローチは、制御されたラボ環境内での教育目的のために設計されています。CVE-2020-1472 (ZeroLogon) の背後にある概念を説明するのに効果的ですが、制限があり、実際のエンタープライズ環境への展開には完全には実用的ではありません。これは学校のプロジェクトであるため、本番環境向けのソリューションを実装するのではなく、サイバーセキュリティ技術の学習と理解に重点を置いています。
謝辞
特に感謝いたします
参考文献
著者
@tdevworks
免責事項
このリポジトリは教育目的のみで作成されています。
実証されたすべてのツール、スクリプト、技術は、制御されたラボ環境でサイバーセキュリティの脆弱性を理解するのに役立つことを目的としています。所有していない、またはテストする明示的な許可がないシステムやネットワークで提供された資料を使用しようとしないでください。
著者は、提供された情報の誤用について一切の責任を負いません。