广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5036 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
skinheadon
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x6
分享: 转寄此文章 Facebook Plurk Twitter 版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[心得分享] 恼人的DLL后门完全清除秘诀
前言

  后门!相信这个词语对您来说一定不会陌生,它的危害不然而欲,但随着人们的安全意识逐步增强,又加上杀毒软体的"大力支持",使传统的后门无法在隐藏自己,任何稍微有点电脑知识的人,都知道"查埠""看进程",以便发现一些"蛛丝马迹"。所以,后门的编写者及时调整了思路,把目光放到了动态链结程式库上,也就是说,把后门做成DLL档,然后由某一个EXE做为载体,或者使用Rundll32.exe来启动,这样就不会有进程,不开埠等特点,也就实现了进程、埠的隐藏。本文以"DLL的原理""DLL的清除""DLL的防范"为主题,并展开论述,旨在能让大家对DLL后门"快速上手",不在恐惧DLL后门。好了,进入我们的主题。


一,DLL的原理

1,动态链结程式库

  动态链结程式库,全称:Dynamic Link Library,简称:DLL,作用在于为应用程式提供扩展功能。应用程式想要调用DLL档,需要跟其进行"动态链结";从编程的角度,应用程式需要知道DLL档导出的API函数方可调用。由此可见,DLL档本身并不可以运行,需要应用程式调用。正因为DLL档运行时必须插入到应用程式的记忆体模组当中,这就说明了:DLL档无法删除。这是由于Windows内部机制造成的:正在运行的程式不能关闭。所以,DLL后门由此而生!

2,DLL后门原理及特点

  把一个实现了后门功能的代码写成一个DLL档,然后插入到一个EXE档当中,使其可以执行,这样就不需要占用进程,也就没有相对应的PID号,也就可以在任务管理器中隐藏。DLL档本身和EXE档相差不大,但必须使用程式(EXE)调用才能执行DLL档。DLL档的执行,需要EXE档载入,但EXE想要载入DLL档,需要知道一个DLL档的入口函数(既DLL档的导出函数),所以,根据DLL档的编写标准:EXE必须执行DLL档中的DLLMain()作为载入的条件(如同EXE的mian())。做DLL后门基本分为两种:1)把所有功能都在DLL档中实现;2)把DLL做成一个启动档,在需要的时候启动一个普通的EXE后门。

常见的编写方法:

(1),只有一个DLL档

  这类后门很简单,只把自己做成一个DLL档,在注册表Run键值或其他可以被系统自动载入的地方,使用Rundll32.exe来自动启动。Rundll32.exe是什么?顾名思意,"执行32位的DLL档"。它的作用是执行DLL档中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL档。当然,这些Rundll32.exe执行的DLL档是什么,我们都可以从系统自动载入的地方找到。

  现在,我来介绍一下Rundll32.exe这个档,意思上边已经说过,功能就是以命令行的方式调用动态链结程式库。系统中还有一个Rundll.exe文件,他的意思是"执行16位的DLL档",这里要注意一下。在来看看Rundll32.exe使用的函数原型:
Void CALLBACK FunctionName (
HWND hwnd,
HINSTANCE hinst,
LPTSTR lpCmdLine,
Int nCmdShow
);

  其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
DLLname为需要执行的DLL档案名;Functionname为前边需要执行的DLL档的具体引出函数;[Arguments]为引出函数的具体参数。

(2),替换系统中的DLL档

  这类后门就比上边的先进了一些,它把实现了后门功能的代码做成一个和系统匹配的DLL档,并把原来的DLL文件改名。遇到应用程式请求原来的DLL档时, DLL后门就启一个转发的作用,把"参数"传递给原来的DLL档;如果遇到特殊的请求时(比如用户端),DLL后门就开始,启动并运行了。对于这类后门,把所有操作都在DLL档中实现最为安全,但需要的编程知识也非常多,也非常不容易编写。所以,这类后门一般都是把DLL档做成一个"启动"档,在遇到特殊的情况下(比如用户端的请求),就启动一个普通的EXE后门;在用户端结束连接之后,把EXE后门停止,然后DLL档进入"休息"状态,在下次用户端连接之前,都不会启动。但随着微软的"数字签名"和"档恢复"的功能出台,这种后门已经逐步衰落。

