微软服务器漏洞,微软SMBv3客户端/服务端远程代码执行漏洞(CVE-2020-0796)技术分析...

2023-11-02

微软安全中心在北京时间3月12日23时发布了影响Windows 10 等系统用户的SMBv3远程代码执行漏洞补丁。我们建议受影响的用户尽快按微软更新信息指南安装该补丁:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796。

同时,360Vulcan Team对该漏洞进行了快速分析,该漏洞属于高危的零接触远程代码执行漏洞,技术分析如下。

SMB漏洞分析

根本原因

漏洞发生在srv2.sys中,由于SMB没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法.最终导致整数溢出。

详细分析

SMB v3中支持数据压缩,如果SMB Header中的ProtocolId为0x424D53FC也就是0xFC, 'S', 'M', 'B'.那么就说明数据是压缩的,这时smb会调用压缩解压处理的函数.

首先SMB会调用srv2!Srv2ReceiveHandler函数接收smb数据包,并根据ProtocoIId设置对应的处理函数。

__int64 __fastcall Srv2ReceiveHandler(__int64 a1, void *Src, __int64 a3, unsigned int a4, unsigned int *a5, char *Srca, struct _SLIST_ENTRY *a7, _QWORD *a8)

{

...

//

// 这里判断头部ProtocolId

//

if ( **((_DWORD **)&v20[15].Next[1].Next + 1) == 'BMS\xFC' )

{

if ( KeGetCurrentIrql() > 1u )

{

v20[14].Next = (_SLIST_ENTRY *)v11;

v20[2].Next = (_SLIST_ENTRY *)Srv2DecompressMessageAsync;

v43 = HIDWORD(v20->Next) == 5;

*((_DWORD *)&v20[3].Next + 2) = 0;

if ( v43 )

{

LOBYTE(v71) = 1;

LOBYTE(v35) = 1;

SRV2_PERF_ENTER_EX(&v20[32].Next + 1, v35, 307i64, "Srv2PostToThreadPool&

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微软服务器漏洞,微软SMBv3客户端/服务端远程代码执行漏洞(CVE-2020-0796)技术分析... 的相关文章

  • centos7中iptables配置log日志记录所有流量

    CentOS 7 0默认使用的是firewall作为防火墙 使用iptables必须重新设置一下 1 直接关闭防火墙 systemctl stop firewalld service 停止firewall systemctl disable
  • c语言编译器mingw的使用说明,C语言编译器MINGW的使用说明

    在mingw环境中生成和使用dll都是十分方便的 1 生成dll gcc g shared o test dll test c 一直用VS 看现在Eclipse很火 便想弄一下玩玩 用到了MINGW 继而用到了GCC 对GCC相当的不熟悉
  • [JS] Flatten array

    拍平数组 这个在lodash里也是很常见的方法 那自己实现一个看看 普通拍平 const flatten arr gt concat arr map v gt Array isArray v v v 测试 flatten 1 2 3 4 5
  • 【历史上的今天】1 月 16 日:互联网工程任务组(IETF)成立;AMD 收购 NexGen;eBay 的第一位员工出生

    整理 王启隆 透过 历史上的今天 从过去看未来 从现在亦可以改变未来 今天是 2022 年 1 月 16 日 在 25 年前的今天 国家电力公司组建成立 电力是运作着我们生活的基本 国家电力公司成立于 1997 年 1 月 16 日 于 2
  • Text-To-Speech(TTS)语音朗读

    Text To Speech TTS 语音朗读 更新 2010 04 08 来源 互联网 字体 大 中 小 TextToSpeech简称 TTS 是Android 1 6版本中比较重要的新功能 将所指定的文本转成不同语言音频输出 它可以方便
  • 微软消息队列-MicroSoft Message Queue(MSMQ)队列的C#使用

    什么是MSMQ Message Queuing MSMQ 是微软开发的消息中间件 可应用于程序内部或程序之间的异步通信 主要的机制是 消息的发送者把自己想要发送的信息放入一个容器中 我们称之为Message 然后把它保存至一个系统公用空间的
  • 大一上期Python考前复习

    初识Python考试前复习 Python介绍 基本语法 1 赋值语句 2 del语句 3 if 语句 4 for循环语句 4 while循环语句 4 1循环下的语句 数据类型 1 数据可变性 2 数据类型 2 1 格式化输出 3 列表 字典
  • 初阶C语言(1)-6200字带你初识C语言

    目录 前言 如何创建一个项目 第一个C语言程序 基本数据类型 变量与常量 字符串与转义字符 选择语句 循环语句 函数 数组 操作符 关键字 常量和宏 指针 结构体 前言 本节旨在初步认识C语言 有的知识在之后会详细讲 C语言是一门面向过程的
  • Java+SSM+Vue 毕业设计 房屋出租出售管理系统(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 2 1 系统开发流程 3 2 2 操作流程 3 3 系统结构设计 4 项目获取 1 项目简介 Hi 各位同学好呀 这里是M学姐 今天向
  • STL之lexicographical_compare

    lexicographical compare and lexicographical compare 3way the latter is not part of the C standard 功能 Returns true if the
  • pip豆瓣源

    豆瓣源地址 https pypi douban com simple 使用方法 pip install 需要的包名 i https pypi douban com simple 豆瓣源也解决了我使用清华源或阿里源的时候Anaconda下载的
  • 字符数组学习

    有关办公中内容读取和写入的 是很常见的 需要通过移位和偏移 计算每次的地址 再累加运算 一种是字符数组 另一种是字符串常量 它们在内存中的存储位置不同 字符数组可以读取和修改 而字符串常量只能读取不能修改 比如这样字符串 NOVO4CCC6
  • 网络5层体系结构中的数据传输过程

    5层网络体系结构 应用层 运输层 网络层 网际层 数据链路层 物理层 物理层 主要任务 考虑怎样才能在连接各种计算的传输媒体上传输数据比特流 数据链路层 mac层 主要任务 在同一个局域网中 分组怎样从一个主机传送到另一个主机 不经过路由器
  • Java 介绍与环境搭建

    文章目录 Java 介绍与环境搭建 Java 背景介绍 Java 背景故事 Java 三大平台 Java SE Java ME Java EE Java 跨平台工作原理 平台与跨平台 跨平台工作原理 JDK 下载和安装 下载 JDK 安装
  • 【imx6ull】视频监控项目(usb摄像头+ffmepeg)

    文章目录 前言 1 总体方案介绍 2 配置v4l2驱动与UVC驱动 3 v4l2应用编程测试摄像头 4 ffmepg移植 总结 前言 参考视频 韦东山老师手把手带你从0开始自己做一个视频监控系统 1 总体方案介绍 这篇文章写的很好 很容易理
  • cmake——project

    命令project用于设置项目的名称 project
  • 关于VISIO工具栏、菜单栏消失的解决办法

    关于VISIO工具栏 菜单栏消失的解决办法 1 打开注册表编辑器 2 VISIO 2000 HKEY CURRENT USER Software Visio Visio2000 Toolbars 删除上述键值 再启动VISIO 2000就可
  • 查看占用指定端口的程序

    netstat lntup grep 8080
  • 【半监督学习】5、Efficient Teacher

    文章目录 一 背景 二 方法 2 1 Dense Detector 2 2 Pseudo Label Assigner 2 3 Epoch Adaptor 三 效果 论文 Efficient Teacher Semi Supervised

随机推荐

  • brpc组件bvar源码解析(四)Sampler、SamplerCollector和Window类簇

    1 Sampler类 Sampler是所有采样类的基类 采样类中最重要的是take sample函数 采样类的schedule函数调用之后 它的take sample函数将会被一个专门的线程每1秒定时调用 Sampler类的定义 Sampl
  • Redis持久化存储RDB(写时复制)/AOF

    快照 RDB save 会阻塞当前Redis服务器 直到持久化完成 线上应该禁止使用 明确时间点 关机维护 bgsave fork一个子进程 由子进程负责持久化过程 父进程发生写操作修改内存数据时 Copy On Write 才会真正去分配
  • NFS服务详解

    文章目录 一 NFS概述 二 NFS工作原理 2 1NFS工作流程 2 2挂载原理 三 NFS服务部署 3 1常用命令 3 2服务器端配置 3 3客户端配置 3 4服务测试 四 总结 一 NFS概述 1 概述 NFS是一种基于TCP IP
  • 分享菜鸟学Python,从入门到进阶的心得

    来自一位投稿粉丝的学习心得 从最初学Python从爬虫开始 到数据分析 再到GUI的实现 以及后来的机器学习和深度学习文章 我与大家已经走过了好几个月的时间 在这几个月的时间里 我通过文章与大家一同学习 一同进步 向大家展示了如何通过Pyt
  • 第三章 分类模型-随机森林知识点详细总结

    机器学习算法系列 第一章 Python Spark 分类模型 逻辑回归知识点详细总结 第二章 分类模型 决策树知识点详细总结 第三章 分类模型 随机森林知识点详细总结 第四章 分类模型 支持向量机SVM知识点详细总结第五章 关联分析 apr
  • CocosCreator3.8研究笔记(十四)CocosCreator 资源管理Asset Manager

    在游戏的开发过程中 需要使用到大量的图片 音频等资源来 从而带来管理上的困难 Asset Manager 资源管理模块具备加载资源 查找资源 销毁资源 缓存资源 Asset Bundle 等功能 帮助开发者管理其资源的使用 一 资源的加载
  • IHO ENC

    IHO ENC Electronic Navigation Chart is specially specified for marine navigation and defined by IHO International Hydrol
  • CMD批处理实现dot命令自动运行更新

    CMD批处理实现dot命令自动运行更新 前言 一 编写bat脚本 二 解释 总结 前言 最近学习dot语言 我们知道 运行dott脚本大致有两种方法 使用Gvedit编辑dot代码并直接点击运行按钮运行 使用记事本编辑工具编辑号dott脚本
  • 通过adb命令卸载小米手机预设的应用

    文章目录 准备环境 具体步骤 附 准备环境 首先介绍adb命令 ADB是Android Debug brige 是一种用于于安卓设备通信的命令行工具 卸载应用需要用到这个命令 adb命令安装方法 1 adb工具下载 下载适合您的系统的 AD
  • 什么是 I18N 和 L10N ?

    什么是 I18N 和 L10N I18N 是 internationalization 的缩写形式 意即在 i 和 n 之间有 18 个字母 本意是指软件的 国际化 与之类似 L10N 是 localization 的缩写形式 意即在 l
  • 用python写一个hello world、把代码写下来_编程与下厨房:如何教女友写Python(二:不从Hello World开始...

    一 不从 Hello World 开始 但凡是介绍编程语言的入门书籍 都会把 hello world 这个句子的输出作为第一个程序的示例 这种约定俗成的做法就像是新居进火的仪式一般具有非凡的意义 但是在这里 我们并不打算将Python的第一
  • Windows中d3dcompiler_33.dll丢失怎么解决

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 33 dll文件进行安装
  • Merkle Tree与区块链

    什么是merkle tree 假设你已经知道了什么是哈希算法以及哈希是用来干啥的 网络传输数据的时候 A收到B的传过来的文件 需要确认收到的文件有没有损坏 如何解决 有一种方法是B在传文件之前先把文件的hash结果给A A收到文件再计算一次
  • 从零开始的ESP8266探索(17)-Client(客户端)功能使用

    文章目录 目的 使用说明 作为TCP Client使用 作为WEB Client使用 总结 目的 前面的文章中有介绍使用Server 服务器 功能 这里的Server和Client指的是基本的TCP的Server和Client 当然就像前面
  • 关于List泛型的强制转换(java list强制类型转换)

    转载只为收藏好文 原文地址 https www cnblogs com hihtml5 p 6194460 html 当我们从数据库中查询出一些数据 有时返回的结果可能是List类型 而我们清楚的知道它的准确类型是List
  • 常用的加密算法

    一 对称加密 所谓的对称加密就是加密跟解密使用同一把密钥 常见的对称加密算法有AES DES等等 下面以DES加密算法为例 Java语言实现DES加密 Java语言实现DES解密 对于不同的对称加密算法 密钥的位数是不同的 对于DES加密算
  • Thymeleaf模板引擎

    1 thymeleaf简介 1 1 什么是thymeleaf Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎 能够处理HTML XML JavaScript CSS甚至纯文本 Thymeleaf的主要目标是提供一种
  • LeetCode05 最长回文子串 java(动态规划)

    题目 给定一个字符串 s 找到 s 中最长的回文子串 你可以假设 s 的最大长度为 1000 示例 1 输入 babad 输出 bab 注意 aba 也是一个有效答案 示例 2 输入 cbbd 输出 bb 分析 初始状态 dp i i 1
  • flex 中文API

    http help adobe com zh CN AS3LCR Flex 4 0
  • 微软服务器漏洞,微软SMBv3客户端/服务端远程代码执行漏洞(CVE-2020-0796)技术分析...

    微软安全中心在北京时间3月12日23时发布了影响Windows 10 等系统用户的SMBv3远程代码执行漏洞补丁 我们建议受影响的用户尽快按微软更新信息指南安装该补丁 https portal msrc microsoft com en U