打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[揭开DLL木马神秘面纱-删除木马
揭开DLL木马神秘面纱-删除木马

一、初识DLL木马

  首先了解一下DLL文件,DLL(Dynamic Link Library)是系统中的动态链接库文件,DLL文件本身并不能够运行,需要应用程序来调用。当程序运行时,Windows将其装入内存中,并寻找文件中出现的动态链接库文件。对于每个动态链接,Windows都会装入指定的DLL文件并把它映射到相应虚拟地址空间中。DLL木马实际就是把一段实现了木马功能的代码加上一些特殊代码写成DLL文件。DLL文件运行时是插入到应用程序的内存模块当中,所以DLL文件无法删除。

  下面以一个实例说明DLL文件的运行,单击“开始→运行”并输入“rundll32.exe netplwiz.dll,UsersRunDll”,回车后会看到一个用户账户设置窗口,打开进程列表发现系统新增一个“rundll32.exe”进程,但是并不会发现DLL之类的进程,“netplwiz.dll,UsersRunDll”就是通过“rundll32.exe”来调用的,如果这是一个DLL木马,那么它启动后新增的进程就是正常的“rundll32.exe”,一般用户也不会将“rundll32.exe”中止或删除,而木马此时却可以在后台悄悄地“作恶”。

  小提示

  当然除了用“rundll32.exe”作为载体外,DLL木马还可以通过动态嵌入技术,通过任意一个系统进程进行加载。

  二、查杀方法

  前面介绍了DLL文件自身并不能运行,它必须通过其它程序调用才能“作恶”,主要有以下两种途径:

  1.通过Rundl32l.exe启动的木马

  木马运行如上所述,系统启动后若发现加载了“rundll32.exe”进程,那很可能就是中招了。不过系统也会调用“rundll32.exe”来加载正常的DLL文件,主要看加载的是什么DLL文件,因为木马大多是通过注册表键值来自启动。首先检查那些常见的自启动键值,如“3721”就是通过DLL文件来启动的,虽然它并不是木马,但是它的自启动和运行方式可以借鉴。它在注册表的[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下,新添了一个“CnsMin”的键值,启动命令是“Rundll32.exe E:\WINDOWS\DOWNLO~1\CnsMin.dll,Rundll32”(如图1)。这样每次启动系统后“CnsMin.dll”都会被Rundll32.exe调用,而在进程列表出现的则是Rundl32.exe。此类DLL木马的运行过程大多如此,查杀方法是:首先将“rundll32.exe”进程终止,接着查找注册表各启动键值,从启动命令的路径中找到相应的DLL文件并删除即可。

图1 注册表

  2. 嵌入式木马

  运用Rundl32l.exe调用的木马,很容易被用户发现并查杀。为了提高“马儿”的成活率,网上出现了动态嵌入式木马,它是将木马代码嵌入到正在运行的进程中。理论上来说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但实际上,动态嵌入式木马就是通过嵌入进程来“作恶”的。虽然编写这种动态式嵌入木马有一定的技术难度,但是很多“雷锋”式的制马高手将此类木马随意放在网上,初学者下载这种木马后只要按提示选择嵌入进程就可以轻松生成木马,把客户端发送到对方电脑并运行后,动态嵌入式木马就可以在我们的电脑“安家落户”了,这也是众多用户中招的原因。下面以查杀“winlogon.exe”进程木马为例,介绍一下查杀技巧。

  ①.查看连接

  不管是何种类型的木马,它要“作恶”肯定要通过本地端口与外部电脑连接,只要查看本机开放端口和连接情况,一般就可以找出木马客户端。查看端口和连接可用“netstat”命令(格式:nestat –a –o),不过这个命令并不能看到发起连接的进程。这里推荐大家使用“CurrPorts 汉化版”,它是一款免费的网络连接检测工具,除了能够列出所有TCP/IP和UDP连接外,还可以列出打开端口的应用程序,并提供终止程序功能。运行“CurrPorts”后,会发现“winlogon.exe”已被一远程地址连接,打开的端口是6666、6671、6669、6672。“winlogon.exe”是Windows NT的用户登陆程序,这个进程是管理用户登录和退出的,它在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。正常情况下,这个进程是不会向外发起连接的,若“winlogon.exe”发起连接,则是中了嵌入“winlogon.exe”进程的DLL木马,在“CurrPorts”中选中进程,依次将连接中断(如图2),需要注意的是不要选择“终止打开选中端口的进程”,否则电脑会自动重启。

下载CurrPorts:

http://down1.tech.sina.com.cn/download/downContent/2004-06-30/10694.shtml

图2 将连接中断

  小知识:端口状态参数含义

  LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接,只有TCP协议的服务端口才能处于LISTENING状态。

  ESTABLISHED的意思是建立连接,表示两台机器正在通信。

  TIME_WAIT的意思是结束了这次连接。说明端口曾经有过访问,但访问结束了。

  SYN_SENT是本机向其它计算机发出的连接请求,一般这个状态存在的时间很短。

②.分析

  既然是插入进程的DLL木马,通过查看“winlogon.exe”进程加载DLL模块应该可以找出“真凶”。查看模块利用免费软件“prcmgrWindows进程管理器”,运行软件后选中进程并切换到“进程模块”选项卡,接着单击“导出列表”,将加载列表导出为TXT文件(如图3)。

下载windows进程管理器:

http://down1.tech.sina.com.cn/download/downContent/2005-12-13/16432.shtml

图3 将加载列表导出为TXT文件

  小提示

  若木马插入到“Explorer”、“Iexplorer.exe”等进程中,由于启动的应用程序不同,则加载的DLL模块也是不同的,为便于比较最好关闭所有不必要的程序再进行导出。

  ③.查找木马

  用上文的方法到另一台电脑中同样导出“winlogon.exe”进程加载的DLL模块文件,用记事本打开这两个文件比较,可以看到中招电脑上进程模块比正常电脑多出14个(如图4),现在一一比较将相同模块文件删除后,顺利找到多出的14个DLL文件,经查看文件属性获知,“e:\windows\rundll.dll”为非微软“制造”,它就是DLL木马。

图4 可以看到中招电脑上进程模块比正常电脑多出14个

  小提示

  如果是系统正常的DLL文件,文件属性中都会有一个“版本”标签,公司名称为“Microsoft Corporation”,创建日期是“2001年9月5日,:13:00”,可根据这一特性来判断是否为木马文件。如本例的“rundll.dll”木马,创建日期“2004年11月13日, :11:59”,修改日期则是“2001年9月5日, :13:00”,也就是说还没创建文件时就被修改了,显然是非法文件!

  ④.删除木马(设置系统权限)

  由于“winlogon.exe”是系统关键进程无法终止,所以也无法直接删除“rundll.dll”,这里使用系统权限设置来禁止“winlogon.exe”的调用。打开“我的电脑”,单击“工具→文件夹选项→查看”,然后在“高级设置”选项下去除“简单文件共享(推荐)”前的小勾;随后找到“rundll.dll”右击选择“属性”命令,点击“安全”标签,接着单击“高级”项,在弹出的窗口清除“从父项继承那些可以应用到子对象的权限项目,包括那些在此明确定义的项目”复选框,最后单击删除,去除所有继承的权限(如图5),依次单击“确定”后退出,这样系统中就没有任何进程可以调用“rundll.dll”,重启后重新勾选“从父项继承那些可以应用到子对象的权限项目权限”,然后将其删除。

图5  去除所有继承的权限

  小提示

  上述权限操作仅对采用NTFS分区的系统有效,对于采用FAT32分区的系统,可以重启后进入纯DOS将木马文件删除。如果加载DLL木马的进程可以被终止,如嵌入“Explorer.exe”木马,只要将进程终止,然后找到文件将它删除即可。

⑤.修复自启动

  DLL木马会通过注册表键值进行自启动,查看自启动菜单推荐大家使用“Autoruns8.13汉化版”,它也是一款免费工具,可以查看系统所有启动项目。运行后单击“登录”,可以看到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run]下,有一“Windows服务”启动项极为可疑(加载的是“E:\WINDOWS\msagent\msymrj.com”),右击选择“转到具体位置”(如图6)。此时程序将直接打开注册表,随后将该键值删除,至此DLL木马顺利被查杀。那么“msymrj.com”与“rundll”木马究竟是什么关系?这其实是一对守护进程,用于守护嵌入“winlogon.exe”进程的木马,如果发现被插入的进程被终止,立刻重新启动该进程。不过本例的“winlogon.exe”进程如果被终止,系统会重新启动,它也帮不上什么忙了。

下载Autornus:

http://down1.tech.sina.com.cn/download/downContent/2004-09-13/11464.shtml

图6 转到具体位置

  小提示

  很多DLL木马被终止后立刻又会复活,就是由于有守护进程的存在,只有把守护进程“掐死”后,才能终止木马的运行。

  三、总结经验

  嵌入式木马作为一种“科技含量”较高的木马,用一般方法不易发现,查杀也有一定的难度,我们只要根据上述流程进行查杀,还是可以将其全部“消灭”。总结一下查杀步骤:首先用“CurrPorts”查看本机开放端口和连接并终止非法连接,找到发起连接进程,接着用“prcmgrWindows进程管理器”找出DLL木马,然后将木马文件删除,最后通过“Autoruns”修复注册表即可。
 
删除文件时出现"无法删除infocurl.dll 访问被拒绝"是怎么回事?
dll文件英文名称为Dynamic Linking Library,以下简称dll,中文名字"动态链接程序库"文件。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即dll文件,放置于系统中。当我们执行某一个程序时,相应的dll文件就会被调用。一个应用程序可有多个dll文件,一个dll文件也可能被几个应用程序所共用。比如,假设系统中有一dll具备了与远端系统进行网络联接的功能,我们假设其名称为Network.dll,如果有另外一个应用程序想使用该功能,则这个程序只需在执行时与Network.dll进行动态链接(Dynamic Linking),就可以运用Network.dll的网络联接功能来实现远端联接系统。简单地说,dll的特性是:

1、dll本身无法自行执行,必须靠其他程序调用。

2、dll文件都具有一定的功能。

3、在系统刚建立时 (如刚装好Windows时),系统中即存在有一定数量的dll,而某些应用程序亦会将自已所需的dll添至系统中,导致dll的数量随应用程序的增加而增加。

既然知道了dll文件的概念和特性,那么怎么才能解决删除难这个问题呢?虽然解决这个问题的方法有很多种,如用软件unlocker来删除。这里介绍的是手工删除方法dll文件的方法。

因为dll文件的特性注定了它可能被多个软件调用,这也是dll文件为什么删除不掉的原因——正在使用的文件是当然不可能给你删除的。那么到底是哪个程序在调用这个dll文件呢?如何才能删除这个dll文件呢?下面就手动删除dll文件的方法。

Step 1.在运行里输入cmd进入命令提示符。

step 2.然后输入命令tasklist /m>c:\listdll.txt回车后,在C盘下会出现一个listdll.txt文本文件,这个文件里如图2所示列出了目前运行的各个程序正在调用的dll文件。在用CTRL+F弹出查找框,输入自己要删除的的dll文件,查找出是哪个程序在调用这个dll文件。
step 3.CTRL+ALT+DEL打开Windows资源管理器,结束占用需要删除dll文件的程序或着进程,这时再去删除这个dll文件就很轻松了。

step 4.如果查出来的占用dll文件的进程是svhost.exe文件/进程,这个进程一般系统有7、8个至多,到底是哪个svhost.exe进程占用了这个dll文件呢?这是可以在命令提示符下输入tasklist /svc,当然,你也可以把它输出为文本文件tasklist /svc>C:\listsvc.txt。这时listsvc.txt文件里的svhost.exe会跟出如图3所示的各个进程的PID号。这时就可以具体的根据PID号来结束进程,达到删除dll文件的目的。
文件粉碎机:www.360.cn 下载一个安全卫士,高级选项--高级工具集里有文件粉碎功能。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
dll插入型木马病毒的原理,查杀与防范-飞翔软件教程-52z.com
系统进程之 SMSS
s32中的文件细说
巧妙从进程中判断出病毒和木马 eNet硅谷动力
电脑进程详解
windows任务管理器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服