QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

Svchost进程揭秘

Svchost进程揭秘

  在基于NT内核的Windows操作系统家族中,Svchost.exe是一个非常重要的进程。很多病毒、木马驻留系统与这个进程密切相关,因此深入了解该进程是非常有必要的。本文主要介绍Svchost进程的功能,以及与该进程相关的知识. c6 z, o& O2 V# P* `6 _
  Svchost进程概述
3 X' y6 z! Z' B! ~  微软对“Svchost进程”的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称。Svchost.exe文件位于“%SystemRoot%\System32”文件夹中。当系统启动时,Svchost将检查注册表中的服务部分,以构建需要加载的服务列表。Svchost的多个实例可以同时运行。每个Svchost会话可以包含一组服务,以便根据Svchost的启动方式和位置的不同运行不同的服务,这样可以更好地进行控制且更加便于调试。  o, b0 X  m4 d7 p
  Svchost组是由注册表[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost]项来识别的。在这个注册表项下的每个值都代表单独的Svchost组,并在我们查看活动进程时作为单独的实例显示。这里的键值均为REG_MULTI_SZ类型的值,并且包含该Svchost组里运行的服务名称(如图1)。
) v" B, ]! u2 w) G/ e# ?$ G( t8 \$ E2 _* c
! ?8 Q/ ~3 k$ K4 K- \7 r
, P4 V$ ^9 }7 G( V
  图1注册表中的Svchost
: ]8 I1 ~7 }. Z    实际上,Svchost只是作为服务的宿主,本身并不实现什么功能。如果需要使用Svchost来启动某个DLL形式实现的服务,该DLL的载体Loader指向Svchost,在启动服务的时候由Svchost调用该服务的DLL来实现启动的目的。使用Svchost启动某个服务的DLL文件是由注册表中的参数来决定的,在需要启动服务的注册表项下都有一个“Parameters”子项,其中的“ServiceDll”键值表明该服务由哪个DLL文件负责,并且这个DLL文件必须导出一个ServiceMain()函数,为处理服务任务提供支持。提示:不同版本的Windows系统,存在不同数量的Svchost进程。一般来说,Windows2000有两个Svchost进程,而WindowsXP则有四个或四个以上的Svchost进程。
+ G2 `. y& V. k! A! e; R9 G' H* t# O  Svchost进程实例讲解5 q+ l8 G& |7 P, Z7 C
  要想查看在Svchost中运行服务的列表,可以在WindowsXP命令提示符窗口中输入“Tasklist/svc”命令后,回车执行(如果使用的是Windows2000,可用SupportTools提供的Tlist工具查看,命令为“Tlist-s”)。Tasklist命令显示活动进程的列表,/svc命令开关指定显示每个进程中活动服务的列表。从图中可以看到,Svchost进程启动很多系统服务,如:RpcSs(RemoteProcedureCall)、Dhcp(DHCPClient)、Netman(NetworkConnections)服务等等(如图2)。
5 H: d! K$ h5 b0 O' Q# O/ v4 _9 n* o5 B5 x

9 E- V( k( _) C. O6 f( D* D( H% {

' X1 z) a7 w8 q; L1 L$ I  图2Svchost的服务列表  这里我们以RpcSs服务为例,来具体了解一下Svchost进程与服务的关系。运行Regedit,打开注册表编辑器,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\
$ Y7 J- n7 S. z4 g( r  CurrentControlSet\Services\RpcSs]分支,在“Parameters”子项中有个名为“ServiceDll”的键,其值为“%SystemRoot%\system32\rpcss.dll”。这表示系统启动RpcSs服务时,调用“%SystemRoot%\system32”目录下的Rpcss.dll动态链接库文件。
0 H6 j1 W! E' U" P  D' ^  接下来,从控制面板中依次双击“管理工具→服务”,打开服务控制台。在右侧窗格中双击“RemoteProcedureCall(RPC)”服务项,打开其属性对话框,可以看到RpcSs服务的可执行文件的路径为“C:\Windows\system32\svchost-krpcss”,这说明RpcSs服务是依靠Svchost启动的,“-krpcss”表示此服务包含在Svchost的Rpcss服务组中。
2 z- |4 t4 S+ [% w6 m( H! s- A) T. v+ g, v8 U' H5 g# z- a

% q6 I) w9 H% ^) y+ r
8 S9 P( t2 C$ S% v9 ]* E; _9 \  图3Svchost进程中的模块信息
: c4 J9 I- v, w# z    Svchost进程木马浅析* C4 ]0 k# Z- l( O  A: ~$ {3 J
  从前面的介绍我们已经知道,在注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Current-Version\Svchost]分支中,存放着Svchost启动的组和组内的各项服务,很多木马和病毒正是利用这一点来实现自动加载的。它们通常的方法有:
% Q; D- `$ ~  a+ \. u- y% J  ·添加一个新的组,在组里添加服务名;
3 T4 _- s! A3 C/ S2 M. l1 k' D  ·在现有的组里添加服务名或者利用现有组一个未安装的服务;
' M' L/ ^0 n6 ]5 O7 D; g/ ]5 d  ·修改现有组里的服务,将它的ServiceDll指向自己的DLL文件。. e, s( v5 G# A$ H& W, E% r
  例如PortLessBackDoor就是一款典型的利用Svchost进程加载的后门工具。那么对于像PortLessBackDoor这样的木马、病毒,该如何检测并清除呢?以WindowsXP为例,首先我们可以利用“进程间谍”这样的进程工具查看Svchost进程中的模块信息(如图3),并与之前的模块信息比较,可以发现Svchost进程中有一个可疑的DLL文件“SvchostDLL.dll”。同时,在“管理工具→服务”列表中会看到一项新的服务“IntranetServices”(显示名称),此服务名称为:Iprip,由Svchost启动,“-knetsvcs”表示此服务包含在Netsvcs服务组中。
  P6 n6 ]7 }4 g* d( C# K+ R: G  提示:在Windows2000中,系统的Iprip服务侦听由使用RoutingInformation协议版本1(RIPv1)的路由器发送的路由更新信息,在服务列表中显示的名称为“RIPListener”。
" @4 b3 j6 t7 H# i; w3 E  运行Regedit,打开注册表编辑器,展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\( T# z( v6 n& r3 c; S) v% P  W! p& c- O
  Services\IPRIP]分支,查看其“Parameters”子项,其中“ServiceDll”键值指向调用的DLL文件路径和全称,这正是后门的DLL文件。知道了这些,就可以动手清除了:在服务列表用右键单击“IntranetServices”服务,从菜单中选择“停止”,然后在上述注册表分支中删除“Iprip”项。重新启动计算机,再按照“ServiceDll”键值提示的位置删除后门程序主文件即可。最后需要提醒读者的是,对注册表进行修改前,应做好备份工作,以便出现错误时能够及时还原。
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

发新话题