CVE-2020-1472 NetLogon 权限提升漏洞

CVE-2020-1472 Netlogon特权提升漏洞分析及复现 0x01漏洞背景 NetLogon远程协议是一种在Windows 域控上使用的RPC 接口,被用于各种与用户和机器认证相关的任务。最常用于让用户使用NTLM协议登录服务器,也用于NTP响应认证以及更新计算机域密码。 微软MSRC于8月11日发布了Netlogon 特权提升漏洞安全通告。此漏洞CVE编号CVE-2020-1472,CVSS评分:10.0。由Secura公司的Tom Tervoort发现提交并命名为ZeroLogon。 0x02漏洞分析 Netlogon协议使用的是自定义的加密协议来让客户端(加 阅读详情

漏洞背景

在2020年8月份微软发布的安全公告中,有一个十分紧急的漏洞——CVE-2020-1472 NetLogon
权限提升漏洞。通过该漏洞,未经身份验证的攻击者只需要能访问域控的135端口即可通过 NetLogon
远程协议连接域控并重置域控机器的Hash,从而导致攻击者可以利用域控的机器账户导出域内所有用户的Hash(域控的机器账户默认具有DCSync权限),进而接管整个域。该漏洞存在的原因是Netlogon协议认证的加密模块存在缺陷,导致攻击者可以在没有凭据的情况下通过认证。通过认证后,调用NetLogon协议中RPC函数NetrServerPasswordSet2
来重置域控机器账户的 Hash,从而接管全域。

漏洞原理

该漏洞由Secura的安全研究员Tom Tervoort以及国内安全研究员彭峙酿、李雪峰发现。 Tom Tervoort
发布了关于该漏洞的详细原理和利用方式的白皮书,并将其名为ZeroLogon。下面分析NetLogon服务运行的流程和造成该漏洞的原因。

1、NetLogon服务

NetLogon服务为域内的身份验证提供一个安全通道,在被用于执行与域用户和机器身份验证相关的各种任务,最常见的是让用户使用NTLM协议登陆服务器。默认情况下,Netlogon
服务在域内所有机器后台运行,该服务的可执行文件路径为 C:\Windows\system32\lsass.exe,如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TCYL9fkM-1691677486284)(https://image.3001.net/images/20230508/1683552257_6458f8019800ed76dd643.png!small)]

2、Netlogon 认证流程

Netlogon 客户端和服务端之间通过Microsoft Netlogon Remote Protocol(MS-NRPC)来进行通信。MS-
NRPC并没有使用与他RPC相同的解决方案。在进行正式通信之前,客户端和服务端之间需要进行身份认证并协商出一个Session
Key,该值用于保护双方的后续的RPC通信流量。

简要的NetLogon认证流程如图所示:

图片.png

1) 由客户端启动网络登录会话,客户端调用NetrServerReqChallenge函数给服务端发送随机的8字节的Client Challenge值。2)服务端收到客户端发送的NertServerReqChallenge函数调用指令后,服务端也调用NertServerReqChallenge函数发送随机的8字节的Server
Challenge值。3)此时,客户端和服务端均收到了来自对方的 Challenge
值,然后双方都是用共享的密钥secret(客户端机器账户的Hash)以及来自对方的Challenge值通过计算得到Session Key[Session
Key=KDF(secert,(Client Challenge+Server Challenge))]。此时,客户端和服务端均拥有了相同的Client
Challenge、Server Challenge、Session Key。4)客户端使用Session Key 作为密钥加密Client Challenge 得到 Client Credential
并发送给服务端。服务端收到客户端发来的Client Credential后本地使用Session Key 作为密钥私密加密 Client Challenge
计算出Client Credential,然后比较本地计算出的Client Credential和客户端发送来的Client
Credential是否相同。如果两者相同,则说明客户端拥有正确的凭据及Session Key。5)服务端使用Session Key 作为密钥加密Server Challenge得到Server
Credential并发送给客户端。客户端收到服务端发来的Server Credential后,本地用Session Key 作为密钥加密Server
Challenge计算出Server Credential,然后比较本地计算出的Server Credential和从服务端发送来的Server
Credential是否相同。如果两者相同,则说明服务端相同的Session Key。6)至此,客户端和服务端双方互相认证成功并且拥有相同的Session Key,此后使用Session Key来加密后续的RPC通信流量。

到底是以上哪步出现了问题导致漏洞的产生呢?前两步中的Client Challenge 和 Server Challenge
分别是客户端和服务端随机化生成的8字节Challenge值,这里并没有问题,来看看后面几步。

