捕获在野SMBGhost本地提权攻击样本

2024-02-27 12:04

本文主要是介绍捕获在野SMBGhost本地提权攻击样本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

从Windows10 v1903/Windows Server v1903开始,微软在协议SMB3.1.1中开启了对数据压缩传输的支持,但是由于SMB没有正确处理压缩的数据包,在客户端/服务端解压数据的时候,没有对COMPRESSIN_TRANSFORM_HEADE结构进行安全校验,导致后续代码发生一连串整形溢出、越界读写等漏洞,SMB远程代码执行漏洞(CVE-2020-0796),该漏洞主要是因为在最新的Windows 10系统中,处理SMB3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,从而引发内存破坏漏洞,黑客利用此漏洞,可无须任何权限的情况下,即可实现远程内核代码执行,此漏洞被公布后不久,国外安全研究人员,利用此漏洞开发出了本地提权利用程序。

样本信息

捕获一例在野的利用SMBGhost本地提权的攻击样本,样本在2020年5月21号使用了无效的数字签名信息,如下所示:

该数字签名的详细信息,如下所示:

详细分析

对样本进行详细分析,使用GlobalAlloc函数分配内存空间,然后解密出第一层的ShellCode代码并执行,如下所示:

解密出来的第一层ShellCode代码,如下所示:

第一层ShellCode代码调用VirtualAlloc分配内存空间,如下所示:

再解密出第二层ShellCode代码,如下所示:

执行第二层ShellCode代码,然后在分配内存空间,解密出SMBGhost本地提权核心代码,如下所示:

然后进行内存替换,执行解密出来的SMBGhost本地提权核心代码,如下所示:

跳转执行到SMBGhost本地提权程序的核心代码处,如下所示:

核心的SMBGhost本地提权代码,使用了是国外安全研究人员公布的一个开源的代码,如下所示:

总结

全球各地的黑客组织都在不断更新自己的网络攻击武器,就像WannaCry勒索病毒一样,在永恒之蓝系列漏洞被曝光后的一个月不到的时间里,就被WannaCry勒索病毒利用,在全球范围内爆发,可见黑客组织的行动之快,无时无刻不在研究最新的攻击手法与攻击武器,现在全球网络安全形势越来越严峻,各种网络犯罪组织都在通过发起网络攻击行为获取利益,网络安全在未来会越来越重要,地下黑客组织的攻击活动从来没有停止过,安全研究人员需要持续不断的关注最新的安全动态,及时掌握全球黑客组织的攻击行为

这篇关于捕获在野SMBGhost本地提权攻击样本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752326

相关文章

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登