提示:
  在WINNT/system32目录下,有一个dllcache档夹,里边存放着众多DLL档(也包括一些重要的EXE档),在DLL档被非法修改之后,系统就从这里来恢复被修改的DLL档。如果要修改某个DLL档,首先应该把dllcache目录下的同名DLL档删除或更名,否则系统会自动恢复。

(3),动态嵌入式

  这才是DLL后门最常用的方法。其意义是将DLL档嵌入到正在运行的系统进程当中。在Windows系统中,每个进程都有自己的私有记忆体空间,但还是有种种方法来进入其进程的私有记忆体空间,来实现动态嵌入式。由于系统的关键进程是不能终止的,所以这类后门非常隐蔽,查杀也非常困难。常见的动态嵌入式有:"挂接API""全局钩子(HOOK)""远程线程"等。

  远端线程技术指的是通过在一个进程中创建远端线程的方法来进入那个进程的记忆体位址空间。当EXE载体(或Rundll32.exe)在那个被插入的进程里创建了远端线程,并命令它执行某个DLL档时,我们的DLL后门就挂上去执行了,这里不会产生新的进程,要想让DLL后门停止,只有让这个链结DLL后门的进程终止。但如果和某些系统的关键进程链结,那就不能终止了,如果你终止了系统进程,那Windows也随即被终止!!!

3,DLL后门的启动特性

  启动DLL后门的载体EXE是不可缺少的,也是非常重要的,它被称为:Loader。如果没有Loader,那我们的DLL后门如何启动呢?因此,一个好的DLL后门会尽力保护自己的Loader不被查杀。Loader的方式有很多,可以是为我们的DLL后门而专门编写的一个EXE档;也可以是系统自带的Rundll32.exe,即使停止了Rundll32.exe,DLL后门的主体还是存在的。3721网路实名就是一个例子,虽然它并不是"真正"的后门。

二,DLL的清除

  本节以三款比较有名的DLL后门例,分别为"SvchostDLL.dll""BITS.dll""QoServer.dll"。详细讲解其手工清除方法。希望大家在看过这三款DLL后门的清除方法之后,能够举一反三,灵活运用,在不惧怕DLL后门。其实,手工清除DLL后门还是比较简单的,无非就是在注册表中做文章。具体怎么做,请看下文。

1,PortLess BackDoor

  这是一款功能非常强大的DLL后门程式,除了可以获得Local System许可权的Shell之外,还支持如"检测克隆帐户""安装终端服务"等一系列功能(具体可以参见程式帮助),适用Windows2000/xp/2003等系统。程式使用svchost.exe来启动,平常不开埠,可以进行反向连接(最大的特点哦),对于有防火墙的主机来说,这个功能在好不过了。

  在介绍清除方法之前,我们先来简单的介绍一下svchost.exe这个系统的关键服务:
Svchost只是做为服务的宿主,本身并不实现什么功能,如果需要使用Svchost来启动服务,则某个服务是以DLL形式实现的,该DLL的载体Loader指向svchost,所以,在启动服务的时候由svchost调用该服务的DLL来实现启动的目的。使用svchost启动某个服务的DLL档是由注册表中的参数来决定的,在需要启动服务的下边都有一个Parameters子键,其中的ServiceDll表明该服务由哪个DLL档负责,并且这个DLL档必须导出一个ServiceMain()函数,为处理服务任务提供支援。

  呵呵!看了上边的理论,是不是有点蒙(我都快睡着了),别着急,我们来看看具体的内容(如图1)。从图1中,我们可以看到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/RpcSs下的Parameters子键,其键值为%SystemRoot%/system32/rpcss.dll。这就说明:启动RpcSs服务时。Svchost调用WINNT/system32目录下的rpcss.dll。

在来看看图2,这是注册表的HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost,里边存放着Svchost启动的组和组内的各个服务,其中netsvcs组的服务最多。要使用Svchost启动某个服务,则该服务名就会出现在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost下。这里有四种方法来实现:
1, 添加一个新的组,在组里添加服务名
2, 在现有组里添加服务名
3, 直接使用现有组里的一个服务名,但是本机没有安装的服务
4, 修改现有组里的现有服务,把它的ServiceDll指向自己的DLL后门

我测试的PortLess BackDoor使用的第三种方法。
好了,我想大家看完了上边的原理,一定可以想到我们清除PortLess BackDoor的方法了,对,就是在注册表的Svchost键下做文章。好,我们现在开始。

