Thales SafeNet Sentinel HASP LDK本地提权漏洞(CVE-2024-0197)分析与复现

漏洞描述

Thales SafeNet Sentinel HASP LDK是一个软件保护和许可管理解决方案,用于帮助软件开发者保护其应用程序免受盗版和未经授权使用,由Thales SafeNet公司开发并提供支持。

该工具的msi安装程序在执行修复模式/fa时,存在DLL劫持漏洞。导致本地普通用户可以劫持%temp%下的安装程序,以system权限执行任意代码,实现本地权限提升。

影响范围

Thales SafeNet Sentinel HASP LDK < 9.16

复现环境

**操作系统:**Win7x64 sp1

**分析工具:**Procmon、Procexp

初识MSI文件

MSI 文件是 Windows Installer 包的文件扩展名,它通常用于安装、升级和卸载 Windows 程序。MSI 文件包含了程序安装所需的所有信息,如文件、注册表项、启动服务等。

MSI 文件运行时,Windows Installer 服务会以系统权限启动msiexec.exe 程序。然后msiexec.exe 将根据 MSI 文件中指定的安装步骤和条件,可能会多次以系统权限或用户权限启动其他程序或脚本来完成安装或卸载操作。这些额外的程序或脚本可能包含在 MSI 文件中,也可能来自外部引用。

漏洞分析

Windows Installer程序msiexec.exe,运行时支持多个参数。比如这个漏洞相关的参数:/fa,这是修复选项,表示强制重新安装所有文件,如下图所示。

下载安装包Sentinel HASP LDK,下载地址:https://archive.org/details/isocd-sentinel_ldk_msi_run-time_install_api.rar,此安装包的版本为6.25。根据公开的漏洞描述,尝试使用修复选项"/fa"执行安装程序,但是提示错误,如下图所示。

此错误提示执行修复选项前需要先安装。所以先双击安装包文件HASP_Setup.msi进行安装。

安装成功后,使用Procmon监控msiexec.exe的行为,然后再次执行修复选项。从Procmon监控日志中可以看出,执行修复选项时,msiexec.exe在%temp%目录下释放了haspdinst_x64.exe程序,并创建进程运行,如下图所示。

此时从procexp进程管理工具中可以看出,haspdinst_x64.exe进程的用户名为SYSTEM。

查看haspdinst_x64.exe加载DLL的监控日志,发现存在fltlib.dll,newdev.dll等DLL劫持,如下图所示。

利用haspdinst_x64.exe存在的DLL劫持,可以实现本地权限提升。

复现步骤

isocd-sentinel_ldk_msi_run-time_install_api.rar安装包解压后双击HASP_Setup.msi文件进行安装。

编写DLL劫持程序,在DllMain中将当前进程名,命令行参数,用户名等信息记录到C:\users\Public\poc.txt文件中,如下图所示。

编译成功后将得到的DLL文件重命名fltlib.dll,复制到%temp%目录下,运行修复选项命令:msiexec.exe /fa HASP_Setup.msi,如下图所示。

从生成的文件C:\users\Public\poc.txt可以看出,运行haspdinst_x64.exe时的用户为SYSTEM,提权漏洞复现成功,如下图所示。

当然也可以在DllMain中创建cmd进程,利用此漏洞获取SYSTEM权限的cmd,如下图所示。

参考链接

https://www.ddpoc.com/DVB-2024-6338.html

https://github.com/ewilded/CVE-2024-0197-POC

相关推荐
Wang's Blog1 天前
Redis: Sentinel工作原理和故障迁移流程
redis·sentinel
小笨猪-2 天前
Redis-哨兵
数据库·redis·分布式·缓存·sentinel
天下蒂一厨2 天前
sentinel微服务部署
java·微服务·架构·sentinel
中间件XL2 天前
sentinel原理源码分析系列(一)-总述
sentinel·限流·熔断·分布式流控·集群流控
后台技术汇3 天前
深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式
数据库·redis·缓存·bootstrap·sentinel
学地理的小胖砸4 天前
【简介Sentinel-1】
信息可视化·sentinel·遥感·地理信息·遥感影像数据源
弥琉撒到我5 天前
微服务sentinel解析部署使用全流程
spring cloud·微服务·架构·sentinel
GIS工具-gistools20215 天前
使用SNAP工具处理Sentinel-1数据应注意磁盘和内存问题
sentinel·snap
中间件XL6 天前
sentinel原理源码分析系列(二)-动态规则和transport
sentinel·限流熔断·源码原理分析
中间件XL6 天前
sentinel原理源码分析系列(三)-启动和初始化
sentinel·限流熔断·原理源码分析