当前位置: 首页 > news >正文

Windows RPC运行时漏洞事后总结

2022年4月前后,Windows RPC运行时被曝出存在远程代码执行漏洞,当时曾引起很多人广泛关注。微软很快做出反应,发布补丁程序进行修补。这次事件中,Windows远程过程调用(RPC)运行时共出现三个关键漏洞:CVE-2022-24492、CVE-2022-24528和CVE-2022-26809。

本文主要将介绍其中两个漏洞的信息,它们所产生的影响和范围,以及可行的缓解措施。

Akamai最近还撰写了一篇有关RPC筛选器的指南,该工具可以限制并阻止Windows计算机之间的RPC流量。虽然我们还未确认RPC筛选器是否可以缓解本文所讨论的漏洞,但建议感兴趣的读者阅读此文,进一步了解该工具的机制。

漏洞及其影响

通过利用这些漏洞,未经授权的远程攻击者将能利用RPC服务特权在存在漏洞的计算机上远程执行代码,当然这还要取决于承载RPC运行时的进程。该漏洞可以从网络外部利用借此入侵网络,此外也可用于网络内部横向移动。

如上表所示,CVE-2022-26809是一种“零点击”漏洞,无需人工介入即可利用。因此它在通用漏洞评分系统(CVSS)中一举得到了9.8分的高分(满分10分)。这意味着该漏洞的严重性极高,并且被攻击者利用的可能性极大。

谁容易受到威胁?

任何Windows计算机,只要445端口被打开且RPC运行时库未安装补丁,都会受到该漏洞威胁。根据Shodan的数据,目前有超过70万台Windows计算机将该端口暴露在互联网上。根据微软的介绍。监听该TCP端口的服务器也会受到潜在威胁。

定位并理解该漏洞

CVE中提到,该漏洞位于Windows RPC运行时中,该运行时是通过库文件rpcrt4.dll实现的。当客户端和服务器进程利用RPC协议进行通信时,双方都会加载这个运行时库。

我们对比了该文件的10.0.22000.434版(2022年3月补丁修补前)和10.0.22000.613版(2022年4月,补丁修补后),发现有如下多个函数产生了变化:

其中OSF_CCALL::ProcessResponse和OSF_SCALL::ProcessReceivedPDU这两个函数引起了我们的注意。这两个函数本质上较为相似,都负责处理RPC数据包,但一个运行在客户端,另一个运行在服务器端(CCALL和SCALL分别代表客户端和服务器端)。我们继续研究OSF_SCALL::ProcessReceivedPDU的变更,并注意到新版本中增加的两个代码块。

查看修补后的代码可以看到,在QUEUE::PutOnQueue之后调用了一个新函数。继续深入这个新函数并查看其代码发现,该函数会检查整数溢出。也就是说,新增的这个函数是为了验证整数变量是否保持在预期值范围内。

继续深入查看OSF_SCALL:GetCoalescedBuffer中有漏洞的代码后发现,这个整数溢出漏洞会导致堆缓冲区溢出,即数据被复制到一个太小而装不下的缓冲区中。这进而会导致数据被写入到缓冲区边界之外的堆中。只要善加利用,这个基元就可能导致远程代码执行。

其他几个函数页增加了类似的,用于检查整数溢出的调用:

  • OSF_CCALL::ProcessResponse
  • OSF_SCALL::GetCoalescedBuffer
  • OSF_CCALL::GetCoalescedBuffer

该整数溢出漏洞和防止此漏洞的函数同时存在于客户端和服务器端的执行流程中。

缓解措施

虽然RPC使用了多种安全控制机制和措施(例如安全回调),但我们依然建议根据微软的说明执行下列缓解措施:

  1. 安装最新安全更新,缓解这些漏洞。
  2. 虽然RPC对系统中的某些服务是必须的,但对企业边界范围外的设备,建议阻止TCP 445端口的通信。
  3. 为了遏制横向移动,建议只对真正需要的计算机(如域控制器、打印服务器、文件服务器等)允许传入的TCP 445端口通信。

Akamai Guardicore Segmentation规则

Akamai Guardicore Segmentation旨在保护用户防范利用这些漏洞发起的攻击。如上文所述,CVE-2022-26809因为完全无需人工介入即可生效,因此CVSS评分极高。这意味着该漏洞被利用时,用户和安全团队可能都无法察觉。通过使用明确的访问控制机制对网络进行微分段,即可防止利用这些漏洞的攻击进入内部网络或在网络中横向移动。

为了应用缓解措施,阻止来自网络外部的SMB流量,请创建如下的分段规则:


相关文章:

Windows RPC运行时漏洞事后总结