注:由于本文只是介绍清除方法,使用方法在此略过。

  后门的Loader把SvchostDLL.dll插入Svchost进程当中,所以,我们先打开Windows优化大师中的Windows进程管理2.5,查看Svchost进程中的模组资讯(如图3),从图3中我们可以看到,SvchostDLL.dll已经插入到Svchost进程中了,在根据"直接使用现有组里的一个服务名,但是本机没有安装的服务"的提示,我们可以断定,在"管理工具"—"服务"中会有一项新的服务。图4证明了我的说法,此服务名称为:IPRIP,由Svchost启动,-k netsvcs表示此服务包含在netsvcs服务组中。

  我们把该服务停掉,然后打开注册表编辑器(开始—运行--regedit),来到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/IPRIP下,查看其Parameters子键(如图5)。Program键的键值SvcHostDLL.exe为后门的Loader;ServiceDll的键值C:/WINNT/system32/svchostdll.dll为调用的DLL文件,这正是后门的DLL文件。现在我们删除IPRIP子键(或者用SC来删除),然后在来到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost下,编辑netsvcs服务组,把49 00 70 00 72 00 69 00 70 00 00 00删除,这里对应的就是IPRIP的服务名,具体如图6所示。然后退出,重启。重启之后删除WINNT/system32目录下的后门档即可。

2,BITS.dll

  这是榕哥的作品,也是DLL后门,和SvchostDLL.dll原理基本一样,不过这里使用的是上边介绍的第四种方法,即"修改现有组里的现有服务,把它的ServiceDll指向自己的DLL后门"。换句话说,该后门修改现有的某一个服务,把其原有服务的DLL指向自己(也就是BITS.dll),这样就达到了自动载入的目的;其次,该后门没有自己的Loader,而是使用系统自带的Rundll32.exe来载入。我们还是用Windows 进程管理2.5来查看,从图7中,我们可以看到bits.dll已经插入到Svchost进程当中。

  好,现在我们来看看具体的清除方法,由于该后门是修改现有服务,而我们并不知道具体是修改了哪个服务,所以,在注册表中搜索bits.dll,最后在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/RasAuto下搜索到了bits.dll,查看Parameters子键下的ServiceDll,其键值为C:/WINNT/system32/bits.dll(如图8)。原来,该后门把RasAuto服务原来的DLL档替换为bits.dll了,这样来实现自动载入。知道了原因就好办了,现在我们把ServiceDll的键值修改为RasAuto服务原有的DLL档,即%SystemRoot%/System32/rasauto.dll,退出,重启。之后删除WINNT/system32目录下的bits.dll即可。

3,NOIR--QUEEN

  NOIR--QUEEN(守护者)是一个DLL后门&木马程式,服务端以DLL档的形式插入到系统的Lsass.exe进程里,由于Lsass.exe是系统的关键进程,所以不能终止。在来介绍清除方法之前,我先介绍一下Lsass.exe进程:
这是一个本地的安全授权服务,并且它会为使用Winlogon服务的授权用户生成一个进程,如果授权是成功的,Lsass就会产生用户的进入权杖,权杖使用启动初始 的Shell。其他的由用户初始化的进程会继承这个权杖。
从上边的介绍我们就可以看出Lsass对系统的重要性,那具体怎么清除呢?请看下文。
  后门在安装成功后,会在服务中添加一个名为QoSserver的服务,并把QoSserver.dll后门档插入到Lsass进程当中,使其可以隐藏进程并自动启动(如图9)。现在我们打开注册表,来到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/QoSserver,直接删除QoSserver键,然后重启。重启之后,我们在来到服务列表中,会看到QoSserver服务还在,但没有启动,类别是自动,我们把他修改为"已禁用";然后往上看,会发现一个服务名为AppCPI的服务,其可执行程式指向QoSserver.exe(原因后边我会说到),具体如图11所示。我们再次打开注册表,来到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AppCPI,删除AppCPI键,重启,再删除QoSserver,最后删除WINNT/system32目录下的后门档。

  本人和这个后门"搏斗"了3个多小时,重启N次。原因在于即使删除了QoSserver服务,后门还是在运行,而且服务列表中的QoSserver服务又"死灰复燃"。后来才知道原因:在我删除了QoSserver服务并重启之后,插入到Lsass进程当中的QoSserver.dll档又恢复了QoSserver服务,并且生成了另外一个服务,即AppCPI,所以我们必须在到注册表中删除AppCPI服务才算是把该后门清除。由此可以看出,现在的后门的保护措施,真是一环扣环。

