本程序也同时运行起来了(图2)。 ![]() 用进程查看器查看下CALC.EXE进程(图 3) ![]() 发现计算器程序确实先加载了我们构造好的USP10.DLL,然后由伪装后的USP10.DLL加载了 真正的 USP10.DLL。 通过以上测试,我们发现 DLL 劫持漏洞确确实实的存在,而且造成的后果非常严重,但 是此漏洞仅仅存在于Windows操作系统内部吗?答案是否定的! 二、新型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 劫持漏洞。 在安全组织exploit-db公布的存在DLL 劫持漏洞的软件列表中,包括:AutoCAD 2007、 Daemon tools、Winamp、Media Player Classic、Mozilla Thunderbird、Microsoft Office、 Adobe Photoshop 、Adobe Dreamweaver CS5、Skype、Safari、WinDVD、Opera、Firefox 等都位列其中。安装了上述软件的电脑,当用户在打开一个图片、音乐、视频、BT种子、 网页文件都有可能感染病毒。 当攻击者利用DLL劫持漏洞构造一个特殊的DLL文件,将这 个 DLL文件打包到一些JPG、PPT、MP3、MPG、Html文件中分发,用户解压后双击打开这些 文档,病毒即被立即触发。 1、新型DLL 劫持漏洞形成原理: 应用程序为了扩展或者兼容等目的需要加载相应的DLL 文件,但是因为某些原因导致这 个 DLL文件默认不存在于当前系统,此时就会尝试加载文档所在目录下的恶意DLL文件,从 而达到破坏的作用。这里运行的文档(比如mp3)相当于触发者,根据文件关联它会启动一 个应用程序去播放mp3 文件。而因为应用程序存在DLL 劫持漏洞(比如Winamp),此时Winamp 就会因为设计上的不足导致成为恶意DLL的加载器。新型DLL 劫持漏洞构成的危害简直达到 了运行图片或音频文件就会执行恶意代码的地步。 2、攻击文件构造 为了更好的说明新型DLL漏洞危害性,我们来具体演示下,这里选取的软件为Microsoft Office 2007 中的Word软件。 测试环境:Windows 7 6.1.7601 Service Pack 1 Build 7601 编程环境:Delphi 2007 工具软件:漏洞检测软件 (一)用漏洞检测软件检测Word2007,发现存在DLL劫持漏洞,检测报告如下: Application: WINWORD.EXE Version: 12.0.6211.1000 Company Name: Microsoft Corporation Product Name: 2007 Microsoft Office system File Date: 28-08-2007 Detailed Report: ![]() 从以上报告可以看到Word2007在打开DOC 或DOCX文档时引发了DLL 劫持漏洞,漏洞文件为 IM****.DLL(为了安全,这里将具体文件名隐去,请谅解)。 (二)用 Delphi2007 软件编写代码。这里我们只写攻击代码即可,不用再完全按照原 DLL 构造导出表了(会引起软件崩溃,只是测试)。 具体代码如下: library im****; uses windows; begin MessageBox(0,'测试成功,存在漏洞!','DLL劫持漏洞测试',MB_OK); //弹窗测试 end. (三)测试攻击效果 在任意目录下新建DOC(DOCX)文档,将编译好的伪造IM****.DLL拷贝到同一目录下, 运行 DOC(DOCX)文档(图4) ![]() 图4 Word2007漏洞测试 可以看到 Word2007确实存在DLL劫持漏洞,造成的结果是,你在打开一个Word文档的时候 病毒却已在后台监视你的一举一动! |