记一次AMD漏洞挖掘:从文件权限配置错误到驱动权限提升
字数 1583 2025-08-30 06:50:11

AMD漏洞挖掘与分析:从文件权限配置错误到驱动权限提升

1. 漏洞背景

AMD(超微半导体公司)是一家总部位于加利福尼亚州圣克拉拉的美国跨国半导体公司,开发计算机处理器和相关技术。本次漏洞涉及AMD芯片组驱动程序的权限配置问题。

2. 漏洞发现过程

2.1 初始发现

使用PrivescCheck工具进行信息收集时,发现AMD目录存在权限配置问题:

  • 普通用户对AMD目录具有读取、执行和修改权限
  • "Authenticated Users"组对该文件夹具有修改权限

Authenticated Users:Windows操作系统中的一个安全主体,代表所有通过系统身份验证的用户或计算机账户

2.2 目录结构分析

AMD目录下有两个重要子文件夹:

  1. AMD-Software-Installer:软件安装包目录(不重要)
  2. Chipset_Software:AMD驱动安装配置文件目录(关键)

Chipset_Software文件夹包含:

  • 驱动inf安装配置文件
  • 驱动sys程序
  • 驱动msi安装文件

3. 漏洞利用分析

3.1 驱动配置文件修改漏洞

以AMD PSP驱动为例(路径:AMDChipset_Software\Binaries\PSP Driver\W11x64):

  1. INF文件分析

    • INF DestinationDirs Section:定义文件在目标系统上的安装路径
    • 默认从system32\drivers目录导入dll
    • 可修改配置文件使其从用户可控目录导入dll
  2. 修改示例

    • 将导入路径改为AMDChipset_Software\Binaries\PSP Driver\W11x64
    • 该目录用户可写入恶意dll
  3. 利用过程

    • 修改amdpsp.inf文件
    • 通过设备管理器手动更新驱动
    • 选择修改后的inf文件
    • 系统会将指定目录下的dll移动到system32目录

3.2 权限提升漏洞

AMD External Events Service Module漏洞

  • 服务程序atiesrxx.exe会从当前目录加载MSASN1.dll
  • 由于用户可以修改驱动文件夹内容,可放置恶意dll
  • 服务以系统权限运行,导致权限提升

利用步骤

  1. 编写恶意dll并重命名为MSASN1.dll
  2. 将dll放入AMD驱动文件夹
  3. 重启服务(开机自启动)
  4. 恶意dll以系统权限执行

4. 漏洞验证

4.1 文件移动验证

  1. 修改inf文件指定源路径
  2. 通过驱动更新将文件移动到system32
  3. 验证文件是否成功移动

4.2 权限提升验证

  1. 放置恶意MSASN1.dll
  2. 重启服务
  3. 检查dll是否以系统权限执行

5. 漏洞影响

  • 本地权限提升至SYSTEM
  • 可用于权限维持(服务开机自启动)
  • 影响AMD芯片组驱动程序

6. 厂商回应

AMD官方回应:

  • 问题出在AMD芯片组驱动程序软件的安装程序中
  • 不在漏洞赏金范围内
  • 后续更新会发布安全公告或简报

7. 防御建议

  1. 权限修复

    • 限制AMD驱动目录的访问权限
    • 仅允许SYSTEM和Administrators完全控制
  2. 代码修复

    • 修改服务加载dll的逻辑
    • 使用绝对路径或系统目录加载关键dll
  3. 监控措施

    • 监控system32目录下的异常文件添加
    • 监控驱动文件的修改行为
  4. 用户建议

    • 及时更新AMD芯片组驱动
    • 检查系统目录下的可疑文件

8. 技术要点总结

  1. 文件权限配置错误

    • 普通用户可修改驱动配置文件
    • 导致可控制驱动安装行为
  2. DLL劫持漏洞

    • 服务从当前目录加载dll
    • 结合文件权限问题导致权限提升
  3. 利用链

    文件可写 → 修改inf → 控制文件移动
               ↓
    文件可写 → 放置恶意dll → 服务加载 → SYSTEM权限
    
  4. 持久化

    • 利用服务自启动特性
    • 每次开机自动执行恶意代码