注意:在删除QoSserver服务并重启之后,恢复的QoSserver的启动类别要修改为"已禁用",否则即便删除了AppCPI服务,QoSserver服务又运行了。

三,DLL的防范

  看了上边的例子,我想大家对清除DLL后门的方法有了一定的了解,但在现实中,DLL后门并不会使用默认的档案名,所以你也就不能肯定是否中了DLL后门。对于DLL后门,system32目录下是个好地方,大多数后门也是如此,所以这里要非常注意。下面我来具体介绍一下怎么发现DLL后门,希望对大家有所帮助。

1,安装好系统和所有的应用程式之后,备份system32目录下的EXE和DLL档:打开CMD,来到WINNT/system32目录下,执行:dir *.exe>exe.txt & dir *.dll>dll.txt,这样,就会把所有的EXE和DLL档备份到exe.txt和dll.txt文件中;日后,如发现异常,可以使用相同的命令再次备份EXE和DLL档(这里我们假设是exe0.txt和dll0.txt),并使用:fc exe.txt exe0.txt>exedll.txt & fc dll.txt dll0.txt>exedll.txt,其意思为使用FC命令比较两次的EXE档和DLL文件,并将比较结果保存到exedll.txt文件中。通过这种方法,我们就可以发现多出来的EXE和DLL档,并通过档大小,创建时间来判断是否是DLL后门。

2,使用记忆体/模组工具来查看进程调用的DLL档,比托鞑?250ows优化大师中的Windows 进程管理 2.5。这样,可以发现进程到底调用了什么DLL档,在结合上边用FC命令比较出来的结果,又能进一步来确定是否中了DLL后门。如果没有优化大师,可以使用TaskList,这个小工具也可以显示进程调用的DLL档,而且还有源代码,方便修改。

3,普通后门连接需要打开特定的埠,DLL后门也不例外,不管它怎么隐藏,连接的时候都需要打开埠。我们可以用netstat -an来查看所有TCP/UDP埠的连接,以发现非法连接。大家平时要对自己打开的埠心中有数,并对netstat -an中的state属性有所了解。当然,也可以使用Fport来显示埠对应的进程,这样,系统有什么不明的连接和埠,都可以尽收眼底。

4,定期检查系统自动载入的地方,比如:注册表,Winstart.bat,Autoexec.bat,win.ini,system.ini,wininit.ini,Autorun.inf,Config.sys等。其次是对服务进行管理,对系统默认的服务要有所了解,在发现有问题的服务时,可以使用Windows 2000 Server Resource Kit中的SC来删除。以上这些地方都可以用来载入DLL后门的Loader,如果我们把DLL后门Loader删除了,试问?DLL后门还怎么运行?!

通过使用上边的方法,我想大多数DLL后门都可以"现形",如果我们平时多做一些备份,那对查找DLL后门会启到事半功倍的效果


[ 此文章被upside在2006-10-17 16:18重新编辑 ]

此文章被评分,最近评分记录
财富:50 (by upside) | 理由: 感谢您的参与 让本板区能更加丰富 若能增加出处连结 再加图片解说 就会更加完整了



献花 x1 回到顶端 [楼 主] From:台湾 和信超媒体宽带网 | Posted:2006-10-17 11:36 |
lens690 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x51
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

请问,PortLess BackDoor 的图一及图二在哪?

另外,在(2),替换系统中的DLL档提到,若要修改DLL,必需先将system32\dllcache中的修改掉,
那之前我在碰上这类的DLL时,我是使用别台电脑去替换这颗硬碟中的这个档案,这样子,还需要对dllcache中的档案做置换吗?



确保电脑安全,勿点选不明档案或网址
献花 x0 回到顶端 [1 楼] From:局域网对方和您在同一内部网 | Posted:2006-10-17 12:34 |
netgrand
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x2
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

确实解说的非常详细,希望真的可以解决我的问题。谢谢!


献花 x0 回到顶端 [2 楼] From:台湾数位联合 | Posted:2006-10-17 12:37 |
cjwu
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x68
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

这一篇文章,我好像曾经在一个大陆的网站看过,
当然也是如大大所贴的,
并没有看到什么图1 或图2 或图3 等等的,
而且除了了解如何清除后门,
我会比较想要了解如何自已制做一个dll档。


