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

## 攻击面

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.rhkb.cn/news/407713.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shire 0.5 发布:构建数据安全 RAG,充分整合研发资产

最近,我们发布了新版本的 Shire,在这个新的发布(Shire 0.5)里,你可以更好地融合本地研发资产,同时构建数据安全 RAG。在这次版本中,我们增加了: 对 SonarQube 的 issue 支持。可以直…

从0到1构建视频汇聚生态:EasyCVR视频汇聚平台流媒体协议支持的前瞻性布局

TSINGSEE青犀EasyCVR视频汇聚平台是一款基于云-边-端一体化架构的视频融合AI智能分析平台,广泛应用于工地、仓储、工厂、社区、校园、楼宇等多个领域。平台凭借其强大的数据接入、处理、转码及分发能力,在视频监控领域展现出显著的技术优势和应用前景。本…

python项目在linux中的启动脚本(shell脚本)

背景: 在linux环境,使用shell脚本,实现对某个服务的启动、停止功能。 shell脚本的功能: 启动(start):通过参数 start ,实现启动服务。如果该服务已经启动,给出已经启动…

松下弧焊机器人维修 控制柜故障 连接线修复

一、Panasonic焊接机器人控制柜与机器人的接线 机器人的控制箱,一定要配对使用。松下焊接机器人控制柜已经记忆了机器人的绝对原点(机器人位置控制原点)。 二、编码器电缆 (圆形连接器) 1. 接口的插头插座要注意,插头要插到插座中。 2. 用一手握住电缆&a…

《黑神话:悟空》发售后快手游戏笔记本电脑GMV日环比增长40%

一、美联储9月降息预期升温 昨夜美股三大股指在震荡中收涨,市场情绪受到美联储7月会议纪要提振。纪要显示,美联储官员普遍倾向于9月降息,多位官员认为当前利率水平已对经济构成限制。此消息推动美股上涨,并带动金价创新高&#xf…

鸿蒙HarmonyOS编程开发:TLS单向认证通讯示例

1.TLS简介 TLS(Transport Layer Security)协议的前身是SSL(Secure Socket Layer)安全套接层协议,由Netscape公司于1994年提出,是一套网络通信安全协议。IETF(The Internet Engineering Task Fo…

前端开发中的大屏布局方案:使用 rem 单位与动态设置 html 的 font-size

使用 rem 单位与动态设置 html 的 font-size 前言 随着设备尺寸的多样化,网页需要能够在不同大小的屏幕上提供良好的用户体验。传统的布局方式(如使用 px)在不同分辨率下可能会导致布局失真。为了解决这个问题,我们可以通过动态…

【UE5】基于摄像机距离逐渐剔除角色

效果 步骤 1. 新建一个工程,在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…

flutter 中 ssl 双向证书校验

SSL 证书: 在处理 https 请求的时候,通常可以使用 中间人攻击的方式 获取 https 请求以及响应参数。应为通常我们是 SSL 单向认证,服务器并没有验证我们的客户端的证书。为了防止这种中间人攻击的情况。我么可以通过 ssl 双向认证的方式。即…

创意无限,尽在掌握:热门视频剪辑软件一览

我们记录生活、分享故事、传播信息用视频的频率越来越高了。而这些视频往往都是通过剪辑之后才能展示出当前的效果。那这次我们就来探索剪辑视频的时候都会用到什么工具吧。 1.福昕视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这是一款专为追求高效与创意…

【React】为什么Hooks不能出现在判断中

前言 在 React 中,Hooks 不能写在条件语句中,如下面这段代码点击button后则会报错。 import { useEffect, useState } from "react"export default () > {const [count, setCount] useState(0)if (count > 0) {useEffect(() > {co…

2-74 基于matlab的图像k-means聚类GUI

基于matlab的图像k-means聚类GUI,可对彩色图像进行Kmeans和meanshift进行聚类分析,生成最后的聚类图像以及聚类中心的迭代轨迹。程序已调通,可直接运行。 2-74 matlab GUI - 小红书 (xiaohongshu.com)

iOS 通知

iOS 通知分为本地推送和远程推送两类 一. 本地推送使用流程 1. 注册通知 //请求通知权限 UNUserNotificationCenter *center [UNUserNotificationCenter currentNotificationCenter];[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizati…

Java方法的使用

目录 一:方法概念及使用 1.1什么是方法 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系(重要) 1.5 没有返回值的方法 二:方法重载 2.1 为什么需要方法重载 2.2 方法重载概念 2.3 方法签名 三. 递归 3.1递归的概念 3.2 递归执行过…

Unity 资源 之 Photon Inventory 2 (Game Creator 2)

免费获取资源: 有2种方式可免费获取资源: 在后台回复**“UnityAssetStore**“ 或 ”Unity资源”。在Unity官方地址:https://assetstore.unity.com/publisher-sale ,兑换码:NINJUTSUGAMES 【本周限定】 关注我每周&a…

配置PXE预启动执行环境:Kickstart自动化无人值守安装

文章目录 实现 Kickstart 无人值守安装1. 安装Kickstart和配置应答文件(图形化界面)2. 配置 PXE 菜单支持 Kickstart 无人值守安装3. 验证 Kickstart 无人值守安装4. 拓展:命令行配置应答文件(命令行界面) 实现 Kickst…

校友会系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,校友管理,生活模块管理,兼职信息管理,表白墙管理,我的收藏管理,校友论坛,系统管理 微信端账号功能包括&…

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全,实现自己的“黑客梦”。文章的宗旨是: 1.指出一些自学的误区 2.提供客观可行的学习表 3.推荐我认为适合小白学习的资源.大佬绕道哈! →点击获取网络安全资料攻略← 一、自学…

【图形学】TA之路-基于Unity Shader编程之初体验

学习shader之前你必须知道的事情: Unity开发引擎、Direct3D、Shader他们之间的关系 Direct3D 是一个底层图形 API,它直接与 GPU (显卡)交互,提供了访问硬件加速功能的接口。Unity 开发引擎,它封装了很多底…

Python酷库之旅-第三方库Pandas(094)

目录 一、用法精讲 401、pandas.Series.to_string方法 401-1、语法 401-2、参数 401-3、功能 401-4、返回值 401-5、说明 401-6、用法 401-6-1、数据准备 401-6-2、代码示例 401-6-3、结果输出 402、pandas.Series.to_clipboard方法 402-1、语法 402-2、参数 40…