CVE-2020-0796 SMB远程代码执行漏洞(分析、验证及加固)

永恒之黑(CVE-2020-0796)漏洞复现 永恒之黑漏洞复现 阅读详情

0x00 前言

     最近一段时间一直忙,挺火的 CVE-2020-0796 (永恒之黑)都没来的及复现,今天趁着网快,赶快把漏洞系统下载下,并且准备了 检测 payload 、蓝屏 payload 、提权payload、命令执行payload,复现一波,相比起来,只是payload不同而已,来实现不同的功能,下面进行分析。

0x01 漏洞描述      

     漏洞公告显示,SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。

0x02 漏洞危害等级        

高

0x03 影响版本

Windows 10 Version 1903 for 32-bit Systems
Windows 10 Version 1903 for x64-based Systems
Windows 10 Version 1903 for ARM64-based Systems
Windows Server, Version 1903 (Server Core installation)
Windows 10 Version 1909 for 32-bit Systems
Windows 10 Version 1909 for x64-based Systems
Windows 10 Version 1909 for ARM64-based Systems
Windows Server, Version 1909 (Server Core installation)

测试机ip:192.168.1.159

0x04 漏洞原理

    漏洞发生在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", (_DWORD)v71);
          }
          v44 = *((_QWORD *)&v20[3].Next[8].Next + 1);
          v45 = *(_QWORD *)(v44 + 8i64 * KeGetCurrentNodeNumber() + 8);
          if ( !ExpInterlockedPushEntrySList((PSLIST_HEADER)(v45 + 16), v20 + 1) && *(_WORD *)(v45 + 66) )
            RfspThreadPoolNodeWakeIdleWorker(v45);
          goto LABEL_168;
            }
        }
}

SMBGhost漏洞技术分析与防御方案 阅读详情

相关推荐

CVE-2020-0796 SMB远程代码执行漏洞 分析、验证及加固

0x01漏洞描述 CVE-2020-0796是存在于微软服务器SMB协议中的一个“蠕虫化”漏洞,该漏洞未包含 在微软本月发布的补丁中,是在补丁的序言中泄露的。目前微软尚未发布任何技术详情,思科Talos团队和Fortinet公司提供了简短概述,目前尚不清楚该漏洞的补丁何时发布。 Fortinet公司指出,该漏洞是“微软 SMB 服务器中的一个缓冲区溢出漏洞”,严重等级为最高评分,“该漏洞由易...

Adminxe的博客 9471

CVE-2020-0796 SMB 远程代码执行漏洞分析、验证及加固

0x01漏洞描述 CVE-2020-0796是存在于微软服务器SMB协议中的一个“蠕虫化”漏洞,该漏洞未包含 在微软本月发布的补丁中,是在补丁的序言中泄露的。目前微软尚未发布任何技术详情,思科Talos团队和Fortinet公司提供了简短概述,目前尚不清楚该漏洞的补丁何时发布。Fortinet公司指出,该漏洞是“微软 SMB 服务器中的一个缓冲区溢出漏洞”,严重等级为最高评分,“该漏洞由易受攻击的软件错误地处理恶意构造的压缩数据包而触发。远程、未经认证的攻击者可利用该漏洞在该应用程序的上下文中执行任意代码。

m0_47635965的博客 436

从永恒之黑漏洞剖析SMB协议安全:原理、攻击与防御实战

SMB协议作为Windows网络文件共享与打印服务的核心应用层协议,其工作原理涉及复杂的协商、认证与数据传输过程。协议本身通过NTLM/Kerberos认证、消息签名及SMB 3.0+的端到端加密等机制保障安全,但实现中的缓冲区溢出等漏洞可能被利用,导致远程代码执行等严重后果。这类漏洞的技术价值在于揭示了基础网络协议在性能优化与安全边界间的平衡难题。在企业内网文件共享、域环境管理等典型应用场景中,攻击者常利用SMB协议漏洞进行横向移动。本文以CVE-2020-0796(永恒之黑)这一经典缓冲区溢出漏洞为例,

weixin_34364071的博客 334

数字频率计设计中的常见误区:从VHDL代码到硬件实现的避坑指南

本文深入探讨了数字频率计从VHDL代码到FPGA硬件实现过程中的关键误区与解决方案。重点分析了闸门时间生成的精度与资源平衡、控制时序设计中的竞争冒险规避,以及如何利用EDA工具进行综合、时序约束与调试,确保设计稳定可靠。文章为开发者提供了从仿真成功到硬件可用的实战避坑指南。

spark7igniter的博客 206

【FDTD运行引擎错误解决方法】

我用的是2024R1版的FDTD,第一次安装好的时候点“RUN”可以正常运行,后来不知道什么问题就无法运行了。我从网上找相关的解决办法,并未找到,将软件卸载重装,重启等方法都没有解决,后来在官网按照提示解决了,我把官网提供的方式和我的情况相结合,提供一个解决方式。提示:以下是本篇文章正文内容,下面案例可供参考最后说一下两个MPI和Local computer(不使用MPI)的区别使用MPI进行仿真可以显著提高计算速度和效率,特别是对于大规模和复杂的仿真任务,但需要额外的设置和配置。(多线程并行计算)

m0_57410975的博客 8160

iPad秒变Mac副屏的隐藏技巧:用BetterDisplay实现无线竖屏+90度锁定

本文详细介绍了如何利用BetterDisplay软件突破苹果原生“随航”(Sidecar)功能的限制,将iPad无线设置为Mac的竖屏副屏,并实现90度方向锁定。通过创建虚拟显示器、配置分辨率与旋转参数,并校准鼠标指针,用户可以高效利用iPad的纵向空间进行文档阅读、编码等工作,显著提升多屏协作效率。

weixin_29266647的博客 594

STM32F407编译下载全流程:从CubeMX到HEX烧录

嵌入式固件开发中,编译与下载是连接代码与硬件的关键闭环。其本质是将高级语言描述的逻辑,经交叉编译(ARM GCC)、链接(ELF生成)、格式转换(HEX/BIN)后,通过调试接口(SWD/UART)写入MCU Flash存储器的过程。该流程涉及工具链协同、二进制格式特性(如Intel HEX的地址映射与无元数据设计)、启动模式(System Memory Bootloader)、Flash选项字节(RDP/WRP)等底层机制,直接决定固件可运行性与安全性。典型应用场景包括STM32F407开发板调试、量产固

weixin_28840811的博客 255

Python爬虫分析二手交易平台商品定价合理性:基于多维度数据挖掘与机器学习

本文针对二手交易平台商品定价合理性问题,设计并实现了一个基于Python的多技术融合爬虫系统,结合Scrapy框架、Selenium自动化测试工具、Anti-Scraping对抗技术以及机器学习算法,对国内主流二手交易平台(闲鱼、转转等)进行大规模数据采集与分析。系统实现了商品信息的多维度采集、价格合理性模型构建、可视化展示等功能,为二手商品买卖双方提供科学的定价参考。实验结果表明,该系统能够有效识别定价异常商品,准确率达到89.7%,具有较高的实用价值。关键词:Python爬虫;二手交易;定价分析;

2201_76125261的博客 293

【1】Java 部分笔试题解析

解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。

博客 3922

国科大学习资料--高级软件工程-复习题简答题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题简答题答案 def fib3 n (1…n).inject([0,1]){|mem| puts mem[0]+mem[1]; [mem[1],mem[0]+mem[1]]} end =====================================================================================================================================

无名何许人的博客 1393

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 使用Python创建TCP代理之工业时代造轮子
下一篇: MS16-032 提权 漏洞复现
Adminxe
博客等级 码龄10年 1万+粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adminxe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值