==================================
好站推荐 [url] http://vions.net/?fromuid=43941[/url]

^_^
献花 x0 回到顶端 [3 楼] From:台湾台湾固网 | Posted:2006-10-17 15:17 |
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

后门!相信这个词语对您来说一定不会陌生,它的危害不然而欲,但随着人们的安全意识逐步增强,又加上杀毒软体的"大力支持",使传统的后门无法在隐藏自己,任何稍微有点电脑知识的人,都知道"查埠""看进程",以便发现一些"蛛丝马迹"。所以,后门的编写者及时调整了思路,把目光放到了动态链结程式库上,也就是说,把后门做成DLL档,然后由某一个EXE做为载体,或者使用Rundll32.exe来启动,这样就不会有进程,不开埠等特点,也就实现了进程、埠的隐藏。本文以"DLL的原理""DLL的清除""DLL的防范"为主题,并展开论述,旨在能让大家对DLL后门"快速上手",不再恐惧DLL后门。好了,进入我们的主题。

一,DLL的原理
  1,动态链结程式库
  动态链结程式库,全称:Dynamic Link Library,简称:DLL,作用在于为应用程式提供扩展功能。应用程式想要调用DLL档,需要跟其进行"动态链结";从编程的角度,应用程式需要知道DLL档导出的API函数方可调用。由此可见,DLL档本身并不可以运行,需要应用程式调用。正因为DLL档运行时必须插入到应用程式的记忆体模组当中,这就说明了:DLL档无法删除。这是由于Windows内部机制造成的:正在运行的程式不能关闭。所以,DLL后门由此而生!

  2,DLL后门原理及特点
  把一个实现了后门功能的代码写成一个DLL档,然后插入到一个EXE档当中,使其可以执行,这样就不需要占用进程,也就没有相对应的PID号,也就可以在任务管理器中隐藏。DLL档本身和EXE档相差不大,但必须使用程式(EXE)调用才能执行DLL档。DLL档的执行,需要EXE档载入,但EXE想要载入DLL档,需要知道一个DLL档的入口函数(既DLL档的导出函数),所以,根据DLL档的编写标准:EXE必须执行DLL档中的DLLMain()作为载入的条件(如同EXE的mian())。做DLL后门基本分为两种:1)把所有功能都在DLL档中实现;2)把DLL做成一个启动档,在需要的时候启动一个普通的EXE后门。
  常见的编写方法:
  (1),只有一个DLL档
  这类后门很简单,只把自己做成一个DLL档,在注册表Run键值或其他可以被系统自动载入的地方,使用Rundll32.exe来自动启动。Rundll32.exe是什么?顾名思意,"执行32位的DLL档"。它的作用是执行DLL档中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL档。当然,这些Rundll32.exe执行的DLL档是什么,我们都可以从系统自动载入的地方找到。

现在,我来介绍一下Rundll32.exe这个档,意思上边已经说过,功能就是以命令行的方式调用动态链结程式库。系统中还有一个Rundll.exe档,他的意思是"执行16位的DLL档",这里要注意一下。在来看看Rundll32.exe使用的函数原型:
Void CALLBACK FunctionName (
HWND hwnd,
HINSTANCE hinst,
LPTSTR lpCmdLine,
Int nCmdShow
);
  其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
  DLLname为需要执行的DLL档案名;Functionname为前边需要执行的DLL档的具体引出函数;[Arguments]为引出函数的具体参数。
  (2),替换系统中的DLL档
  这类后门就比上边的先进了一些,它把实现了后门功能的代码做成一个和系统匹配的DLL档,并把原来的DLL文件改名。遇到应用程式请求原来的DLL档时, DLL后门就启一个转发的作用,把"参数"传递给原来的DLL档;如果遇到特殊的请求时(比如用户端),DLL后门就开始,启动并运行了。对于这类后门,把所有操作都在DLL档中实现最为安全,但需要的编程知识也非常多,也非常不容易编写。所以,这类后门一般都是把DLL档做成一个"启动"档,在遇到特殊的情况下(比如用户端的请求),就启动一个普通的EXE后门;在用户端结束连接之后,把EXE后门停止,然后DLL档进入"休息"状态,在下次用户端连接之前,都不会启动。但随着微软的"数位签名"和"档恢复"的功能出台,这种后门已经逐步衰落。