(1)Session Key的生成第3步中的Session Key 是如何加密生成的呢?查看官方文档得知有三种加密算法可供选择,分别为AES、Strong-
key和DES。具体使用哪种加密算法由客户端和服务端协商决定。由于目前版本的WindowsServer 默认都会拒绝的DES和Strong-key加密方案,因此都是协商使用AES进行加密。

客户端和服务端协商使用AES加密后,后续会采用HMAC-SHA256算法来计算Session Key,关于SessionKey 的生成可以阅读以下图片

图片.png

从官方文档可以得知具体的计算机流程如下:* 使用MD4加密算法对共享密钥的Unicode字符串进行散列得到M4SS* 以M4SS为密钥采用HMAC-SHA256算法对Client Challenge和Server Challenge进行一系列运算得到Session Key* 最终取 Session Key 的 低 16 个字节(128位)作为最终的Session Key。

(2)Credential生成再来看看第4、5中的Credential是如何生成的。

查看官方文档得知有两种加密算法可供选择:AES和DES。具体使用哪种加密算法由客户端和服务端协商决定。由于目前版本的Windows
Server默认都拒绝DES加密方案,因此都是协商使用AES进行加密。

图片.png

客户端和服务端协商使用AES加密后,后续会采用AES-128加密算法在8位CFB模式下(也就是AES-CFB8)计算得到Credential。

现在来看看AES-CFB8加密过程:

图片.png

如图所示,首先初始化一个16字节的IV并用Session
Key对其进行AES加密,得到的结果中的第一个字节与8字节的明文input(其实就是Challenge)的第一个字节进行异或运算,将异或的结果放在IV末尾,IV整体向前移一个字节,得到新的IV。然后重复上诉加密、异或、放末尾、移位步骤,直至将所有的明文input加密完毕,得到密文output,密文output与明文input长度相同。

接下来说一说具体加密流程:* IV:fab3c65326caafc0cacb21c3f8c19f68* 明文input:0102030105060708

第一轮加密:AES(fab3c65326caafc0cacb21c3f8c19f68)=e2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx第一个字节e2与明文input第一个字节01进行异或运算得到e3,此时IV变成了b3c65326caafc0cacb21c3f8c19f68e3

第二轮加密:AES(b3c65326caafc0cacb21c3f8c19f68e3)=9axxxxxxxxxxxxxxxxxxxxxxxxxxxxxx第一个字节9a与明文input的第二个字节02进行异或运算得到98,此时IV变成了c65326caafc0cacb21c3f8c19f68e398

以此类推,经过8轮加密后,密文output为e398f5934212f0ba

从以上流程可以看出,为了完成对明文input的各个字节数据的加密,需要指定一个IV来引导整个过程。IV必需具备随机性,这样对于同一个input才能产生不同的加密结果。问题就在于微软在实现该过程中的IV并不是随机生成的,而是固定值。

3、漏洞产生的原因

NetLogon的官方文档MS-NRPC如图所示,可以看到微软使用的是Compute-NetLogonCreadential函数来生成Credential。

图片.png

在ComputeNetLogonCreadential函数中将IV初始化为全0的16字节数据,这就导致了AES-
CFB8算法出现了漏洞。在认证的过程中计算出的Session
Key是随机的,那么对全为0的IV有1/256的概率使得output也全为0。由于NetLogon协议对机器账户的认证次数没有没有限制,因此攻击者可以不断尝试来通过身份认证。

如图所示,对全为0的IV有一定概率导致output也全为0

图片.png

接下来具体说明漏洞产生的具体流程:

假设IV和明文input全为0* IV:00000000000000000000000000000000000* 明文input:00000000000000

第一轮加密:AES(00000000000000000000000000000000000)=00000000000000000000000000000000000第一个字节00与明文00的第一个字节00进行异或运算得到00,此时IV不变,还是00000000000000000000000000000000000

第二轮加密:AES

CVE-2020-1472域渗透 NetLogon 权限提升漏洞 模拟环境:获取了一个加入了域的计算机权限,在system账号权限的情况下,将域管密码置空,导出域管hash,然后进行连接 阅读详情

相关推荐

Netlogon特权提升漏洞 (CVE-2020-1472)

2020年8月份微软发布的安全公告中,有一个十分紧急的漏洞——CVE-2020-1472 NetLogon 权限提升漏洞。通过该漏洞,未经身份验证的攻击者只需要能访问域控的135端口即可通过 NetLogon 远程协议连接域控并重置域控机器的Hash,从而导致攻击者可以利用域控的机器账户导出域内所有用户的Hash(域控的机器账户默认具有DCSync权限)。该漏洞存在的原因是Netlogon协议中加密模块存在问题,导致攻击者能够在没有有效凭据的情况下通过身份认证。

渗透之路,攻防之间皆学问 5525

