利用漏洞实现 Outlook 的 RCE:第 2 部分

news/2024/11/15 6:01:13/

## 攻击面

Outlook 要播放的声音文件是波形音频文件格式( WAV)。它通过接收声音文件路径的PlaySound函数播放。PlaySound将加载文件、解析它,然后调用soundOpen,后者将调用不同的波形函数,例如waveOutOpen

WAV 文件充当多个音频编解码器的容器(或包装器)。编解码器是一种对数据流(如图像、视频或音频)进行编码或解码的程序或代码。通常,编解码器将采用脉冲编码调制(PCM) 编码,这是一种表示采样模拟信号的简单方法。

我们可以在三个主要攻击面上搜索漏洞:

  1. WAV 格式解析
  2. 音频压缩管理器
  3. 不同的音频编解码器

WAV 格式解析

WAV 格式解析是在 winmm.dll(实现 Windows 多媒体 API 的库)中的函数soundInitWavHdr内实现的。那里呈现的攻击面并不大,而且似乎已经过审查;我们没有在那里发现任何漏洞。

什么是音频压缩管理器?

音频压缩管理器 (ACM) 是负责处理 WAV 文件中使用的编解码器不使用简单 PCM 编码的情况的代码,因此需要由自定义解码器进行解码。这些解码器在扩展名为 .acm 的文件中实现。一个常见示例是 MP3 编解码器,它在 l3codeca.acm 中实现。每个编解码器都由一个驱动程序处理(它与内核模式驱动程序不同,但功能相似),该驱动程序通过 ACM 注册。

每当需要转换时,例如将 MP3 转换为 PCM 或反之,ACM 就会开始工作并管理此转换。当我们使用未使用 PCM 的 WAV 文件时,将查询 ACM 以查看文件本身中指定的编解码器是否存在并且可以处理转换(图 1)。

Outlook 要播放的声音文件是波形音频文件格式( WAV)。它通过接收声音文件路径的PlaySound函数播放。PlaySound将加载文件、解析它,然后调用soundOpen,后者将调用不同的波形函数,例如waveOutOpen

WAV 文件充当多个音频编解码器的容器(或包装器)。编解码器是一种对数据流(如图像、视频或音频)进行编码或解码的程序或代码。通常,编解码器将采用脉冲编码调制(PCM) 编码,这是一种表示采样模拟信号的简单方法。

我们可以在三个主要攻击面上搜索漏洞:

  1. WAV 格式解析
  2. 音频压缩管理器
  3. 不同的音频编解码器

WAV 格式解析

WAV 格式解析是在 winmm.dll(实现 Windows 多媒体 API 的库)中的函数soundInitWavHdr内实现的。那里呈现的攻击面并不大,而且似乎已经过审查;我们没有在那里发现任何漏洞。

什么是音频压缩管理器?

音频压缩管理器 (ACM) 是负责处理 WAV 文件中使用的编解码器不使用简单 PCM 编码的情况的代码,因此需要由自定义解码器进行解码。这些解码器在扩展名为 .acm 的文件中实现。一个常见示例是 MP3 编解码器,它在 l3codeca.acm 中实现。每个编解码器都由一个驱动程序处理(它与内核模式驱动程序不同,但功能相似),该驱动程序通过 ACM 注册。

每当需要转换时,例如将 MP3 转换为 PCM 或反之,ACM 就会开始工作并管理此转换。当我们使用未使用 PCM 的 WAV 文件时,将查询 ACM 以查看文件本身中指定的编解码器是否存在并且可以处理转换(图 1)。

介绍
利用我们在本博客系列第 1 部分中描述的漏洞,我们再次能够在目标上播放自定义声音文件,从而滥用 Outlook 的提醒声音功能。为了利用此功能并将其转变为完整的远程代码执行 (RCE),我们开始在 Windows 上搜索中的漏洞。## 攻击面

Outlook 要播放的声音文件是波形音频文件格式( WAV)。它通过接收声音文件路径的PlaySound函数播放。PlaySound将加载文件、解析它,然后调用soundOpen,后者将调用不同的波形函数,例如waveOutOpen

WAV 文件充当多个音频编解码器的容器(或包装器)。编解码器是一种对数据流(如图像、视频或音频)进行编码或解码的程序或代码。通常,编解码器将采用脉冲编码调制(PCM) 编码,这是一种表示采样模拟信号的简单


http://www.ppmy.cn/news/1516619.html

相关文章

线下参会报名丨智源数据与行业应用 Workshop 第二期

目前,大模型在数据基建和行业落地仍存在不少挑战。北京智源人工智能研究院深耕数据工具研发与数据平台建设,并持续推动模型与垂直场景的应用,旨在通过举办“数据与行业应用系列Workshop”活动,广泛链接生态伙伴,共同探…

【RabbitMQ高级特性】消息可靠性原理

1. 消息确认机制 1.1 介绍 我们可以看到RabbitMQ的消息流转图: 当消息从Broker投递给消费者的时候会存在以下两种情况: consumer消费消息成功consumer消费消息异常 如果说RabbitMQ在每次将消息投递给消费者的时候就将消息从Broker中删除&#xff0c…

RAFT:Adapting Language Model to Domain Specific RAG

论文链接 简单来说,就是你SFT微调的时候得考虑RAG的场景。 RAG什么场景?你检索top-k回来,里面有相关doc有不相关doc,后者是影响性能的重要原因,LLM需要有强大的识别能力才能分得清哪块和你的query相关。微调就是为了这…

Apache CloudStack Official Document 翻译节选(九)

关于 Apache CloudStack 的 最佳实践 (三) 配置云外的 防火墙与交换机 对Cisco VNMC(Cisco Virtual Network Management Center)设备集成云外的客户机网路防火墙: 思科虚拟网络管理中心为思科网络虚拟服务提供了中心…

【Rust光年纪】深度解读:Rust语言中各类消息队列客户端库详细对比

选择最佳 Rust 消息队列客户端库:全面对比与分析 前言 随着现代应用程序的复杂性不断增加,消息队列成为构建可靠、高性能系统的重要组件。本文将介绍一些用于Rust语言的消息队列客户端库,包括AMQP、Apache Kafka、NSQ、Apache Pulsar和Rock…

GoWeb 设置别名和多环境配置

别名 vite.config.ts中添加代码如下即可 //设置别名resolve: {alias: {"": path.resolve(process.cwd(),"src"),//用替代src}}随后即可使用 配置多环境 vite.config.ts中添加代码如下 envDir: ./viteenv,//相对路径随后在项目根目录创建对应的viteenv…

什么是 SQL 注入,有哪些类型,如何预防?

如果说数据是系统的核心,那么SQL注入就是直插系统核心的漏洞。一直以来SQL注入漏洞就被列入OWASP最常见和影响最广泛的十大漏洞列表中。 SQL注入漏是系统漏洞中一种比较严重的漏洞,如果说数据是系统的核心,那么SQL注入就是直插系统核心的漏洞…

Web应用服务器Tomcat

一、Tomcat的功能介绍 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和 并发访问用户不是很多的场合下被普遍使用,Tomcat 具有处理HTML页面的功能,它还是一个Servlet和 JSP容器。 官网…