查看原文
科技

360沙箱云捕获的 Windows 平台新漏洞案例分析

360沙箱云 360威胁情报中心 2023-06-06

近日,360混天零实验室(360 HuntingZero Lab)通过360沙箱云“高级威胁狩猎平台”发现了一个影响 Windows 系统平台的新漏洞。漏洞通过包含此漏洞的文件实现触发条件。在对漏洞文件进行分析后,我们确认这是一个尚未被厂商修复的新漏洞,及时向微软公司提交了这个漏洞的详细信息。在对我们的答复中,微软确认了这个漏洞,但表示由于只能基于此漏洞进行有限的越界读操作,因此他们不会对此漏洞进行立即修复和应对。根据漏洞披露原则,我们在这里分享此漏洞的相关细节,供读者们研究。

漏洞成因

包含此漏洞的文件是一个“pptx”格式的幻灯片文档文件。通过Microsoft Office PowerPoint 软件的最新版本打开此文件,并点击播放时,将会导致此漏洞的触发,漏洞触发点位于 Windows 操作系统的WINMM.DLL 系统模块文件中。这个系统模块文件是 MCI API 动态库,负责提供媒体控制接口,用于控制连接到计算机的多媒体外部设备。

据分析,此漏洞是由于 pptx 文件中内嵌的一个波形声音文件引起的。波形声音文件(WAV)是一种数字音频文件格式,用于在计算机系统中存储和播放音频。WAV 文件格式基于 RIFF 规范,包含一个文件头(用于描述文件的格式和元数据)和一个音频数据块(其中包含实际的数字音频数据)。文件头通常包含文件的大小、采样率、声道数、位深度等信息,可以帮助播放设备正确地解码音频数据。以下是典型的波形声音文件格式:

文件头中的 Subchunk2Size 字段表示音频数据大小,也称为数据子块大小(Data Subchunk),表示音频数据部分的字节数,作用是确保在解码播放音频时,能够正确地读取和处理音频数据。通过 Subchunk2Size,解码器可以知道需要读取多少字节的音频数据,并确定如何解释这些数据。

PowerPoint允许用户设置幻灯片页面的切换效果,并为切换效果添加对应的音效。用户可以将波形声音(WAV)文件设置为切换效果的音效,在播放幻灯片时,当播放到设置了切换效果和音效的页面,PowerPoint 将会同时播放切换效果和音效。

WINMM.DLL 系统模块文件中提供了名为 sndPlaySoundW/A 的导出函数。根据微软 MSDN 网站上的描述,sndPlaySound 函数播放由文件名、注册表中的条目或 WIN.INI 文件指定的波形声音。此函数的参数 LPCTSTR lpszSound 用于指定要播放的声音的字符串,此参数可以是注册表中的条目或 WIN.INI中的标识系统声音的条目,也可以是波形声音文件的名称。

播放切换效果的音效时,PowerPoint 进程的核心模块ppcore 会调用 winmm!sndPlaySoundW 函数,并将波形声音文件的文件名传递给此函数,来实现切换音效的播放。在此函数调用期间会创建新的线程,并将线程起始地址设置为 winmm!mciwindow 函数的地址。

在新的线程中,mciwindow 函数创建播放声音的MCI 窗口,监听并分发窗口消息。这种类型的窗口的自定义消息处理函数被设定为在 winmm 模块中定义的mmWndProc 函数,用于处理发送至关联的 MCI 窗口对象的自定义消息。

在处理自定义消息时,函数通过调用 soundLoadMemory 函数从内存块中加载目标 WAV 文件资源。在加载时,此函数调用 winmm!soundInitWavHdr 函数来初始化类型为 WAVEHDR 的数据结构体。

winmm!soundInitWavHdr 函数中,对目标 WAV 文件的文件头和音频数据块进行解析。Subchunk2ID Subchunk2Size 会被预先放置在一个WaveChunkData 类型的结构体对象中,然后函数根据Subchunk2Size 指定的音频数据大小对音频数据进行读取和解析。

在这个触发漏洞的 WAV 文件中,包含错误的Subchunk2Size 值。实际文件的大小是 0xd47699,它所占的内存块大小是 0xd476a1。

Subchunk2Size 指定的大小是 0x011d6004,远大于文件本身的大小。因此在函数中对文件的音频数据块中的内容进行解析时,造成越界数据访问,访问了原本不应访问的内存区域,导致触发漏洞。

在这个案例中,此漏洞在 PowerPoint 进程解析一个“pptx”文件时触发,但其本身是 Windows 操作系统的 WINMM.DLL 系统模块文件中的漏洞,因此所有调用 WINMM.DLL 相关接口的应用程序都有可能触发此漏洞。在互联网中,笔者就发现了其他软件平台(如电子邮件软件)在解析文件中的 WAV 文件时导致了和这个案例中类似的漏洞触发情况。

关于我们

关于实验室

360混天零实验室(360 HuntingZero Lab)负责威胁自动化检测和云沙箱技术研究,专注于通过自动化监测手段高效发现高级威胁攻击;依托于 360 安全大数据,多次发现和监测到在野漏洞利用、高级威胁攻击、大规模网络挂马等危害网络安全的攻击事件,多次率先捕获在野利用“零日漏洞”的网络攻击并获得厂商致谢,在野漏洞攻击的发现能力处于国内外领先地位,为上亿用户上网安全提供安全能力保障。

关于沙箱云

360沙箱云是 360 数字安全集团推出的在线高级威胁分析平台,对提交的文件、URL,经过静态检测、动态分析等多层次分析的流程,触发揭示高级攻防、漏洞利用、检测逃避等行为活动,对检测样本进行恶意定性,弥补使用规则查杀的局限性,通过静态特征和行为分析发现未知、高级威胁。

如果您和您的企业对威胁监测和高级威胁狩猎有迫切的需求,您可以立即采购沙箱云在线提供的 SaaS 订阅服务,灵活选购,即时生效,为您和您的企业构筑 24 小时在线的威胁检测体系。

请发送邮件以获取详情:📧ata-contact@360.cn

关于狩猎平台

依托于360沙箱云的威胁分析能力,360沙箱云高级威胁狩猎平台构筑海量样本运营体系,聚焦于威胁情报生产和高级威胁发现,形成高级威胁鉴定、“零日漏洞”捕获、情报输出的解决方案,帮助安全分析师聚焦需关注的安全告警,为企业形成专属的威胁情报生产能力,形成威胁管理闭环,让威胁无所遁形。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存