MS13-051漏洞分析:Office PNG解析漏洞的技术细节与攻击模式

本文详细分析了微软Office中PNG文件解析漏洞(CVE-2013-1347)的技术原理,包括未正确处理超大PNG块长度导致的栈缓冲区溢出,以及攻击者如何利用该漏洞进行针对性攻击的详细模式。

MS13-051:Get Out of My Office!

MS13-051修复了Microsoft Office 2003和Office for Mac中的一个安全漏洞。较新版本的Windows版Office不受此漏洞影响,但Mac版Office 2011仍受影响。我们已发现该漏洞在野外的针对性0day攻击中被利用。

技术细节

在Office的PNG文件解析代码中,存在对块长度字段检查不严的漏洞。根据PNG规范(http://www.w3.org/TR/PNG/#5Chunk-layout),“虽然编码器和解码器应将长度视为无符号数,但其值不应超过2^31-1字节”。然而在恶意PNG文件中,我们发现块长度字段被设置为0xFFFFFFFF。PNG解析代码虽然正确将该字段视为无符号数,但未检查该值是否超过2^31-1的限制。

Shellcode分析显示该漏洞利用是典型的基于栈的缓冲区溢出,攻击者通过向栈上缓冲区写入超量数据,最终劫持程序执行流。旧版Office/Windows缺乏针对此类攻击的缓解措施,而新版则具备防护能力。我们也验证了EMET 3.0及以上版本能有效阻止已观察到的攻击。

攻击模式

观察到的攻击具有高度针对性,攻击者刻意规避安全研究人员调查。恶意样本是Office 2003二进制格式文档,其中不直接包含恶意PNG文件,而是通过引用远程服务器上的PNG文件实现攻击。

攻击者还在服务器上部署了脚本,避免多次提供PNG漏洞利用文件,以保持0day的隐蔽性。已观察到的攻击主要分布在印度尼西亚和马来西亚地区。

检测建议

所有恶意文档的共同特征是使用"space.gif"文件名获取远程PNG漏洞文件。为帮助安全厂商和企业检测潜在威胁,我们提供部分用于加载远程PNG漏洞的URL和恶意Office文档哈希值:

恶意URL示例:

1
2
3
hXXp://intent.nofrillspace.com/users/web11_focus/4307/space.gif
hXXp://intent.nofrillspace.com/users/web11_focus/3807/space.gif
hXXp://mister.nofrillspace.com/users/web8_dice/3791/space.gif

文档哈希值:

MD5 SHA1
fde37e60cc4be73dada0fb1ad3d5f273 1bdc1a0bc995c1beb363b11b71c14324be8577c9
2f1ab543b38a7ad61d5dbd72eb0524c4 2a33542038a85db4911d7b846573f6b251e16b2d

感谢Google公司的Andrew Lyons和Neel Mehta的报告,以及Elia Florio和Cristian Craioveanu对本案例的帮助。

  • Neil Sikka, MSRC Engineering @neilsikka
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计