详解cve-2010-2553

我的调试环境是win7旗舰版32位+wmpalyer+windbg+IDA。

poc见: https://www.exploit-db.com/exploits/15112/
wmpalyer设置页堆:
C:\Program Files\Debugging Tools for Windows (x86)>gflags.exe -i wmplayer.exe +h
pa +htc
Current Registry Settings for wmplayer.exe executable are: 02000010
    htc - Enable heap tail checking
    hpa - Enable page heap
C:\Program Files\Debugging Tools for Windows (x86)>gflags.exe -i wmplayer.exe
Current Registry Settings for wmplayer.exe executable are: 02000010
    htc - Enable heap tail checking
    hpa - Enable page heap
打开wmplayer,windbg附加进程,wmplayer中打开poc,windbg成功断下:
0:015> g
(f14.efc): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=113f1000 ebx=113ef000 ecx=00000040 edx=00000000 esi=113ef000 edi=113f1000
eip=76faa05b esp=1163f510 ebp=1163f518 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
msvcrt!__ascii_strnicmp+0x99:
76faa05b 660f7f07        movdqa  xmmword ptr [edi],xmm0 ds:0023:113f1000=????????????????????????????????
此时查看栈回溯及113f1000所在堆的信息:
0:027> kvn
 # ChildEBP RetAddr  Args to Child              
00 1163f518 76faa00b 113f1000 113ef000 00002000 msvcrt!__ascii_strnicmp+0x99 (FPO: [3,0,0])
01 1163f548 70ae3ba2 113f1000 113ef000 00002000 msvcrt!_VEC_memcpy+0x52 (FPO: [3,0,0])
02 1163f588 70aeeeda 00000004 00000000 00000068 iccvid!CVDecompress+0x141 (FPO: [Non-Fpo])
03 1163f5b8 70ae80f8 0ddd0f60 00000000 10ed2fd8 iccvid!Decompress+0x128 (FPO: [Non-Fpo])
04 1163f604 71f01759 0ddd0f60 00000001 0000400d iccvid!DriverProc+0x1bf (FPO: [Non-Fpo])
05 1163f628 6ce78639 71f1c7c0 0000400d 1163f640 MSVFW32!ICSendMessage+0x31 (FPO: [Non-Fpo])
06 1163f658 6ce789c4 71f1c7c0 00000000 10ed2fd8 quartz!CVFWDynLink::ICDecompress+0x3e (FPO: [Non-Fpo])
07 1163f710 6cf26cbe 1107cfa8 111bafb8 00000000 quartz!CAVIDec::Transform+0x2b0 (FPO: [Non-Fpo])
08 1163f73c 6cf26910 1107cfa8 00000000 0e956ee0 quartz!CVideoTransformFilter::Receive+0x120 (FPO: [Non-Fpo])
09 1163f750 6ce60472 0e9aef44 1107cfa8 1163f790 quartz!CTransformInputPin::Receive+0x33 (FPO: [Non-Fpo])
0a 1163f760 6cf2d61e 1107cfa8 00040103 0e956ee0 quartz!CBaseOutputPin::Deliver+0x22 (FPO: [Non-Fpo])
0b 1163f790 6cf2d830 1163f7c0 1163f7bc 00000000 quartz!CBaseMSRWorker::TryDeliverSample+0x102 (FPO: [Non-Fpo])
0c 1163f7d4 6cf2deba 00000000 0e956ee0 0e956ee0 quartz!CBaseMSRWorker::PushLoop+0x15b (FPO: [Non-Fpo])
0d 1163f7ec 6cf2e46a 00000000 6ce35735 00000000 quartz!CBaseMSRWorker::DoRunLoop+0x44 (FPO: [Non-Fpo])
0e 1163f7f4 6ce35735 00000000 00000000 1163f810 quartz!CBaseMSRWorker::ThreadProc+0x39 (FPO: [0,0,4])
0f 1163f804 76811174 0e956ee0 1163f850 7720b3f5 quartz!CAMThread::InitialThreadProc+0x15 (FPO: [Non-Fpo])
10 1163f810 7720b3f5 0e956ee0 6779fde2 00000000 kernel32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
11 1163f850 7720b3c8 6ce35720 0e956ee0 00000000 ntdll!__RtlUserThreadStart+0x70 (FPO: [Non-Fpo])
12 1163f868 00000000 6ce35720 0e956ee0 00000000 ntdll!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])
0:027> !heap -p -a 113f1000
    address 113f1000 found in
    _DPH_HEAP_ROOT @ b1000
    in busy allocation (  DPH_HEAP_BLOCK:         UserAddr         UserSize -         VirtAddr         VirtSize)
                                10e53c64:         113eb000             6000 -         113ea000             8000
    6fe58e89 verifier!AVrfDebugPageHeapAllocate+0x00000229
    77274ea6 ntdll!RtlDebugAllocateHeap+0x00000030
    77237d96 ntdll!RtlpAllocateHeap+0x000000c4
    772034ca ntdll!RtlAllocateHeap+0x0000023a
    754a7589 KERNELBASE!LocalAlloc+0x0000005f
    70ae3d93 iccvid!CVDecompressBegin+0x00000092
    70aee2a2 iccvid!DecompressBegin+0x000002cf
    70ae80d1 iccvid!DriverProc+0x00000198
    71f01759 MSVFW32!ICSendMessage+0x00000031
    6ce79925 quartz!CAVIDec::StartStreaming+0x0000027a
    6cf266fb quartz!CTransformFilter::Pause+0x00000060
    6ce782a4 quartz!CAVIDec::Pause+0x0000002f
    6ce29e03 quartz!CFilterGraph::Pause+0x00000223
    6ce2c8b1 quartz!CFGControl::Cue+0x00000032
    6ce35c40 