系统保护只用两三招 病毒木马不上门
网友世界 【转载】 作者:胖猫

同在一个宿舍中,共用同一条宽带,木瓜的电脑总是感染一些木马病毒或是流氓软体,而我的电脑上却是“一尘不染”。这样在木瓜每次气急败坏的重装系统时,就会说我没义气。听到兄弟这么说,我还真是感觉有些冤枉,其实保护系统的方法不过就这两三招,还是统统都传授给他吧!
一、赤手空拳防木马
  木瓜的Windows XP系统可称得上是一个“毒窝”了,不仅有木马程式“潜伏”,各类恶意插件也在其中死缠烂打。而造成这种情况的主要原因就是给予了登录帐户和上网者过多的使用权限,使木马和插件能够堂而皇之的出入系统。所以,要想有效的加强系统安全,就要在帐户许可权上加以限制。
  步骤一:建立受限帐户
  打开“运行”对话方块,在其中输入命令“net user xiaoyao 123456 /add”,回车执行后,即可在系统中添加一个名为“xiaoyao”的新帐户,密码为“123456”。
  用“net user”命令添加的新帐户,其默认许可权为“USERS组”,所以只能运行许可的程式,而不能随意添加删除程式和修改系统设置,这样便可避免大部分的木马程式和恶意网页的破坏。
  步骤二:金蚕脱壳 加固IE
  恶意网页是系统感染木马病毒及流氓插件的最主要途径,因此很有必要对IE作一些保护设置。
  1.建壳
  删除桌面上的IE图示,打开“C:\Program Files\Internet Explorer”文件夹,右键点击“Iexplore.exe”程式,选择“发送到”→“桌面快捷方式”命令,在桌面上创建一个新的IE快捷图示。接着回到桌面,右键点击新建的IE图示,选择“属性”命令,在弹出视窗中,切换到“快捷方式”选项卡,点击“高级”按钮,勾选“以其他用户身份运行”选项(如图1),确定后关闭对话方块。


图1

  2.脱壳
  现在以管理员帐户或其他非“xiaoyao”帐户登录Windows XP系统后,双击桌面上的IE快捷方式时,就会弹出一个运行身份对话方块,在其中输入之前新建的帐户名“xiaoyao”及密码,确定后便可进行正常上网操作(如图2)。


图2

接下来,我们试试IE是否还能受到恶意插件的骚扰。进入“baidu.com...”,点击百度页面中的“把百度设为首页”按钮,修改IE的主页。然后点击页面中的“更多”→“搜霸”链结,下载“百度搜霸”。当下载完毕后,该插件将自动运行安装程式,此时会看到它弹出了一个身份认证对话方块,默认是以“xiaoyao”身份进行安装的(如图3)。


图3

  在安装完成后,以“xiaoyao”帐户身份再次运行IE时,将会发现首页已变成了百度。以非“xiaoyao”帐户运行IE时,可看到IE首页没有任何改变。而之前安装的百度搜霸,则无论以什么帐户运行IE,都不会见到它的踪影!
  此时我们是以“xiaoyao”这个USERS组的帐户,来进行上网操作的。由于“xiaoyao”帐户在当前并未登陆,所以百度搜霸根本无法安装并载入到IE中,网页也仅能对“xiaoyao”帐户的IE首页进行修改。也就是说,以“xiaoyao”帐户身份运行IE后,流览到的恶意网页只能对“xiaoyao”帐户的IE设置进行修改,而恶意网页中的流氓软体或木马间谍运行后,根本就无法对当前帐户和系统产生任何影响。

  3.换壳
  如果“xiaoyao”帐户的IE设置被更改或破坏,那么可在“运行”对话方块中执行“net user xiaoyao /delete”命令,来删除“xiaoyao”帐号。之后,再次执行创建帐户命令,新建一个名为“xiaoyao”的帐户,即可使IE“完好如初”。
  步骤三:加固系统
  通过网页流览感染系统,只是木马病毒和流氓插件的一种途径。如果不小心以当前帐户身份运行了木马病毒程式,系统还是会被破坏。只是这类破坏“迹象”都较明显,不像恶意网页在后台进行“暗箱操作”,因此我们可提前阻止它们。
  1.禁止程式启动
  很多木马病毒都是通过注册表载入启动的,因此可通过许可权设置,禁止病毒和木马对注册表的启动项进行修改。
  启动注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run”分支,在“Run”分支上点击右键,选择“许可权”命令,将当前帐户对该分支的“读取”许可权设置为“允许”,并取消对“完全控制”许可权的选择(如图4)。使用同样方法设置以下注册表启动键的许可权:
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunEx
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Policies\ Explorer\Run
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunServices
在“HKEY_CURRENT_USER”下,也有相同的多个注册表启动项需要设置许可权。


