前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZeroLogon(CVE-2020-1472) 分析与狩猎

ZeroLogon(CVE-2020-1472) 分析与狩猎

作者头像
tinyfisher
发布2020-10-23 11:30:28
3.1K0
发布2020-10-23 11:30:28
举报
文章被收录于专栏:湛卢工作室

2020年9月11日,安全公司Secura发布了公告,披露了Microsoft在2020年8月修补的漏洞细节(CVE-2020-1472)。该漏洞也称为“Zerologon”,CVSS评分为10.0,号称3秒撸域控,危害严重。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。本文将从“Zerologon”漏洞原理、漏洞复现、威胁狩猎三个维度对“Zerologon”进行分析。

0x01 漏洞原理

Netlogon远程协议是一个远程过程调用(RPC)接口,用于基于域的网络上的用户和计算机身份验证,其协议通讯流程如下:

根据上述流程,攻击者可控的因素有client challenge(在“Zerologon”中,攻击者会将client challenge设置为全0),server challenge在每一轮认证过程中都会变化,secret对应于用户密码的hash,Encrypt的过程采用的是AES-CFB8,其运算过程如下:

AES-CFB8安全性取决于随机选择的IV。但在Netlogon RPC中,作为ComputeNetlogonCredential检查的一部分,IV被错误的设置为0。如果IV和client challenge为全0的话,那么整个AES运算过程变成:

如此一来,通过AES-CFB8加密模式有1/256 概率用8字节全0 明文得到8字节全0密文。

通过上述碰撞方法,攻击者可以向域发起Netlogon 计算机账户认证请求, 使用8字节全0 client challenge 不断尝试得到一个正确的8字节全0 client credential 通过认证,再通过相关调用完成对域控密码的修改。

0x02 漏洞复现

实验环境:

代码语言:javascript
复制
域控:Winserver2012 R2(x64)
IP:10.10.10.10
hostname:DC
域:de1ay.com
代码语言:javascript
复制
攻击机:ubuntu1604(x64)
IP:10.10.10.111

运行exp脚本,成功将AD域控的机器账户DC的密码置换成空:

代码语言:javascript
复制
python3 cve-2020-1472-exploit.py  DC 10.10.10.10

此时域控服务器账户密码为空,同等于已知密码,可以导出域内所有用户凭据:

代码语言:javascript
复制
python3 secretsdump.py de1ay/DC\$@10.10.10.10 -no-pass

导出hash后,发现DC的hash为31d6cfe0d16ae931b73c59d7e0c089c0,也就是空密码,同时获得了域管administrator的hash,利用administrator的hash拿下域控:

代码语言:javascript
复制
python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24 Administrator@10.10.10.10

0x03 Threat Hunting Rules

根据上述的分析和验证,针对“Zerologon”这样一个全新的威胁,我们已经清楚了攻击者相应技战术TTP(MITRE ATT&CK:TA0004,T1078.002),假设攻击者已经潜伏在企业内网中,并且正在尝试利用“Zerologon”漏洞攻击域控,在基于上述的假设场景的驱动下,我们该如何通过威胁狩猎(Threat Hunting)的方式主动搜寻这个威胁的相关特定信息,从而发现潜伏在企业中的攻击者?

思路一:通过AD系统审计日志

在实验室环境下,如果域控服务器没有打补丁,攻击者利用“Zerologon”漏洞攻击成功后会有event ID 4742:

event ID 4742表示计算机帐户已更改,我们注意到帐户名是“ANONYMOUS LOGON”,受影响的帐户名称是域控制器计算机帐户(DC$)。所以event ID 4742可以用来发现疑似“Zerologon”漏洞攻击行为,但仅仅通过event ID 4742还不够,因为正常的账户更改也会产生event ID 4742,所以会产生一定的误报。由于攻击者需要通过netlogon RPC协议进行多次尝试,还会产生event ID 5805:

所以基于域控的系统审计日志,我们的Threat Hunting Rule可以这么写:

  • 在SIEM中同时检索到域控系统审计日志的两个event ID:失败尝试event ID 5580和成功利用漏洞event ID 4742;
  • 并且event ID 4742中帐户名为“ANONYMOUS LOGON”

此外,在8月份的补丁中,Microsoft添加了五个新的event ID,以通知易受攻击的Netlogon连接:

  • 允许存在漏洞的Netlogon安全通道连接时,将生成event ID 5829
  • 拒绝易受攻击的Netlogon连接时,将触发event ID 5827和5828
  • 允许存在漏洞的Netlogon连接时触发的event ID 5830和5831

如果域控已经安装了补丁,还可以在SIEM中搜索以上5个event ID进行威胁狩猎。

思路二:通过网络流量

根据上面的分析,攻击者需要使用8字节全0 client challenge 不断尝试得到一个正确的8字节全0 client credential 通过认证所以网络中将会有大量的netlogon协议信息:

我们可以使用全流量工具过滤出netlogon协议信息(“protocols == dcerpc”),如果短时间内出现大量的NetrServerAuthenticate3请求,并且client credential全为0,这样的行为是比较异常的。可以参考SOC Prime Team利用zeek编写的Threat Hunting Rule:

代码语言:javascript
复制
title: Possible CVE-2020-1472 (zerologon)
description: CVE-2020-1472 (Netlogon Elevation of Privilege Vulnerability) may create thousands of NetrServerReqChallenge & NetrServerAuthenticate3 requests in a short amount of time.
author: SOC Prime Team
date: 2020/09/11
references:
- https://github.com/SecuraBV/CVE-2020-1472
tags:
- attack.lateral_movement
- attack.T1210
logsource:
  product: zeek
  service: dce_rpc
detection:
  selection:
    endpoint: 'netlogon'
    operation: 'NetrServerReqChallenge'
  selection2:
    endpoint: 'netlogon'
    operation: 'NetrServerAuthenticate3'
  timeframe: 1m
  condition: selection or selection2 | count() by src_ip > 100
falsepositives:
- 'unknown'
level: high

最后,在实验室环境中,由于“Zerologon”漏洞利用会将域控服务器的密码置为空,会造成域内服务的一些异常,所以这个漏洞不但会对域控的安全性造成威胁,实际的攻击利用也会影响AD域控的可用性,因此还是及时打补丁吧。

参考资料:

https://www.cynet.com/zerologon/

https://awakesecurity.com/blog/network-threat-hunting-for-zerologon-exploits-cve-2020-1472/

https://blog.zsec.uk/zerologon-attacking-defending/

https://medium.com/@sieutruc/detection-methods-for-the-cve-2020-1472-zerologon-by-using-the-existing-windows-log-9761ee69d9fc

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 湛卢工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 漏洞原理
  • 0x02 漏洞复现
  • 0x03 Threat Hunting Rules
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档