【域渗透提权】CVE-2020-1472 NetLogon 权限提升漏洞

本篇文章仅用于技术研究和学习,切勿利用文中提及手段非法渗透攻击,造成任何后果与本作者无关,切记!CVE-2020-1472 NetLogon 权限提升漏洞原因是未经身份认证的攻击者可通过使用NetLogon 远程协议(MS-NRPC)连接域控制器来利用此漏洞。成功利用此漏洞的攻击者可获得域管理员访问权限。Netlogon 是在活动目录中比较重要的一个服务,此服务在 DC 和域成员服务器上运行,为域身份验证提供重要服务。...

李同學AI安全 3070

CVE-2020-1472NetLogon权限提升漏洞

目录 impacket攻击 挂socks5代理打 使用mimikatz攻击 恢复域控的机器用户哈希 获得域控机器账号原始哈希 方式一 : 方式二: 恢复域控原始哈希 impacket攻击 先执行如下命令判断域控是否存在该漏洞 python3 zerologon_tester.py win2008 192.168.10.131 该脚本会将域控的机器账号哈希置为空 #查询域控的机器用户哈希 ./secretsdump.py xie.com/administrator:p..

谢公子的博客 3045

Windows NetLogon权限提升漏洞CVE-2020-1472

漏洞描述 微软官方于8月12日发布安全更新,其中修复了一个修复了NetLogon权限提升漏洞CVE-2020-1472),攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。成功利用此漏洞的攻击者可以在该网络中的设备上运行相应代码或者程序。同时,微软8月补丁中还涉及其他多个高危漏洞,Windows 用户尽快安装补丁阻止漏洞攻击。 漏洞评级 CVE-2020-1472 严重 影响版本 Windows Server 2008 R2..

Websec 1723

内网渗透(六十四)之CVE-2020-1472 NetLogon 权限提升漏洞

2020年8月份微软发布的安全公告中,有一个十分紧急的漏洞——CVE-2020-1472 NetLogon 权限提升漏洞。通过该漏洞,未经身份验证的攻击者只需要能访问域控的135端口即可通过 NetLogon 远程协议连接域控并重置域控机器的Hash,从而导致攻击者可以利用域控的机器账户导出域内所有用户的Hash(域控的机器账户默认具有DCSync权限),进而接管整个域。该漏洞存在的原因是Netlogon协议认证的加密模块存在缺陷,导致攻击者可以在没有凭据的情况下通过认证。

把自己活成一道光,因为你不知道,谁会借着你的光,走出了黑暗。请保持心中的善良,因为你不知道,谁会借着你的善良,走出了绝望。请保持你心中的信仰,因为你不知道,谁会借着你的信仰,走出了迷茫。请相信自己的力量,因为你不知道,谁会因为相信你,开始相信了自己.... 1108

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

漏洞主要是由于在使用Netlogon安全通道与域控进行连接时,由于认证协议加密部分的缺陷,导致攻击者可以将域控管理员用户的密码置为空,从而进一步实现密码hash获取并最终获得管理员权限。成功的利用可以实现以管理员权限登录域控设备,并进一步控制整个域。

further_eye的博客 1436

基于NetLogon权限提升漏洞CVE-2020-1472)的域控踢拳学习

NetLogon权限提升漏洞CVE-2020-1472) **漏洞评分10分,**漏洞利用后果严重,未经身份认证的攻击者可通过使用 Netlogon 远程协议(MS-NRPC)连接域控制器来利用此漏洞。成功利用此漏洞的攻击者可获得域管理员访问权限。 影响版本: Windows Server 2008 R2 for x64-based Systems Service Pack 1 Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Ser

qq_40806924的博客 389

提升权限_CVE-2020-1472 Netlogon权限提升漏洞分析

