MS10-046_LNK文件快捷方式漏洞的原理分析(多图杀猫)

本文详细分析了MS10-046漏洞,该漏洞源于shell32.dll中解析快捷方式图标时的参数验证问题。通过windbg调试,作者揭示了如何构造恶意LNK文件,利用快捷方式与Control Panel Applets的关系,通过修改特定DWORD值触发漏洞,执行任意代码。在Windows XP SP2环境下,成功测试了构造的LNK文件。分析还探讨了数据流和控制流,指出DWORD值可能描述图标资源状态,并提供了相关参考资料。
摘要由CSDN通过智能技术生成

    文件快捷方式漏洞MS10-046是除了n年前的动画光标(.ani)漏洞之外另一个让我觉得比较有趣的漏洞,毕竟是本机执行任意代码的权限,当然,n年前我还只是一个菜鸟,神马都不懂.

 

    入正题吧,欢迎拍砖,大家一起进步.(后面我会把一些参考文章贴出来的)

 

    由于MS10-046的漏洞是在shell32.dll当中,windows出于美化的目的,会现实快捷方式的图标,这个图标可能是程序本身自带的ico,也可能是系统默认的那些图标,对于一个快捷方式,系统会对它进行解析从而获取他要显示的那个图标,但是在解析的时候没有做好参数验证工作,我觉得在设计上也是有一定缺陷的,后面会详细说.

 

    首先必须解决的问题是调试,怎么去调系统的解析操作,当然是用windbg啦,ring0还是比较劲的,但是默认的情况下,windbg是不会加载ring3的符号的,怎么解决这个问题,让windbg能够调试应用层的程序,步骤如下:

1.!process 0 0 explorer.exe     //主要是获取explorer.exe的_EPROCESS地址,上下文切过去

2..process /p _EPROCESS地址  //这是点命令,切到指定的进程上下文去

3..reload /user [/f] [dll名称]      //也是点命令,用于加载应用层的符号,如.reload /user shell32.dll

    之后就可以使用bp下断了,如bp shell32!_LoadCPLModule

 

    解决了调试问题之后,我们来研究一下这个恶意构造的lnk文件是如何构造出来的.

    操作系统能够让我们自己对控制面板里面的程序进行扩展,如图

    快捷方式跟控制面板的这些程序还是有点关系的.这些程序被称为Control panel applets,他们的实质就是一个后缀名为.cpl的文件,如图,VMware Tools对应的.cpl

    虽然后缀名是.cpl,但是实质上他是一个dll,至于怎么判断出来的,我们都知道,dll和exe都是PE文件格式,具有相似性,并且,exe文件也是可以具有导出目录的,那么如何在PE格式的这个角度判断一个文件是exe还是dll,这个下午也花了点时间去找资料,在<An In-Depth

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值