真真假假Svchost.exe剖析
打开进程列表后你会发现一大堆不知用途的进程,究竟是系统进程还是木马病毒?如果打开系统文件夹,一大堆奇奇怪怪名称的文件,更是会把你弄得晕头转向。很多朋友因此而始终抱有一种未知的恐惧,认为木马、黑客无处不在,即使是高手,也不能把这些陌生的系统文件说个明明白白。一、Svchost.exe进程介绍
打开“任务管理器”观察系统中的进程,发现Svchost.exe有时竟然有5个之多(见图1),可以试试逐个结束这些进程,有的可结束,有的结束后还会再生,有的结束后系统会提示“系统即将关机,离关机还有60秒”。
如图1[attach]11616[/attach]
系统中的Svchost.exe进程是正常系统进程,不是病毒,虽然系统中有多个Svchost.exe进程是正常的,但也不保证都是正常的。
Svchost.exe是NT内核操作系统(Windows2000/XP/2003都属于NT内核操作系统)独有的进程,“Svchost”其实就是 “ServiceHost”(服务宿主)的缩写。微软官方对它的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称,通俗讲,它就是一个服务装载器。
由于Windows 2000/XP系统服务越来越多,以EXE单独进程的形式启动所有服务会大大增加系统负担,为节省系统资源,微软将一些系统服务以动态链接库(DLL)形式实现,而Svchost.exe就是用来装载这些DLL文件以启动系统服务的程序。
那为什么系统进程列表中的Svchost.exe会有多个呢?微软为了让系统能更好地进行服务控制,就允许多个Svchost.exe进程同时运行,每个 Svchost.exe进程可以包含一组服务。打开注册表[HKEY_LOCAL_MACHINE\Software\Microsoft\ WindowsNT\CurrentVersion\Svchost]主键,在窗口右侧可以看到许多键值,这里的每个键值都代表一组服务,键值数据则包含了该组服务下面运行的服务名称列表,每组服务启动时都会通过单独的Svchost.exe进程来装载。WindowsXP中默认共有六组服务(见图2),其中imgsvc、NetworkService、rpcss、termsvcs四个组,它们都只有一个服务运行,这些服务启动后的 Svchost.exe进程用户名为“SYSTEM”。而LocalService和netsvcs组都启动了多个服务,它们的Svchost.exe进程用户名分别为“LOCAL SERVICE”和“NETWORD SERVICE”,从图1中可以看到这种区别。
如图2[attach]11617[/attach]
当然了,这六组服务通常并不都是启动状态的,根据系统启动的服务不同,反映在系统进程列表中的Svchost.exe进程数量也是不同的, WindowsXP会有四个到六个Svchost.exe进程,而Windows 2000通常则会有两个Svchost.exe进程。
小提示
点击“开始→运行”,在运行框中输入“CMD”回车,然后在打开的命令行窗口中输入“Tasklist /svc”(不含引号)命令,可以更直观地看到每个Svchost.exe进程装载的服务名称列表(见图3)。
如图3[attach]11618[/attach]
获取每组服务的详细信息
如果想更进一步了解Svchost.exe装载的这些服务都是什么功能,可以记下键值数据中的服务名称,例如“RpcSs”,接着打开注册表的 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services],再打开下面的“RpcSs”子键,在右边的“Description”键值中就可以看到该服务的描述,而在“ImagePath”键值数据中则可以看到这个服务的运行命令正是“% SystemRoot%\system32\svchost -krpcss”(见图4)。而在“RpcSs”子键下还有一个“Parameters”(参数)子键,其右边的“ServiceDll”键值数据“% SystemRoot%\system32\rpcss.dll”则表明了RpcSs服务启动时调用的是系统目录下的“Rpcss.dll”文件
如图4[attach]11619[/attach]
如果觉得通过注册表查询服务名称了解其属性不太方便,也可以使用“全能助手用Windows服务管理专家”(以下简称“服务管理专家”)来查询,运行软件后单击“All Win32Services”分支,在右侧服务列表中根据服务名称索引即可快速找到要查询的服务,单击服务名称,即可看到该服务的启动命令以及调用的 DLL文件等相关信息(见图5)。同时软件还专门设计了Svchost Group分支,可以快速查询LocalService和netsvcs组中的服务详细信息。
如图5[attach]11620[/attach]
二.危险的Svchost.exe进程
由于Svchost.exe进程的特殊性,它隐藏了真正运行的程序的名称,在表面看到的只是Svchost.exe进程,这个特性同时也让许多病毒、木马有空可钻,企图以此迷惑我们。那么如何判断系统中的多个Svchost.exe进程是否正常呢?下面针对这类病毒常用的几种欺骗手法来进行分析。
骗局1:利用假冒Svchost.exe名称的病毒程序
火眼金睛:这种方式运行的病毒并没有直接利用真正的Svchost.exe进程,而是启动了另外一个名称同样是Svchost.exe的病毒进程,由于这个假冒的病毒进程并没有加载系统服务,它和真正的Svchost.exe进程是不同的,我们只需在命令行窗口中运行一下“Tasklist/svc”,如果看到哪个Svchost.exe进程后面提示的服务信息是“暂缺”(见图6),而不是一个具体的服务名,那么它就是病毒进程了,记下这个病毒进程对应的 PID数值(进程标识符),即可在任务管理器的进程列表中找到它,结束进程后,在C盘搜索Svchost.exe文件,也可以用第三方进程工具直接查看该进程的路径,正常的Svchost.exe文件是位于%systemroot%\System32目录中的,而假冒的Svchost.exe病毒或木马文件则会在其他目录,例如“w32.welchina.worm”病毒假冒的Svchost.exe就隐藏在Windows\System32\Wins目录中,将其删除,并彻底清除病毒的其他数据即可。
如图6[attach]11621[/attach]
骗局2:一些高级病毒则采用类似系统服务启动的方式,通过真正的Svchost.exe进程加载病毒程序,而Svchost.exe是通过注册表数据来决定要装载的服务列表的,所以病毒通常会在注册表中采用以下方法进行加载:
·添加一个新的服务组,在组里添加病毒服务名
·在现有的服务组里直接添加病毒服务名
·修改现有服务组里的现有服务属性,修改其“ServiceDll”键值指向病毒程序
判断方法:病毒程序要通过真正的Svchost.exe进程加载,就必须要修改相关的注册表数据,我们可以打开[HKEY_LOCAL_MACHINE\ Software\Microsoft\WindowsNT\CurrentVersion\Svchost],观察有没有增加新的服务组,同时要留意服务组中的服务列表,观察有没有可疑的服务名称,通常来说,病毒不会在只有一个服务名称的组中添加,往往会选择LocalService和netsvcs这两个加载服务较多的组,以干扰我们的分析,还有通过修改服务属性指向病毒程序的,通过注册表判断起来都比较困难,这时我们可以利用前面介绍的服务管理专家,分别打开LocalService和netsvcs分支,逐个检查右边服务列表中的服务属性,尤其要注意服务描述信息全部为英文的,很可能是第三方安装的服务,同时要结合它的文件描述、版本、公司等相关信息,进行综合判断。例如这个名为PortLessBackDoor的木马程序,我们在服务列表中可以看到它的服务描述为“IntranetServices”,而它的文件版本、公司、描述信息更全部为空(见图7),如果是微软的系统服务程序是绝对不可能出现这种现象的。从启动信息“C:\WINDOWS\System32\svchost.exe -knetsvcs”中可以看出这是一款典型的利用Svchost.exe进程加载运行的木马,知道了其原理,清除方法也很简单了:先用服务管理专家停止该服务的运行,然后运行regedit.exe打开“注册表编辑器”,删除[HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Services\IPRIP]主键,重新启动计算机,再删除%systemroot%\System32目录中的木马源程序“svchostdll.dll”,通过按时间排序,又发现了时间完全相同的木马安装程序“PortlessInst.exe”,一并删除即可。
如图7[attach]11622[/attach]
全能助手用Windows服务管理专家 小档案
软件版本:1.02 软件大小:164KB
软件性质:免费软件 适用平台:Windows 2000/XP
下载地址:
[url]http://www.greendown.cn/soft/3724.html[/url] 呵呵,楼主每次发文章都是长篇大论呀,辛苦了,
描述的很清楚, 学习+收藏 好好呀 就是从基础学起!! 最近老怀疑网络中的病毒和Svchost.exe有关系,拜读了
功能强大的TASKLIST命令
windows xp的任务管理器,大家一定不会陌生。通过“Ctrl+Alt+Del”组合键,选择“任务管理器”就可以查看到本机完整的进程列表,而且可以通过手工定制进程列表的方式获的更多的进程信息,如会话ID、用户名等,但遗憾的是,我们查看不到这些进程到底提供了哪些系统服务。在Windows XP中新增了一个命令行工具“tasklist.exe”能实现上面的功能。“Tasklist”命令是一个用来显示运行在本地或远程计算机上的所有进程的命令行工具,带有多个执行参数。
它的使用格式为:
TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
参数列表:
/S system 指定连接到的远程系统。
/U [domain\]user 指定使用哪个用户执行这个命令。
/P [password] 为指定的用户指定密码。
/M [module] 列出调用指定的 DLL 模块的所有进程。
如果没有指定模块名,显示每个进程加载的所有模块。
/SVC 显示每个进程中的服务。
/V 指定要显示详述信息。
/FI filter 显示一系列符合筛选器指定的进程。
/FO format 指定输出格式,有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定栏标头不应该在输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。
1、 使用“Tasklist”命令查看本机进程
运行“命令提示符”程序,在提示符窗口中输入:“tasklist”命令(图一),这样就显示本机的所有进程。本机的显示结果由五部分组成:图像名(进程名)、PID、会话名、会话#、内存使用。
2、 查看远程系统的进程
在命令提示符下输入(图二):
“tasklist /s 218.22.123.26 /u jtdd /p 12345678”(不包括引号)
其中/s参数后的“218.22.123.26”指要查看的远程系统的IP地址,/u后的“jtdd”指tasklist命令使用的用户帐号,它是远程系统上的一个合法帐号,/p后的“12345678”指jtdd帐号的密码,。
这样,通过上面的命令,我们就可以查看到远程系统的进程了。
小提示:使用tasklist命令查看远程系统的进程时,需要远程机器的RPC 服务器的支持,否则,该命令就不能正常使用。
3、 查看系统进程提供的服务
tasklist命令不但可以查看系统进程,而且还可以查看每个进程提供的服务。
如查看本机的进程“SVCHOST.EXE”提供的服务,在命令提示符下输入:
“tasklist /svc”命令即可(图三),你会惊奇的发现,有四个“SVCHOST.EXE”进程,原来有二十几项服务使用这个进程,对于远程系统来说,查看系统服务也很简单,使用” tasklist /s 218.22.123.26 /u jtdd /p 12345678 /svc”命令,就可以查看IP地址为“218.22.123.26”的远程系统进程所提供的服务。
4、 查看调用DLL模块文件的进程列表
例如,我们要查看本地系统中哪些进程调用了“shell32.dll” DLL模块文件。
(图四)在命令提示符下输入:
tasklist /m shell32.dll
这时系统将显示调用进程列表。
5、 使用筛选器查找指定的进程
在命令提示符下输入:
“TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running“
这样就列出了系统中正在运行的非“SYSTEM“状态的所有进程(图五)。
其中“/FI“为筛选器参数,” ne“和”eq“为关系运算符”不相等“和”相等“。
补充:
谈到“Tasklist”命令,我们就不得不提它得孪生兄弟“taskkill”命令,顾名思义,它是用来杀死进程的。
如要杀死本机的“notepad.exe”进程。
首先,使用Tasklist查找它的PID,系统显示本机“notepad.exe”进程的PID值为“1132“,然后运行“taskkill /pid 1132”即可,或则运行” taskkill /IM notepad.exe“也可,
其中” /pid “参数后面跟要终止进程的PID值,“/IM“参数后面为进程的图像名。
“Tasklist”命令的用法还有很多,由于篇幅关系,就不详细介绍了,有兴趣的朋友可以参考有关技术资料,进行深入研究。
[[i] 本帖最后由 lixing 于 2006-11-19 21:20 编辑 [/i]]
巧用Regsvr32命令
Regsvr32.exe”命令你熟悉吗?可能你很少用!它是用来对未注册的“ActiveX控件”进行注册的,外来ActiveX控件要应用到自己的程序中也必须使用它注册,ActiveX技术是微软于1996年推出,得到了许多软件公司的支持,虽然现在安装软件时都是自动进行注册,但有时手工注册还是有必要的,那么就先介绍Regsvr32命令的使用。Regsvr32命令格式:
Regsvr32 [/u] [/s] [/n] [/I[:cmdline]] dllname(或OCX控件)
/u 卸载ActiveX控件
/s 注册成功后不显示操作成功信息框
/c 控制台输出
/I 调用DllInstall安装函数并将可选的参数[cmdline]传给它,当使用 /u时调用卸载函数
/n 不调用 DllRegisterServer,该参数必须和 /I 一起使用
举个例子,在C盘根目录下有个"rtj.dll"控件需要手工注册,我们只要单击“开始-->运行”,在运行对话框输入“Regsvr32 c:\rtj.dll",然后单击”确定“,这时弹出“DllRegisterServer in rtj.dll succeeded”对话框,说明注册成功,如果卸载此控件,在运行对话框中输入“Regsvr32 /u c:\rtj.dll"即可。
在使用Regsvr32命令进行注册与卸载控件的同时,你是否发现?还能获得异想不到的效果,下面我们就一起看看!
一、使用Regsvr32命令修复Internet Explorer(简称IE)
很多朋友在上网时,发现IE不能打开新的窗口,用”鼠标左键“点击超链接没有任何反应,用鼠标右键点击超链接,在弹出的菜单中选择“在新窗口打开”也没有任何反应,咳!我的IE又坏了,重新安装吧,其实没这个必要,重装太麻烦了,我们可以使用Regsvr32命令来修复呀!
1、单击“开始-->运行”,在“运行”窗口中,输入“regsvr32 actxprxy.dll”,然后“确定”,接着会出现一个信息对话框“DllRegisterServer in actxprxy.dll succeeded”,再次点击“确定”。
2、再次打开“运行”窗口,输入“regsvr32 shdocvw.dll”,单击“确定”。
3、重新启动Windows系统,运行IE,你会惊奇的发现,问题解决了。
二、使用Regsvr32命令卸载Win XP自带ZIP功能
大家都知道微软推出的新一代客户操作系统Win XP功能很强大,但有些功能却不敢恭维,比如Win XP自带ZIP功能,占用了很多系统资源,对我们来说,简直是鸡肋,还不如安装第三方解压缩软件,我们可以使用Regsvr32命令卸载这个功能。
点击”开始→运行“,在运行对话框中输入”regsvr32 /u zipfldr.dll“,单击”确定“后,弹出卸载成功信息框,就完成卸载ZIP功能,恢复ZIP功能,输入”regsvr32 zipfldr.dll“即可。
三、使用Regsvr32命令禁用FSO对象防范脚本病毒
现在的脚本病毒很是厉害,嵌在网页中,上网时,不知不觉你的机器就会感染上病毒了,只要你了解病毒传播的机制,还是有办法把它的危害降到最低,很多脚本病毒的复制、传播都离不开”FSO对象“(FileSystemObject),因此禁用“FileSystemObject”就能有效地控制脚本病毒的传播。
单击“开始-->运行”,在“运行”窗口中,输入”regsvr32 /u scrrun.dll",就可以禁用FSO对象,需要使用FSO对象时,输入“regsvr32 scrrun.dll ”即可。 学习了:)
回复 #1 garnett_wu 的帖子
谢谢楼主分享。 windows下好多DLL文件。都不知道哪个是用来做什么的``` 其实可以简单的分析svchost是否有问题。。。因为svchost正常情况存在于%windir%\system32底下,只要不是这个目录底下一般都会有问题。。
这样,只要通过工具看进程中的SVCHOST的路径就可以了啊 每天都来学一点。谢谢楼主分享。
WINLOGON,LSASS,SMSS系列木马专杀工具
[url=http://hzqedison.mm9mm.com/virus/MiscKiller.exe]http://hzqedison.mm9mm.com/virus/MiscKiller.exe[/url]回复 #1 garnett_wu 的帖子
从图3看LZ应该是关闭了DcomLaunch,TermService:funk: :) 呵呵
全是精点啊,先学习学习 每天都来学一点
不过第一次关这个进程就关机了 可惜Home版不支持 请教:那么其它文件的暂缺不会有问题吧? 从新手学起,收藏先。 3Q! 太感谢了 [url]http://www.netexpert.cn/?fromuser=angelyd[/url] 不错哦。。。。写的很好。。。 从新手学起,收藏先。 谢谢,谢谢,楼主啊! 受教了,好东西啊 好好呀 就是从基础学起!! 好贴 谢谢楼主 学习了!! 学习了 高啊~~~~
哪里学来的
能不能教教我:handshake
[email]wqr881@163.com[/email] 看起来有点难啊.!!!!!!!!!!!! 学习了
页:
[1]