2010年7月16日,Windows快捷方式自动执行0day漏洞[CVE-2010-2568](微软安全知识库编 号2286198)被披露,很快网上已经可以找到利用这个漏洞攻击的样本。利用Windows快捷方式自动执行0day漏洞可以做到:看一眼恶意软件就中 毒,而根本不需要去执行它。金山毒霸安全实验室预计在未来一段时间,这个漏洞将会被广泛使用,网民须高度重视。 攻击者利用Windows快捷方式自动执行0day漏洞,可以制作一个特殊的lnk文件(LNK是快捷方式文件的扩展名),当Windows解析这个 LNK文件时,会自动执行指定的恶意程序。这个漏洞最佳利用通道是U盘、移动硬盘、数码存储卡,也可以是本地磁盘或网络共享文件夹,当U盘或网络共享文件 夹存在这样的攻击程序时,只需要使用资源管理器,或与资源管理器类似的应用程序查看这个文件夹,不需要手动运行病毒程序,病毒自己就会触发。newjian.com 这个漏洞最令人吃惊的地方在于,“不需要双击病毒文件,仅看一眼文件图标就中毒”。几年前,曾经有个叫“新欢乐时光 (VBS.KJ)”的病毒广为流传,VBS.KJ病毒会在每个文件夹下生成desktop.ini和folder.htt文件(这两个文件控制了文件夹在 资源管理器中的显示)。只要打开被病毒修改过的含有desktop.ini和folder.htt的文件夹,不需要双击病毒,看一眼就中毒。现在和新欢乐 时光传播类似的病毒将要出现了,尽管我们现在还没有看到很多病毒作者利用Windows快捷方式漏洞传播,但相信这种病毒攻击一定会有。 Windows快捷方式自动执行0day漏洞存在所有流行的Windows版本,包括尚未公开发布的Windows 7 SP1 beta和Windows 2008 R2 SP1 beta。意味着,这个风险几乎遍布所有安装了Windows的电脑。 防止这个漏洞被利用,微软方面提供了几个暂时缓解的方案: 1.关闭快捷方式图标的显示,不过这会让Windows界面变得奇丑,因为一个个漂亮的桌面图标和开始菜单图标全都不显示了。 2.建议企业用户关闭WebClient服务,个人用户(一般不使用网络共享资源)可以不必考虑这个问题。 3.关闭U盘自动播放可以避免插上U盘的动作就中毒,只有手动查看文件夹才有风险。 4.以受限用户权限运行计算机可以降低风险 对于喜欢使用各种Windows美化版的用户来说,可能麻烦更大一些,这些美化版大都修改了shell32.dll,针对这个Windows 快捷方式自动执行0day漏洞的修补程序,可能去修补shell32.dll,可能会让这些美化版出现一些问题。倘若这些真的发生了,那些使用美化版的盗 版Windows用户也许会拒绝这个重要的安全补丁,从而加剧利用此漏洞的病毒传播。 这是一个需要安全厂商和所有消费者高度关注的安全漏洞,希望微软能在下一个例行补丁日到来之前提供应急补丁。金山毒霸安全实验室将会严阵以待,防止利用此漏洞传播的病毒扩散。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值