vb怎么劫持文件?就是劫持一个软件其中一个dll 启动软件就会加载这个dll
展开全部
DLL劫持利用系统未知DLL的搜索路径方式,使得程序加载当前目录下的系统同名DLL。所以可以告诉系统DLL的位置,改变加载系统DLL的顺序不是当前目录,而是直接到系统目录下查找。
这个想法可以通过修改注册表实现。
在注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
是调用系统DLL的首要查找目录。例如里面有RE_SZ类型的ntdll=ntdll.dll项,则系统载入ntdll时会直接从系统目录加载。
由此,添加LPK=LPK.DLL即可防止LPK被劫持,同理可以阻止一些其他DLL被劫持,例如USP10。
在Windows NT系统,XP默认只有少数关键DLL在此键值下,Win7下面此键值已经相当齐全,在Win7系统下发生DLL劫持的概率要比XP小很多。
一 回顾DLL挟持的发展
2010年08月24日微软发布安全公告2269637,提到三方软件编程不安全存在一个DLL挟持的缺陷可以导致远程攻击
2010年08月24日流行的漏洞信息共享网站exploit-db马上就爆出多个DLL挟持漏洞涉及的软件有:Wireshark(免费嗅探器),Windows Live email(邮箱客户端), Microsoft MovieMaker(视频编辑处理),Firefox(网页浏览器), uTorrent (BT下载工具),PowerPoint 2010(办公软件)等
2010年08月25日-26日漏洞信息共享网站exploit-db继续爆出Winamp,Google Earth,Photoshop等软件存在DLL挟持漏洞,同时发布这个blog之前笔者的电脑中已经发掘存在的流行软件有,QQ影音,QQ音乐,美图秀秀,ppstream等
二新老DLL挟持的攻击原理分析和防御
1 动态链接库文件通常加载顺序如下
windows xp sp2系统以上会默认开启SafeDllSearchMode,安全dll搜索模式下DLL文件的搜索顺序如下所示
(1)可执行程序加载的目录(可理解为程序安装目录比如 C:\Program Files\uTorrent)(2)系统目录(即 %windir%\system32 )(3)16位系统目录(即 %windir%\system)(4)Windows目录(即 %windir%)(5)运行某文件的所在目录,比如C:\Documents and Settings\Administrator\Desktop\test)(6)PATH环境变量中列出的目录
2 老DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第一层,运行程序即加载病毒)
(1)老DLL挟持的特点:
为了增加触发的概率,通常会使用usp1.dll,ws2_32.dll,lpk.dll等应用程序所必须的系统dll文件,然后利用DLL搜索第一顺位是程序安装目录,在程序安装目录释放一个同名DLL文件,抢先加载恶意病毒DLL文件,从而达到破坏的作用。这里可执行程序相当于恶意dll的加载器
(2)老DLL挟持病毒利用回顾重现
2007年罗姆病毒(ws2_32.dll导致很多杀毒软件无法打开),2009年春节猫癣病毒(usp10.dll导致很多用户重装系统都无法解决病毒问题)
通常使用老DLL挟持的病毒木马会枚举电脑里面的所有exe目录,然后将恶意的usp10.dll释放到每个exe所在的目录。当用户执行一个应用程序的时候,将会把恶意的usp10.dll文件优先加载从而感染系统
根据前面介绍的DLL加载顺序,运行程序的时候会优先到程序执行的目录下加载必须文件,下图显示了utorrent.exe在安装目录下的找到了usp10.dll文件并把它加载到内存中。
(3)老DLL挟持的通用免疫方案
可以通过编辑HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs来添加需要面议的DLL文件,比如:新建一个ws2_32 指向ws2_32.dll
3 新DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第五层,运行图片即加载病毒)
(1)新DLL挟持的特点:
应用程序为了扩展或者兼容等目的需要加载相应的DLL文件,但是因为某些原因导致这个DLL文件默认不存在于当前系统,比如plugin_dll.dll文件默认情况下不存在utorrent的安装目录,dwmapi.dllxp环境下不存在(Vista以上系统存在),ie6环境下没有ieframe.dll(ie7以上版本存在)。正是因为程序需要的DLL文件在DLL搜索顺序的(1)-(4)中都不可能存在,此时就会尝试加载文件所在目录下的恶意dll文件,从而达到破坏的作用。这里运行的文件(比如mp3)相当于触发者,根据文件关联它会启动一个应用程序去播放mp3文件。而因为应用程序存在DLL挟持漏洞(比如QQ影音),此时QQ影音就会因为设计上的不足导致成为恶意DLL的加载器。相当于老DLL挟持,简直达到了运行图片/视频文件就会执行恶意文件的目的,当然前提是大灰客们能猜中你电脑里面的默认查看的软件是否存在DLL挟持漏洞了,目前已经发现的存在DLL挟持缺陷的主要有以下几类
① 特定系统环境下的文件
典型的有dwmapi.dll文件,xp环境下不存在,vista以上版本存在,也就是说需要触发这个漏洞的系统环境只能是XP系统
② 特定软件版本下的文件
典型的有:ieframe.dll,IE6下不 存在,ie7以上版本有,也就是说触发漏洞的电脑IE必须是IE6版本
③ 特定的库文件
典型的有:mfc80chs.dll
④ 程序自己需要的dll文件,可能是为了功能扩展或者兼容
典型的有:plugin_dll.dll
⑤ 其它未知
(2)新DLL挟持利用重现
通常灰客们会先通过DLL挟持挖掘工具寻找存在DLL挟持漏洞的流行应用程序,然后构造相应的文件上传到网络上供用户下载(具体的传播方式请看下一章),如果用户的电脑存在漏洞那么运行相应文件的时候就会执行存在漏洞的程序,从而使得恶意dll被不知不觉加载
根据前面介绍的DLL加载顺序和新DLL挟持的特点,程序在前四个流程都没有找到需要的文件,只能勉为其难的在第五流程-当前文件目录下加载恶意dll文件,下图就显示了uTorrent加载plugin_dll.dll顺序(前四个流程都是 name not found)并且加载当前目录下恶意plugin_dll.dll文件(第五流程显示的是success )的过程
这个想法可以通过修改注册表实现。
在注册表键值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs
是调用系统DLL的首要查找目录。例如里面有RE_SZ类型的ntdll=ntdll.dll项,则系统载入ntdll时会直接从系统目录加载。
由此,添加LPK=LPK.DLL即可防止LPK被劫持,同理可以阻止一些其他DLL被劫持,例如USP10。
在Windows NT系统,XP默认只有少数关键DLL在此键值下,Win7下面此键值已经相当齐全,在Win7系统下发生DLL劫持的概率要比XP小很多。
一 回顾DLL挟持的发展
2010年08月24日微软发布安全公告2269637,提到三方软件编程不安全存在一个DLL挟持的缺陷可以导致远程攻击
2010年08月24日流行的漏洞信息共享网站exploit-db马上就爆出多个DLL挟持漏洞涉及的软件有:Wireshark(免费嗅探器),Windows Live email(邮箱客户端), Microsoft MovieMaker(视频编辑处理),Firefox(网页浏览器), uTorrent (BT下载工具),PowerPoint 2010(办公软件)等
2010年08月25日-26日漏洞信息共享网站exploit-db继续爆出Winamp,Google Earth,Photoshop等软件存在DLL挟持漏洞,同时发布这个blog之前笔者的电脑中已经发掘存在的流行软件有,QQ影音,QQ音乐,美图秀秀,ppstream等
二新老DLL挟持的攻击原理分析和防御
1 动态链接库文件通常加载顺序如下
windows xp sp2系统以上会默认开启SafeDllSearchMode,安全dll搜索模式下DLL文件的搜索顺序如下所示
(1)可执行程序加载的目录(可理解为程序安装目录比如 C:\Program Files\uTorrent)(2)系统目录(即 %windir%\system32 )(3)16位系统目录(即 %windir%\system)(4)Windows目录(即 %windir%)(5)运行某文件的所在目录,比如C:\Documents and Settings\Administrator\Desktop\test)(6)PATH环境变量中列出的目录
2 老DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第一层,运行程序即加载病毒)
(1)老DLL挟持的特点:
为了增加触发的概率,通常会使用usp1.dll,ws2_32.dll,lpk.dll等应用程序所必须的系统dll文件,然后利用DLL搜索第一顺位是程序安装目录,在程序安装目录释放一个同名DLL文件,抢先加载恶意病毒DLL文件,从而达到破坏的作用。这里可执行程序相当于恶意dll的加载器
(2)老DLL挟持病毒利用回顾重现
2007年罗姆病毒(ws2_32.dll导致很多杀毒软件无法打开),2009年春节猫癣病毒(usp10.dll导致很多用户重装系统都无法解决病毒问题)
通常使用老DLL挟持的病毒木马会枚举电脑里面的所有exe目录,然后将恶意的usp10.dll释放到每个exe所在的目录。当用户执行一个应用程序的时候,将会把恶意的usp10.dll文件优先加载从而感染系统
根据前面介绍的DLL加载顺序,运行程序的时候会优先到程序执行的目录下加载必须文件,下图显示了utorrent.exe在安装目录下的找到了usp10.dll文件并把它加载到内存中。
(3)老DLL挟持的通用免疫方案
可以通过编辑HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs来添加需要面议的DLL文件,比如:新建一个ws2_32 指向ws2_32.dll
3 新DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第五层,运行图片即加载病毒)
(1)新DLL挟持的特点:
应用程序为了扩展或者兼容等目的需要加载相应的DLL文件,但是因为某些原因导致这个DLL文件默认不存在于当前系统,比如plugin_dll.dll文件默认情况下不存在utorrent的安装目录,dwmapi.dllxp环境下不存在(Vista以上系统存在),ie6环境下没有ieframe.dll(ie7以上版本存在)。正是因为程序需要的DLL文件在DLL搜索顺序的(1)-(4)中都不可能存在,此时就会尝试加载文件所在目录下的恶意dll文件,从而达到破坏的作用。这里运行的文件(比如mp3)相当于触发者,根据文件关联它会启动一个应用程序去播放mp3文件。而因为应用程序存在DLL挟持漏洞(比如QQ影音),此时QQ影音就会因为设计上的不足导致成为恶意DLL的加载器。相当于老DLL挟持,简直达到了运行图片/视频文件就会执行恶意文件的目的,当然前提是大灰客们能猜中你电脑里面的默认查看的软件是否存在DLL挟持漏洞了,目前已经发现的存在DLL挟持缺陷的主要有以下几类
① 特定系统环境下的文件
典型的有dwmapi.dll文件,xp环境下不存在,vista以上版本存在,也就是说需要触发这个漏洞的系统环境只能是XP系统
② 特定软件版本下的文件
典型的有:ieframe.dll,IE6下不 存在,ie7以上版本有,也就是说触发漏洞的电脑IE必须是IE6版本
③ 特定的库文件
典型的有:mfc80chs.dll
④ 程序自己需要的dll文件,可能是为了功能扩展或者兼容
典型的有:plugin_dll.dll
⑤ 其它未知
(2)新DLL挟持利用重现
通常灰客们会先通过DLL挟持挖掘工具寻找存在DLL挟持漏洞的流行应用程序,然后构造相应的文件上传到网络上供用户下载(具体的传播方式请看下一章),如果用户的电脑存在漏洞那么运行相应文件的时候就会执行存在漏洞的程序,从而使得恶意dll被不知不觉加载
根据前面介绍的DLL加载顺序和新DLL挟持的特点,程序在前四个流程都没有找到需要的文件,只能勉为其难的在第五流程-当前文件目录下加载恶意dll文件,下图就显示了uTorrent加载plugin_dll.dll顺序(前四个流程都是 name not found)并且加载当前目录下恶意plugin_dll.dll文件(第五流程显示的是success )的过程
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询