1. 漏洞简述漏洞名称:Netlogon 权限提升漏洞漏洞编号:CVE-2020-1472漏洞类型:权限提升CVSS评分:10利用难度:简单基础用户:不需要2. 组件概述Netlogon远程协议是一个远程过程调用(RPC)接口,用于基于域的网络上的用户和计算机身份验证。Netlogon远程协议RPC接口还用于为备份域控制器(BDC)复制数据库。Netlogon远程协议用于维护从域成员到域控制器(D...

weixin_28868927的博客 809

提升权限_CVE20201472 NetLogon 权限提升漏洞研究

本文作者Strawberry@ QAX A-TEAMCVE-2020-1472 NetLogon 权限提升漏洞是微软8月份发布安全公告披露的紧急漏洞,CVSS漏洞评分10分,漏洞利用后果严重,未经身份认证的攻击者可通过使用 Netlogon 远程协议(MS-NRPC)连接域控制器来利用此漏洞。成功利用此漏洞的攻击者可获得域管理员访问权限。本文对此漏洞进行分析,如有不足之处,欢迎批评...

weixin_39629352的博客 582

netlogon启动后停止_【通告更新】漏洞EXP已流出,影响巨大,微软NetLogon权限提升漏洞安全风险通告第三次更新...

近日,奇安信CERT监测到国外安全厂商发布了NetLogon 权限提升漏洞(CVE-2020-1472)的详细技术分析文章和验证脚本。此漏洞是微软8月份发布安全公告披露的紧急漏洞,CVSS漏洞评分10分,漏洞利用后果严重,未经身份认证的攻击者可通过使用 Netlogon 远程协议(MS-NRPC)连接域控制器来利用此漏洞。成功利用此漏洞的攻击者可获得域管理员访问权限。相关EXP已经出现。...

weixin_39796652的博客 421

[更新1.0:PoC公开]CVE-2020-1472: NetLogon特权提升漏洞通告

360CERT [三六零CERT](javascript:void(0)???? 今天 报告编号:B6-2020-091502 报告来源:360CERT 报告作者:360CERT 更新日期:2020-09-15 0x01 更新概览 2020年09月14日,360CERT监测发现 secura 公开了针对该漏洞研究报告及 PoC,可造成 权限提升影响。本次更新标识该漏洞的利用工具公开,并可能在短时间内出现攻击态势。 具体更新详情可参考: 漏洞验证 0x02 漏洞简述 2020年08月12日, 360CERT

爱国小白帽 1317

(域渗透提权)CVE-2020-1472 NetLogon权限提升漏洞

CVE-2020-1472是继永恒之蓝漏洞之后又一个好用的内网提权漏洞,影响Windows Server2008R2至2019的版本。只要攻击者能够访问到目标域控并且知道域控计算机名即可利用该漏洞。该漏洞不要求当前计算机在域内,也不要求当前计算机操作系统为Windows,该漏洞的稳定利用方式为重置目标域控的密码,然后利用域控凭证进行DC Sync获取域管权限后修复域控密码。漏洞利用过程中会重置域控存储在域中的凭证,而域控存储在域中的凭证域本地的注册表中的凭证不一致时,会导致目标域控脱域,所以在。

m0_64481831的博客 1025

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

CVE-2020-1472 | Netlogon 特权提升漏洞预警 CVE-2020-1472 | Netlogon 特权提升漏洞预警 https://www.cnblogs.com/micr067/p/13677467.html 0x01 简介 CNVD:http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-202008-548 NetLogon组件是 Windows 上一项重要的功能组件,用于用户和机器在域内网络上的认证,以及...

荒野求生的博客 449

[内网渗透]—NetLogon 域内提权漏洞(CVE-2020-1472)

CVE-2020-1472 是⼀个 windows 域控中严重的远程权限提升漏洞,攻击者通过 NetLogon,建⽴与域控间易受攻击的安全通道时,可利⽤此漏洞获取域管访问权限(将域控中保存在AD中的管理员password设置为空);其漏洞原理是发⽣在 RPC 认证过程的过程中,由于错误的使⽤了 AES-CFB8 加密所致。获取了一个加入了域的计算机权限,在域普通账号的情况下,将域管密码置空,导出域管hash,然后进行连接。

Sentiment的博客 840

【技术分享】NetLogon于域内提权漏洞(CVE-2020-1472)

python3 restorepassword.py 域/预控计算机名称@预控计算机名称 --tar-ip 域控ip -hexpass $MACHINE.ACC:的值的后半部分 python3 restorepassword.py redteam.red/owa@owa -target-ip 10.10.10.8 -hexpass 9c786d87f82b46071818e5bda3a9faab。攻击者只需要定位域控主机名及IP,同时确认可以访问域控,就可以在无需任何凭据的情况下 (

qwe546918的博客 151

aes加密算法原理_Netlogon特权提升漏洞原理分析与验证

本文作者:奇安信代码安全实验室漏洞简介CVE-2020-1472是一个windows域控中严重的远程权限提升漏洞。由于微软在Netlogon协议中没有正确使用加密算法而导致的漏洞,微软在进行AES加密运算过程中,使用了AES-CFB8模式并且错误的将IV设置为全零,这使得攻击者在明文(client challenge)、IV等要素可控的情况下,存在较高概率使得产生的密文为全零。下面就整个攻击过程做...

weixin_39600616的博客 547
上一篇: CTF-Anubis HackTheBox 渗透测试(二)
下一篇: [ComfyUI实战]清凉夏日-城市地标冰淇淋,酷暑清爽凉意
梅花十三儿
博客等级 码龄5年 1035粉丝 444原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值