图4

2.禁止服务启动
  一些高级的木马病毒会通过系统服务进行载入,对此可禁止木马病毒启动服务的许可权。
  可依次展开“HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\ Services”分支,将当前帐户的“读取”许可权设置为“允许”,同时取消其“完全控制”许可权。
  3.系统安全设置
  最厉害的木马病毒会采用DLL注入方式,或者抢先系统启动运行,对此可在注册表中限制其启动许可权。
  设置的方法同上,需设置许可权的注册表项有以下分支:
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\UserInit
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\Shell
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\GinaDll
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\System
HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Policies\

  4.保护档关联
  有些狡猾的木马,还会通过更改系统档关联,达到启动运行目的。对此可展开“HKEY_CLASSES_ ROOT”分支,将其下的“.exe”、.“com”、“.cmd”、“.BAT”、“.VBS”等项目设置许可权,操作方法同上。
  使用设置了注册表许可权的帐户登录系统后,是无法安装软体或进行重要系统更改设置的。如要安装软体,可更换为管理员帐户登录系统,并进行正常的安装操作。
二、另类“还原精灵”保系统

  对于木瓜这种超级懒惰的人来说,使用手动设置来保护系统显得太过繁琐了,所以最好还是给他一款软体来达到自动保护系统的目的。而他提出使用“还原精灵”之类的软体,真是太耗费系统资源了,搞不好还会把硬碟锁死了,这里我有更高级的“秘密武器”。

1.IE从此无忧’
  安装这款名为“Sandboxie”的软体后,它会随系统自动运行,利用软体的沙盘功能,即可保护系统不受任何病毒和插件的侵袭。
  右键点击桌面上的IE图示,在弹出功能表中选择“Run Sandboxed”命令,即可以沙盘保护方式运行IE(如图5)。此时流览任意恶意带毒的网站,系统都会经过“沙盘”的过滤保护,保证自身不会受到任何影响。即使木马病毒程式已下载到硬碟中,也会随着Sandboxie的关闭而自动消失。


图5

  如果要保存通过“沙盘”下载的档,可右键点击系统托盘区的沙盘图示,在弹出功能表中选择“从沙盘恢复档”命令。在打开的对话方块中,选择沙盘中暂存的档,点击“恢复到同一档夹”按钮,即可将档保存到硬碟中了(如图6)。


图6

  2.告别木马病毒
  下载了好多软体要安装,但不能确定其中是否夹带着流氓插件或木马,这时可使用右键点击程式档,通过“Run Sandboxed”命令运行安装,此时程式对系统所作的修改都会被沙盘拦截保护,在关闭沙盘后安装的木马病毒也将随之消失。
  如果在沙盘中安装运行后,确认程式是安全的,那么就可再次以正常方式安装运行程式了。

三、程式许可权轻松设
  虽然限制用户许可权保护系统安全的方法很好用,但对于木瓜这种经常安装卸载软体的用户来说,不时弹出的“许可权不够”提示便显得太过“烦人”了,这里就在给出一个两全其美的方法。
  安装名为“DropMyRights”的软体,用这个软体启动其他程式,这样启动的程式就只具有基本的许可权,无法对系统产生破坏了。方法很简单,以IE为例。
  右键点击桌面IE快捷图示,选择“属性”→“快捷方式”,在“目标”位置中输入如下命令(如图7):
"C:\程式安装目录\DropMy Rights.exe" "C:\Program Files\Internet Explorer\Iexplore.exe" N
程式后面的参数“N”,代表以普通用户许可权运行程式。确定后关闭对话方块,双击该快捷方式就能以指定的身份启动IE流览器,以后流览到恶意网页也不用担心系统会遭到破坏了,所达到的效果与前面提到的“金蚕脱壳”法差不多(如图8)。


图7


图8


爸爸 你一路好走
献花 x0 回到顶端 [4 楼] From:台湾 和信超媒体宽带网 | Posted:2006-10-17 16:13 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.021797 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言