2023年12月8日发(作者:)
2006年12月第23卷第4期三明学院学报JOURNALOFSANMINGUNIVERSITYDec.2006Vol.23NO.4DLL木马的发现与清除林廷劈(三明学院数学与计算机科学系,福建三明365004)摘要:探讨了DLL木马的危害性,提出了如何发现这种木马的方法以及清除这种新型木马的措施。关键词:网络安全;DLL木马;发现;清除中图分类号:TP393.08文献标识号:A文章编号:1673-4343(2006)04-0439-04TheDetectionandDeletionoftheDLLTrojanHorseLINTing-pi(DepartmentofMathematicsandComputerScience,SanmingUniversity,Sanming365004,China)Abstract:ThisarticlediscussestheharmoftheDLLBackdoor,pointsouthowtodetectthebackdoorandintroducessomemethodshowtoerasethisnewtypeofbackdoor.Keywords:DLLTrojanHorse;detection;deletion引言木马在如今的网络中,是十分普遍的存在,它的危害不言而喻。如果你家的电脑经常泄露秘密,一般都是木马的原因。随着人们对网络安全意识的提高,对木马认识的加强,传统的木马(一个或几个可执行程序)已经很难再隐藏自己,于是出现了一种新型的木马,它就是用DLL文件做成的木马。这种木马把自己做成一个DLL文件,然后再由某个EXE程序文件作为载体对它进行调用,或者使用RUNDLL32.EXE来启动,通过这样的技术处理,一方面不会有木马本身的进程出现,同时也实现了端口的隐藏。因此这种木马很难被察觉,也很难清除。本文针对DLL木马这一问题进行探讨,提出了DLL木马如何发现和清除的方法。器上(或者WEB服务器),然后他会在网络中找各种机会宣传服务器的地址让用户去访问,所以用户下载文件时一定要小心提防;隐藏在带附件的邮件中,这种邮件很多,一些垃圾邮件就经常是这种类型,一旦运行了附件中的文件,那么木马就在你的机器中"安营扎寨"了;当然这种方式的传播对用户来说已经不可怕了,因为很多用户都有一定的警惕性了,不轻易运行附件就可以了;通过即时通信工具进行传播,比如对方把木马和一张很有诱惑力的图片绑在一起,通过QQ发给你,一般情况下你都会打开这图片看看,看完之后你的电脑就中招了;通过不良网站传播,这种情况最难防范,只要你的机器访问对方的网站,就等于“引狼入室”。目前这种不良网站数量很多,可谓防不胜防。木马一旦侵入你的系统,无异于用户的一切资料大门洞开,后患无穷,对此不能掉以轻心。很多木马最喜欢做的事情就是收集用户各种密码,还有的专门记录用户键盘输入的字符。许多用户认为自己安装了防火墙,也安装了杀毒软件,机器就安全了。但是道高一尺魔高一丈,随着木马开发者不断地进行技术改进,很多木马都能绕过防火墙的拦截,国内常用的瑞星、天网、毒霸等工具都算不错的防火墙软件,但是这些工具对于木马开1木马侵入机器的途径和危害木马大多十分隐蔽,在多数情况下,很多机器都是在不知不觉中被种植了木马。根据笔者的研究发现,木马侵入机器的途径主要有:隐藏在软件包中,一旦用户下载了一个带有木马的软件包,在机器运行安装程序时,木马就会种植在系统中;很多木马都是绑定在某个软件上的,传播木马的玩家很喜欢把木马放在FTP服务收稿日期:2006-08-13作者简介:林廷劈(1973-),男,福建大田人,讲师。440・・三明学院学报第23卷发者来说太熟悉了,他们轻易就能绕过这些工具的阻拦,从而进入你的系统,一旦木马进入你的系统,很多情况下会让你束手无策,因为很多工具根本无法杀除它,即使是最好的杀毒软件“卡巴斯基”也无可奈何。于是,很多人都想到一个办法:那实际上,就是重装系统!当然,这是没办法的办法。我们通过了解和掌握计算机网络的一些防范知识,那些木马并非无迹可寻。夹,在这个文件夹下,可以看到三个文件:PR-PIDS-06-08-9-0-0-0.log,PR-PORTS-06-08-9-0-0-0.log和PR-INITIAL-06-08-9-0-0-0.log,这三个文件是一直在更新的,即每开机一次都会自动生成三个新的文件,这里我们要着重查看第一个文件和第三个文件,在文件中会显示出系统运行了哪些进程、访问的IP地址和端口号、以及每个进程所调用的所有DLL文件(这个最重要)等,比如winlogon.exe进程所调用的DLL文件:2识别DLL木马的方法首先了解一下DLL文件,DLL(DynamicLinkProcessID:416(winlogon.exe)Usercontext:NTAUTHORITY\SYSTEMProcessdoesn'tappeartobeaservicePortStatisticsTCPmappings:0UDPmappings:0Loadedmodules:C:\WINDOWS\system32\winlogon.exe(0x01000000)C:\WINDOWS\system32\ntdll.dll(0x77F30000)C:\WINDOWS\system32\kernel32.dll(0x77E10000)C:\WINDOWS\system32\msvcrt.dll(0x77B70000)C:\WINDOWS\system32\ADVAPI32.dll(0x77D60000)C:\WINDOWS\system32\RPCRT4.dll(0x77C20000)C:\WINDOWS\system32\USER32.dll(0x77CD0000)C:\WINDOWS\system32\GDI32.dll(0x77BD0000)C:\WINDOWS\system32\USERENV.dll(0x75870000)C:\WINDOWS\system32\NDdeApi.dll(0x75710000)C:\WINDOWS\system32\CRYPT32.dll(0x760A0000)C:\WINDOWS\system32\MSASN1.dll(0x76080000)C:\WINDOWS\system32\Secur32.dll(0x76EB0000)C:\WINDOWS\system32\WINSTA.dll(0x76150000)C:\WINDOWS\system32\NETAPI32.dllLibrary)是系统中的动态链接库文件,DLL文件本身并不能够运行,需要应用程序来调用。当程序运行时,Windows将其装入内存中,并寻找文件中出现的动态链接库文件。对于每个动态链接,Windows都会装入指定的DLL文件并把它映射到相应虚拟地址空间中。DLL木马实际就是把一段实现了木马功能的代码加上一些特殊代码写成DLL文件。DLL文件运行时是插入到应用程序的内存模块当中,所以正在被调用中的DLL文件无法删除。肯定要不管是何种类型的木马,它要“作恶”通过本地端口与外部电脑连接,只要查看本机开放端口和连接情况,一般就可以找出木马客户端。查看端口和连接最简单的工具可用netstat命令(格式:netstat--an),通过这个命令可以查找到一些可疑的连接,特别要注意ESTABLISHED,它表示已经建立连接,两台机器正在通信;TIME_WAIT的意思是已经结束连接,说明端口曾经有过访问,但访问结束了;SYN_SENT是本机向其它计算机发出的连接请求,一般这个状态存在的时间很短。令人遗憾的是,netstat这个命令并不能看到发起连接的进程。为此,我们还需要借助其他软件的配合使用,微软有一个软件可以很好地解决这个问题,它就是PortReport这个工具,这个工具很小,可以直接到微软的官方网站免费下载,下载地址是:http://www.microsoft.com/downloads/details.aspx?familyid=69ba779b-bae9-4243-b9d6-63e62b4bcd2e&displaylang=en下载完成后,直接安装,然后要激活这项服务,右键点击我的电脑,选择“管理”,在管理窗口中选择“服务”,然后在右边窗口中就可以找到,接下来就是查看“启动”PortReport服务,点击了,找到windows\system32\Logfiles\PortReport文件第4期林廷劈:DLL木马的发现与清除・・441(0x71BA0000)ww_8417450B\Comctl32.dll(0x70AD0000)C:\WINDOWS\system32\WINSCARD.DLL(0x72360000)C:\WINDOWS\system32\WTSAPI32.dll(0x76E60000)C:\WINDOWS\system32\WINMM.dll(0x769E0000)C:\WINDOWS\system32\sxs.dll(0x75CA0000)C:\WINDOWS\system32\shell32.dll(0x77370000)C:\WINDOWS\system32\wldap32.dll(0x76E70000)C:\WINDOWS\system32\cscdll.dll(0x76410000)C:\WINDOWS\system32\rsaenh.dll(0x0FFD0000)C:\WINDOWS\system32\WlNotify.dll(0x75720000)C:\WINDOWS\system32\WINSPOOL.DRV(0x72F40000)C:\WINDOWS\system32\MPR.dll(0x71B30000)C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_5.82.0.0_x-ww_8A69BA05\COMCTL32.dll(0x70BC0000)C:\WINDOWS\system32\UxTheme.dll(0x71AD0000)C:\WINDOWS\system32\SAMLIB.dll(0x5D000000)C:\WINDOWS\system32\cscui.dll(0x76430000)C:\WINDOWS\system32\NTMARTA.DLL(0x76BC0000)C:\WINDOWS\system32\wdmaud.drv(0x72C40000)C:\WINDOWS\system32\OLEAUT32.dll(0x770D0000)C:\WINDOWS\system32\CLBCatQ.DLL(0x76EF0000)C:\WINDOWS\system32\COMRes.dll(0x76F70000)C:\WINDOWS\system32\msacm32.drv(0x72C30000)C:\WINDOWS\system32\MSACM32.dllC:\WINDOWS\system32\PROFMAP.dll(0x75700000)C:\WINDOWS\system32\REGAPI.dll(0x76A60000)C:\WINDOWS\system32\WS2_32.dll(0x71B60000)C:\WINDOWS\system32\WS2HELP.dll(0x71B50000)C:\WINDOWS\system32\PSAPI.DLL(0x76AB0000)C:\WINDOWS\system32\VERSION.dll(0x77B60000)C:\WINDOWS\system32\SETUPAPI.dll(0x76480000)C:\WINDOWS\system32\IMM32.DLL(0x76180000)C:\WINDOWS\system32\LPK.DLL(0x63090000)C:\WINDOWS\system32\USP10.dll(0x72EE0000)C:\WINDOWS\KB684745M.LOG(0x10000000)C:\WINDOWS\system32\MSGINA.dll(0x75740000)C:\WINDOWS\system32\SHSVCS.dll(0x76A80000)C:\WINDOWS\system32\SHLWAPI.dll(0x77280000)C:\WINDOWS\system32\sfc.dll(0x76A50000)C:\WINDOWS\system32\sfc_os.dll(0x76B40000)C:\WINDOWS\system32\WINTRUST.dll(0x76B10000)C:\WINDOWS\system32\ole32.dll(0x77150000)C:\WINDOWS\system32\imagehlp.dll(0x76B70000)C:\WINDOWS\system32\apphelp.dll(0x75D60000)C:\WINDOWS\system32\msctfime.ime(0x00850000)C:\WINDOWS\WinSxS\x86_Microsoft.Windows.common-Controls_6595b64144ccf1df_6.0.100.0_x-442・・(0x77B40000)C:\WINDOWS\system32\midimap.dll(0x77B30000)三明学院学报第23卷发现并查杀。为了提高木马的成活率,网上出现了很多动态嵌入式木马,它是将木马代码(DLL文件)嵌入到正在运行的系统服务进程中。在Windows系统中,每个系统服务进程都有自己的私有内存空间,但还是有种种方法来进入其进程的私有内存空间,来实现动态嵌入式。由于系统的关键进程是不能终止的,所以这类后门非常隐蔽,查杀也非常困难。对这种木马,一般要先查看网络连接情况,等清楚了某个可疑的网络连接之后,拔掉网络线,关闭网络连接,使外部网络与本机失去所有连接,再调用PortReport分析出木马所依赖的程序或者是哪个系统进程,进而分析和比较可以得出可疑的DLL文件,找到DLL木马文件之后,目前还无法马上删除这个文件,因为它是系统进程所调用的DLL文件,只要系统进程没终止,那么这个C:\WINDOWS\system32\wbem\wbemprox.dll(0x74C30000)C:\WINDOWS\system32\wbem\wbemcomn.dll(0x75030000)C:\WINDOWS\system32\wbem\wbemsvc.dll(0x74C20000)C:\WINDOWS\system32\wbem\fastprox.dll(0x75460000)C:\WINDOWS\system32\MSVCP60.dll(0x780C0000)C:\WINDOWS\system32\NTDSAPI.dll(0x76630000)C:\WINDOWS\system32\DNSAPI.dll(0x76E30000)把这些内容保存到某个文件(如t1.txt)中,如果用户对这些DLL文件不熟悉,无法判断是否为系统本身的文件,那么可以找到另一台没有“中毒”机器,通过同样的方法,导出另一个文件t2.txt,把这两个文件放在同一个文件夹下,然后利用工具FC对t1.txt和t2.txt进行比较:FCt1.txtDLL文件就无法删除,我们可以通过系统管理先停止这个系统服务(可以进入系“我的电脑/管理”统管理),接下来要修改注册表,运行regedit,通过查找功能,找到相应DLL木马文件的相关项目,删除它(注意要多找几次),重新启动系统,删除DLL木马文件,至此,这个DLL木马就删除了。t2.4总结DLL木马是一种技术含量较高的木马,用一txt>t3.txt,在t3.txt文件中,可以找出哪些不同的地方,如果有DLL后门通过winlogon.exe调用的话,就可以很容易地分析出来。般方法不易发现,查杀也有一定的难度。而它的危害性则不可低估,一旦侵入机器,就能够轻易地盗窃用户的重要密码和文件,造成严重的破坏和损失。笔者针对这一问题,建议用户根据上述流程进行查杀和清除,以免造成不良的后果。同时在下载文件和访问一些不知名的站点的时候要有防范意识,随时查看自己的网络连接情况,多注意一些不正常的网络连接,这样基本可以防范木马所造成的危害,从而保证自己的数据安全。参考文献:[1]DLL后门清除完全篇[EB/OL].(2005-10-09)[2006-08-01].http://cainiaoxlei.blogchina.com/3169106.html.[2]动态嵌入式DLL木马发现与清除[EB/OL].(2005-12-08)[2006-08-01].http://www.jiahetech.com/index/051208_1.htm.3DLL木马的清除3.1通过Rundll32.exe启动的木马由于系统本身会调用来加载正“rundll32.exe”常的DLL文件,所以这类木马主要看加载的是什么DLL文件,因为木马大多是通过注册表键值来进行自启动。所以首先检查那些常见的自启动键值,在注册表的[HKEY_LOCAL_MACHINE\SOFT-WARE\Microsoft\Windows\CurrentVersion\Run]下,可以查看到哪些DLL被调用,查杀此类木马的方进程终止,接着查找注法是:首先将“rundll32.exe”册表各启动键值,从启动命令的路径中找到相应的DLL文件并删除,然后重新启动系统即可。3.2嵌入式木马运用Rundll32.exe调用的木马,很容易被用户(责任编辑:徐涛)


发布评论