通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 原创精华 >> 文章正文
推荐:透析Svchost进程清除后门
责任编辑:古典辣M°   更新日期:2005-11-30
 

网上有很多关于Svchost.exe的讨论,我们今天首先来看一下Svchost.exe的原理,工作方法,然后结合著名DLL木马,实战了解一下使用Svchost.exe进行启动的木马的清除,希望大家能够有所收获。
Svchost.exe是NT核心系统非常重要的文件,对于Windows 2000/XP来说,不可或缺。Svchost进程提供很多系统服务,如:logical disk manager、remote procedure call(RPC)、dhcp client、Automatic Updates、Background Intelligent Transfer Service、COM+ Event System、Internet Connection Sharing、Network Connections、Portable Media Serial Number Service、Remote Access Auto Connection Manager、Remote Access Connection Manager、Removable Storage、Routing and Remote Access、System Event Notification、Telephony、Wireless Configuration等等。
对于服务中使用Svchost.exe加载了哪些动态链接库,我们可以在服务中点击上面列出的某个服务来看看。比如我们要看Automatic Updates服务,就可以在在它上面点击鼠标右键,看它的属性。
同样情况下,如果读者还想进一步了解其它的那些服务是怎样使用Svchost.exe的,可以使用与上面相同的方法来观察一下。
聪明的读者一眼就可以看出,Svchost.exe对于系统来说是多么的重要了。也正是因为Svchost.exe的重要性,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的。那么应该如何判断到底哪个是病毒进程呢?正常的Svchost.exe文件应该存在于“C:\Windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。另外,黑客们为了使用Svchost.exe达到进程欺骗的目的,有可能使用一些迷惑性的名字,如将字母o变成数字0(零),这样程序的名称就变成了svch0st.exe了,如果不注意观察,很容易逃过普通用户的眼睛。
通常情况下,为了确定我们的计算机中正在运行的Svchost.exe是不是真正的系统的Svchost.exe,我们可以使用如下方法来查看。Svchost.exe文件的调用路径可以通过“计算机管理→系统工具→系统信息→软件环境→正在运行任务”来查看。
这里仅举一例来说明。假设Windows XP系统被“w32.welchia.worm”感染了。正常的Svchost文件存在于“c:\Windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\Windows\system32wins”目录中,通过使用上面说的方法就可很容易地查看到所有的Svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。
现在我们已经搞清楚了一部分疑问,但是,我们还不知道哪个服务调用了哪个动态链接库文件,是不是没有办法呢?如果没有地方可以找到,那么Windows自己又是如何知道调用哪一个呢?大家知道,Windows将所有的系统信息和应用程序信息都保存在了系统注册表中,所以,我们可以在注册表中找找看。
下面以Remote Procedure Call(RPC)服务为例,来看看Svchost进程是如何调用DLL文件的。在Windiws中,打开服务,然后打开“Remote Procedure Call(RPC)”属性对话框,可以看到Remote Procedure Call(RPC)服务的可执行文件的路径为“C:\WINNT\system32\Svchost -k rpcss”,这说明Remote Procedure Call(RPC)服务是依靠Svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。
在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\System\currentcontrolset\services\ rpcss”项。然后,再在里面找到类型为“reg_expand_sz”的“Imagepath”项,其键值为“%SystemRoot%\system32\Svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“ServiceDll”的键,其值为“%SystemRoot%\system32\rpcss.dll”,其中“rpcss.dll”就是Remote Procedure Call(RPC)服务要使用的动态链接库文件。这样Svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。
同样情况下,如果有程序试图蛮天过海,假借Svchost.exe来启动自己的动态链接库文件(如将木马作成动态链接库文件),那么我们就可以从这里找到DLL木马的路径,将它大白于天下。
如果要了解每个Svchost进程到底提供了多少系统服务,可以在Windows 2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是Windows 2000 support tools提供的。不过,在这里看到的效果跟服务里面看到的是一样的,只不过是DOS界面而已。

小知识:在Windows xp下则使用“tasklist /svc”命令会收到同样的效果。