2022年4月前后,Windows RPC运行时被曝出存在远程代码执行漏洞,当时曾引起很多人广泛关注。微软很快做出反应,发布补丁程序进行修补。这次事件中,Windows远程过程调用(RPC)运行时共出现三个关键漏洞&#xf…...

运算电路(1)——加法器

一、引言 微处理器是由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片…...

ESP32-WIFI(Arduino)

ESP32-WIFI Wi-Fi是一种基于IEEE 802.11标准的无线局域网技术,是Wi-Fi联盟制造商的商标作为产品的品牌认证。它可以让电脑、手机、平板电脑等设备通过无线信号连接到互联网 。 在无线网络中,AP(Access Point)和 STA(St…...

【网络虚拟化】网络设备常见冗余方式——堆叠、M-Lag、DRNI

网络设备常见冗余设计——堆叠、M-Lag、DRNI 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 网络设备常见冗余设计——堆叠、M-Lag、DRNI 网络设备常见冗余设计——堆叠、M-Lag、DRNI前言一、网络设备虚拟化二、堆叠技术1.技术原理2.…...

arm的侏罗纪二 cache学习

个人觉得inner shareable和outer shareable;POU和POC 是难点,慢慢学习吧。 inner shareable是cluster内 outer shareable是cluster之间 参考文献: 深入学习Cache系列 1: 带着几个疑问,从Cache的应用场景学起 https://www.eet-c…...

Protecting Intellectual Property of Deep NeuralNetworks with Watermarking

保护深度神经网络的知识产权与数字水印技术 ABSTRACT 深度学习是当今人工智能服务的关键组成部分,在视觉分析、语音识别、自然语言处理等多个任务方面表现出色,为人类提供了接近人类水平的能力。构建一个生产级别的深度学习模型是一项非常复杂的任务&a…...

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括:需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…...

AnnData:单细胞和空间组学分析的数据基石

AnnData:单细胞和空间组学分析的数据基石 今天我们来系统学习一下单细胞分析的标准数据类型——AnnData! AnnData就是有注释的数据,全称是Annotated Data。 AnnData是为了矩阵类型数据设计的,也就是长得和表格一样的数据。比如…...

C语言中的 `string.h` 头文件包含的函数

C语言中的 string.h 头文件包含了许多与字符串或数字相关的函数。这些函数可以用于字符串的复制、连接、搜索、比较等操作。 常用字符串函数 函数名功能strlen()返回字符串的长度strcpy()将一个字符串复制到另一个字符串中strncpy()将最多 n 个字符从一个字符串复制到另一个字…...

kotlin的抽象类和抽象方法

在 Kotlin 中,抽象类和抽象方法是面向对象编程中的概念,用于实现抽象和多态性。抽象类无法实例化,这意味着我们无法创建抽象类的对象。与其他类不同,抽象类总是打开的,因此我们不需要使用open关键字。 抽象类&#xff…...

2022年面经记录(base杭州)

duandian科技(笔试未通过) 笔试题:leetCode热题第20题有效的括号 面后感:没怎么刷算法题,js 基础不扎实 laiweilai(三面未通过) 一面:笔试题 写一个函数,获取url中的指定…...

安装Docker图形管理界面portainer

安装Docker图形管理界面portainer 映射data文件夹根据自己环境更换 docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath/docker/portainer:/data --restartalways portainer/portainer-ce:latest好好享受吧&#xff01…...

Linux学习记录——사십 高级IO(1)

文章目录 1、IO2、同、异步IO(5种IO类型)3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input,output。调用read或recv接口时,如果对方长时间不向我方接收缓冲区拷贝数据,我们的进程就只能阻塞&a…...

【代码随想录】2

数组篇 二分查找 int search(int* nums, int numsSize, int target) { int left0; int rightnumsSize-1; while(left<right) {int mlddle(leftright)/2;if(nums[mlddle]>target){rightmlddle-1;}else if(nums[mlddle]<target){leftmlddle1;}else{return mlddle;}} r…...

TCP性能分析

ref&#xff1a; TCP性能和发送接收窗口、Buffer的关系 | plantegg...

RibbonGroup 添加QRadioButton

RibbonGroup添加QRadioButton&#xff1a; QRadioButton * pRadio new QRadioButton(tr("Radio")); pRadio->setToolTip(tr("Radio")); groupClipboard->addWidget(pRadio); connect(pRadio, SIGNAL(clicked(…...

一篇文章掌握WebService服务、工作原理、核心组件、主流框架

目录 1、WebService定义 解决问题&#xff1a; 2、WebService的工作原理 2.1 实现一个完整的Web服务包括以下步骤 2.2 调用方式 3、Web Service的核心组件 3.1 XML 3.2 SOAP 3.3 WSDL 3.4 UDDI 4、主流框架 4.1 AXIS(已淘汰) 4.2 XFire 4.3 CXF 5、Soap协议详解…...

观成科技-加密C2框架EvilOSX流量分析

工具简介 EvilOSX是一款开源的&#xff0c;由python编写专门为macOS系统设计的C2工具&#xff0c;该工具可以利用自身释放的木马来实现一系列集成功能&#xff0c;如键盘记录、文件捕获、浏览器历史记录爬取、截屏等。EvilOSX主要使用HTTP协议进行通信&#xff0c;通信内容为特…...

PCL 计算异面直线的距离

目录 一、算法原理二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,PCL 计算异面直线的距离,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设置直线 A B AB A...

【数字人】9、DiffTalk | 使用扩散模型基于 audio-driven+对应人物视频 合成说话头(CVPR2023)

论文&#xff1a;DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation 代码&#xff1a;https://sstzal.github.io/DiffTalk/ 出处&#xff1a;CVPR2023 特点&#xff1a;需要音频对应人物的视频来合成新的说话头视频&#xff0c;嘴部抖…...

Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署

Pixel Dream Workshop一文详解&#xff1a;基于diffusers的FluxPipeline定制部署 1. 像素幻梦创意工坊概述 Pixel Dream Workshop&#xff08;像素幻梦创意工坊&#xff09;是一款专为像素艺术创作设计的AI生成工具&#xff0c;基于最新的FLUX.1-dev扩散模型构建。与传统AI绘…...

高效掌控暗影精灵设备:开源工具OmenSuperHub的四大突破

高效掌控暗影精灵设备&#xff1a;开源工具OmenSuperHub的四大突破 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 告别原厂软件臃肿困扰&#xff0c;体验纯净硬件控制新方式 OmenSuperHub是一款专为惠普暗影精灵笔记本打造…...

免费开源钥匙建模终极指南:快速生成3D打印钥匙模型

免费开源钥匙建模终极指南&#xff1a;快速生成3D打印钥匙模型 【免费下载链接】keygen OpenSCAD tools for generating physical keys 项目地址: https://gitcode.com/gh_mirrors/ke/keygen 在数字化制造时代&#xff0c;开源钥匙建模工具Keygen为技术爱好者和实践者提…...

学习记录:数据预处理流程全解析

学习记录&#xff1a;数据预处理流程全解析 在大数据分析过程中&#xff0c;数据预处理是极为关键的环节&#xff0c;它直接影响到后续分析结果的准确性和可靠性。近期深入学习了数据预处理的各个流程&#xff0c;包括数据清洗、数据集成、数据变换和数据归约&#xff0c;下面将…...

2025年Cursor免费续杯终极指南:绕过限制的自动化方案

1. 为什么需要Cursor免费续杯方案 作为一个长期使用AI编程工具的老用户&#xff0c;我完全理解学生和独立开发者面临的困境。Cursor作为一款优秀的AI编程助手&#xff0c;确实能大幅提升开发效率&#xff0c;但每月150次的免费额度对于项目开发来说实在捉襟见肘。特别是在调试和…...

ScanTailor Advanced:免费开源扫描文档处理终极指南

ScanTailor Advanced&#xff1a;免费开源扫描文档处理终极指南 【免费下载链接】scantailor-advanced ScanTailor Advanced is the version that merges the features of the ScanTailor Featured and ScanTailor Enhanced versions, brings new ones and fixes. 项目地址: …...

提升90%效率:OpenCore EFI自动化配置工具OpCore-Simplify实战指南

提升90%效率&#xff1a;OpenCore EFI自动化配置工具OpCore-Simplify实战指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 副标题&#xff1a;面向…...

FlowState Lab新手避坑指南:快速上手时间序列预测的5个技巧

FlowState Lab新手避坑指南&#xff1a;快速上手时间序列预测的5个技巧 1. 环境准备与快速部署 1.1 系统要求与安装步骤 FlowState Lab作为基于IBM Granite架构的时间序列分析工具&#xff0c;对运行环境有以下要求&#xff1a; 操作系统&#xff1a;Linux (推荐Ubuntu 20.…...

破解除密!ncmdumpGUI让你的NCM音乐文件重获自由

破解除密&#xff01;ncmdumpGUI让你的NCM音乐文件重获自由 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 当你精心收藏的数百首网易云音乐歌曲&#xff0c;在…...

Scarab:基于Avalonia的跨平台空洞骑士模组管理器架构解析

Scarab&#xff1a;基于Avalonia的跨平台空洞骑士模组管理器架构解析 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab Scarab是一款专为《空洞骑士》游戏设计的跨平台模组管理器…...