本漏洞展示了文件权限配置错误如何与DLL加载行为结合导致严重的本地权限提升漏洞,强调了最小权限原则在系统设计中的重要性。

AMD漏洞挖掘与分析:从文件权限配置错误到驱动权限提升 1. 漏洞背景 AMD(超微半导体公司)是一家总部位于加利福尼亚州圣克拉拉的美国跨国半导体公司,开发计算机处理器和相关技术。本次漏洞涉及AMD芯片组驱动程序的权限配置问题。 2. 漏洞发现过程 2.1 初始发现 使用PrivescCheck工具进行信息收集时,发现AMD目录存在权限配置问题: 普通用户对AMD目录具有读取、执行和修改权限 "Authenticated Users"组对该文件夹具有修改权限 Authenticated Users :Windows操作系统中的一个安全主体,代表所有通过系统身份验证的用户或计算机账户 2.2 目录结构分析 AMD目录下有两个重要子文件夹: AMD-Software-Installer :软件安装包目录(不重要) Chipset_ Software :AMD驱动安装配置文件目录(关键) Chipset_Software 文件夹包含: 驱动inf安装配置文件 驱动sys程序 驱动msi安装文件 3. 漏洞利用分析 3.1 驱动配置文件修改漏洞 以AMD PSP驱动为例(路径: AMDChipset_Software\Binaries\PSP Driver\W11x64 ): INF文件分析 : INF DestinationDirs Section :定义文件在目标系统上的安装路径 默认从 system32\drivers 目录导入dll 可修改配置文件使其从用户可控目录导入dll 修改示例 : 将导入路径改为 AMDChipset_Software\Binaries\PSP Driver\W11x64 该目录用户可写入恶意dll 利用过程 : 修改 amdpsp.inf 文件 通过设备管理器手动更新驱动 选择修改后的inf文件 系统会将指定目录下的dll移动到system32目录 3.2 权限提升漏洞 AMD External Events Service Module漏洞 : 服务程序 atiesrxx.exe 会从当前目录加载 MSASN1.dll 由于用户可以修改驱动文件夹内容,可放置恶意dll 服务以系统权限运行,导致权限提升 利用步骤 : 编写恶意dll并重命名为 MSASN1.dll 将dll放入AMD驱动文件夹 重启服务(开机自启动) 恶意dll以系统权限执行 4. 漏洞验证 4.1 文件移动验证 修改inf文件指定源路径 通过驱动更新将文件移动到system32 验证文件是否成功移动 4.2 权限提升验证 放置恶意 MSASN1.dll 重启服务 检查dll是否以系统权限执行 5. 漏洞影响 本地权限提升至SYSTEM 可用于权限维持(服务开机自启动) 影响AMD芯片组驱动程序 6. 厂商回应 AMD官方回应: 问题出在AMD芯片组驱动程序软件的安装程序中 不在漏洞赏金范围内 后续更新会发布安全公告或简报 7. 防御建议 权限修复 : 限制AMD驱动目录的访问权限 仅允许SYSTEM和Administrators完全控制 代码修复 : 修改服务加载dll的逻辑 使用绝对路径或系统目录加载关键dll 监控措施 : 监控system32目录下的异常文件添加 监控驱动文件的修改行为 用户建议 : 及时更新AMD芯片组驱动 检查系统目录下的可疑文件 8. 技术要点总结 文件权限配置错误 : 普通用户可修改驱动配置文件 导致可控制驱动安装行为 DLL劫持漏洞 : 服务从当前目录加载dll 结合文件权限问题导致权限提升 利用链 : 持久化 : 利用服务自启动特性 每次开机自动执行恶意代码 本漏洞展示了文件权限配置错误如何与DLL加载行为结合导致严重的本地权限提升漏洞,强调了最小权限原则在系统设计中的重要性。