由于篇幅的关系,不能对Svchost全部功能进行详细介绍,这是一个Windows中的一个特殊进程,有兴趣的可参考有关技术资料进一步去了解它。
下面,我们通过一个实例来看一下木马程序是如何利用Svchost.exe进行启动的。这里,我选择了PortLess BackDoor V1.2来做演示,这是一个使用Svchost.exe去启动,平时不开端口,可以进行反连接的后门程序(和小榕的BITS是同一类型的后门)。
为了看一下这个后门是如何利用Svchost.exe进行启动的,我们在运行软件之前,先给注册表做一个快照,这里我选择了Regshot 1.61e5 final版本,并将初始快照命名为1.hiv。然后我们将Portlessinst.exe和Svchostdll.dll(不要改名)上传到系统目录(%winnt%\system32目录中)。
接下来,进入命令行,使用“Portlessinst.exe -install ActiveString Password”进行安装,这里的ActiveString就是连接那系统打开的端口后输入的验证字符串,这里的密码是使用正向连接你连接上后门打开的端口时需要输入的密码。比如,我输入如下:
portlessinst.exe –install smiler wind_003
这样就安装上去了,我们来看一下注册表里的变化。将1.hiv装载进Regshot中的1st shot,然后对当前的注册表做2st shot的快照,然后使用compare进行比较,其比较的结果如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\PortLess\FdsnqbTsuni`: "tjnkbu"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\PortLess\Wfttphuc: "tofiXdo"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Security\Security: 01 00 14 80 A0 00 00 00 AC 00 00 00 14 00 00 00 30 00 00 00 02 00 1C 00 01 00 00 00 02 80 14 00 FF 01 0F 00 01 01 00 00 00 00 00 01 00 00 00 00 02 00 70 00 04 00 00 00 00 00 18 00 FD 01 02 00 01 01 00 00 00 00 00 05 12 00 00 00 63 00 6F 00 00 00 1C 00 FF 01 0F 00 01 02 00 00 00 00 00 05 20 00 00 00 20 02 00 00 6D 00 00 00 00 00 18 00 8D 01 02 00 01 01 00 00 00 00 00 05 0B 00 00 00 20 02 00 00 00 00 1C 00 FD 01 02 00 01 02 00 00 00 00 00 05 20 00 00 00 23 02 00 00 6D 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\ServiceDll: "C:\WINNT\system32\Svchostdll.dll"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\program: "SvchostDLL.exe"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters\Interactive: 0x00000000
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Type: 0x00000020
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Start: 0x00000002
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ErrorControl: 0x00000001
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ImagePath: "%SystemRoot%\System32\Svchost.exe -k netsvcs"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\DisplayName: "Intranet Services"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\ObjectName: "LocalSystem"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Security\Security: 01 00 14 80 A0 00 00 00 AC 00 00 00 14 00 00 00 30 00 00 00 02 00 1C 00 01 00 00 00 02 80 14 00 FF 01 0F 00 01 01 00 00 00 00 00 01 00 00 00 00 02 00 70 00 04 00 00 00 00 00 18 00 FD 01 02 00 01 01 00 00 00 00 00 05 12 00 00 00 63 00 6F 00 00 00 1C 00 FF 01 0F 00 01 02 00 00 00 00 00 05 20 00 00 00 20 02 00 00 6D 00 00 00 00 00 18 00 8D 01 02 00 01 01 00 00 00 00 00 05 0B 00 00 00 20 02 00 00 00 00 1C 00 FD 01 02 00 01 02 00 00 00 00 00 05 20 00 00 00 23 02 00 00 6D 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00 01 01 00 00 00 00 00 05 12 00 00 00
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\ServiceDll: "C:\WINNT\system32\Svchostdll.dll"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\program: "SvchostDLL.exe"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Parameters\Interactive: 0x00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Type: 0x00000020
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\Start: 0x00000002
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ErrorControl: 0x00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ImagePath: "%SystemRoot%\System32\Svchost.exe -k netsvcs"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\DisplayName: "Intranet Services"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPRIP\ObjectName: "LocalSystem"
可以看出,PortLess BackDoor V1.2将自己注册为了服务IPRIP,它使用的启动参数是"%SystemRoot%\System32\Svchost.exe -k netsvcs",它使用的DLL文件是"C:\WINNT\system32\Svchostdll.dll"。通过这里,我们就可以找到PortLess,将它使用的服务禁止掉,然后将对应的DLL文件删除,并将注册表中这些多出来的键值干掉,三下五除二就将Portless弄得一干二净!现在大家知道怎么清理掉用Svchost加载的后门了吧?!

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章REAL蛀虫利用播放器漏洞下载恶意程序
    普通文章李彦宏:中国要在互联网领域逐渐超越美国
    普通文章马云:阿里巴巴的成功是一个生态链的成功
    普通文章Ingres用户认证非授权访问漏洞
    普通文章TCPreen FD_SET()函数远程栈溢出漏洞
    普通文章Winace UUE文件解压堆溢出漏洞
    普通文章Pclxav木马猎手第一代特征码引擎源代码
    普通文章IE收藏夹管理小精灵算法分析
    普通文章Extra Drive Pro算法分析历程
    普通文章雨过天晴自我注册
    精彩专题