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

相关推荐
weixin199701080168 小时前
《淘宝双11同款:基于 Sentinel 的微服务流量防卫兵实战》
微服务·架构·sentinel
一叶飘零_sweeeet1 天前
高可用架构核心:限流熔断降级全解,Sentinel 与 Resilience4j 原理 + 落地实战
架构·sentinel
Fang fan4 天前
Redis基础数据结构
数据结构·数据库·redis·缓存·bootstrap·sentinel
回到原点的码农5 天前
SpringCloud Gateway 集成 Sentinel 详解 及实现动态监听Nacos规则配置实时更新流控规则
spring cloud·gateway·sentinel
没有bug.的程序员6 天前
黑客僵尸网络的降维打击:Spring Cloud Gateway 自定义限流剿杀 Sentinel 内存黑洞
java·网络·spring·gateway·sentinel
xiaolingting8 天前
Gateway 网关流控与限流架构指南
spring cloud·架构·gateway·sentinel
sc_爬坑之路9 天前
redis windows环境配置读写分离:一主一从 + Sentinel 完整实战
windows·redis·sentinel
sc_爬坑之路9 天前
Linux 部署 Redis:一主一从 + Sentinel 完整实战
linux·redis·sentinel
杜子不疼.9 天前
Spring Cloud 熔断降级详解:用 “保险丝“ 类比,Sentinel 实战教程
人工智能·spring·spring cloud·sentinel
yc_xym11 天前
Redis哨兵(Sentinel)机制
数据库·redis·sentinel