博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3200|回复: 5

除流氓软件的第一利器(IceSword)

[复制链接]
发表于 2007-10-3 20:24:40 | 显示全部楼层 |阅读模式
除流氓软件的第一利器(IceSword)2006-09-26 18:31    作者:网络安全日志(www.nslog.cn)
    日期:2006/9/26   ( 转载请保留此申明)

“工欲善其事,必先利其器”,今天先介绍清除流氓软件的工具第一利器IceSword。

IceSword,也称为冰刀或者冰刃,有些地址简称IS,是USTC的PJF(http://www.blogcn.com/user17/pjf/index.html)出品的一款系统诊断、清除利器。
下载地址:http://www.ttian.net/website/2005/0829/391.html

清除流氓软件工具无数,为什么称之为第一利器呢,有如下的理由:

1)你是不是经常有文件删不掉?如CNNIC或者3721的文件?
2)是不是经常有注册表不让你修改?如CNNIC的注册表是它自动保护起来的
3)是不是经常有进程杀不掉,提示“无法完成”?
4)是不是浏览器有N多的插件?
5)是不是有一些程序运行的时候隐藏了进程和端口?
6)  是不是有一些流氓软件的文件在资源管理器下看都看不到?

再看看作者给出的理由:(专业性强一点)

1、绝大多数所谓的进程工具都是利用Windows的Toolhlp32或psapi再或ZwQuerySystemInformation系统调用(前二者最终也用到此调用)来编写,随便一个ApiHook就可轻轻松松干掉它们,更不用说一些内核级后门了;极少数工具利用内核线程调度结构来查询进程,这种方案需要硬编码,不仅不同版本系统不同,打个补丁也可能需要升级程序,并且现在有人也提出过防止此种查找的方法。而IceSword的进程查找核心态方案是目前独一无二的,并且充分考虑内核后门可能的隐藏手段,目前可以查出所有隐藏进程。

  2、绝大多数工具查找进程路径名也是通过Toolhlp32、psapi,前者会调用RtlDebug***函数向目标注入远线程,后者会用调试api读取目标进程内存,本质上都是对PEB的枚举,通过修改PEB就轻易让这些工具找不到北了。而IceSword的核心态方案原原本本地将全路径展示,运行时剪切到其他路径也会随之显示。

  3、进程dll模块与2的情况也是一样,利用PEB的其他工具会被轻易欺骗,而IceSword不会弄错(有极少数系统不支持,此时仍采用枚举PEB)。

  4、IceSword的进程杀除强大且方便(当然也会有危险)。可轻易将选中的多个任意进程一并杀除。当然,说任意不确切,除去三个:idle进程、System进程、csrss进程,原因就不详述了。其余进程可轻易杀死,当然有些进程(如winlogon)杀掉后系统就崩溃了。

  5、对于端口工具,网上的确有很多,不过网上隐藏端口的方法也很多,那些方法对IceSword可是完全行不通的。其实本想带个防火墙动态查找,不过不想弄得太臃肿。这里的端口是指windows的IPv4 Tcpip协议栈所属的端口,第三方协议栈或IPv6栈不在此列。

     目前一些流氓软件采取的手段无所不用其极:线程注入,进程隐藏,文件隐藏,驱动保护,普通用户想把文件给删了或者找出进程来,是非常困难的。有的是看到了,删不掉,杀不掉,干着急,实在不行,还需要从另外的操作系统去删除文件。比如采取驱动保护的流氓软件如CNNIC,雅虎助手之类,.sys驱动加载的时候,它过滤了文件和注册表操作,直接返回一个true,Windows提示文件删了,但一看,它还在那里。象一些文件删除工具如unclocker都无效。IceSword是目前所知唯一可以直接删除这类已经加载的驱动和采取注册表保护的工具。象清除CNNIC这类流氓软件,不需要重启也可以完成了。

    IS采取了很多新颖的、内核级的方法和手段,关于它的技术细节不在本文讨论之列,下面主要从使用者角度讲一下它的主要功能:

   ■查看进程
      包括运行进程的文件地址、各种隐藏的进程以及优先级。用它也可以轻易杀掉用任务管理器、Procexp等工具杀不掉的进程。还可以查看进程的线程、模块信息,结束线程等。

   ■查看端口
      类似于cport、ActivePort这类工具,显示当前本地打开的端品以及相应的应用程序地址、名字。包括使用了各种手段隐藏端口的工具,在它下面,都一览无余。

   ■内核模块
      加载到系统内和空间的PE模块,一般都是驱动程序*.sys,可以看到各种已经加载的驱动。包括一些隐藏的驱动文件,如IS自身的IsDrv118.sys,这个在资源管理器里是看不见的。

   ■启动组
       Windows启动组里面的相关方式,这个比较容易理解了。不过可惜的是没有提示删除功能,只能查看

   ■服务
       用于查看系统中的被隐藏的或未隐藏的服务,隐藏的服务以红色显示。提供对服务的操作如启动,停止,禁用等。


   ■SPI和BHO
      这两个是目前流氓软件越来越看中的地方。SPI是服务提供接口,即所有Windows的网络操作都是通过这个接口发出和接收数据包的。很多流氓软件把这个.dll替换掉,这样就可以监视所有用户访问网络的包,可以针对性投放一些广告。如果不清楚的情况下,把这个.dll删掉,会造成网络无法使用,上不了网。LSPFix等工具就是针对这个功能的。BHO就更不用说了,浏览器的辅助插件,用户启动浏览器的时候,它就可以自动启动,弹出广告窗口什么的。这两项仅提供查看的功能。

   ■SSDT (System Service Descriptor Table)
      系统服务描述表,内核级后门有可能修改这个服务表,以截获你系统的服务函数调用,特别是一些老的rootkit,像上面提到的ntrootkit通过这种hook实现注册表、文件的隐藏。被修改的值以红色显示,当然有些安全程序也会修改,比如regmon。

   ■消息钩子
     若在dll中使用SetWindowsHookEx设置一全局钩子,系统会将其加载入使用user32的进程中,因而它也可被利用为无进程木马的进程注入手段。

   ■线程创建和线程终止监视
     “监视进线程创建”将IceSword运行期间的进线程创建调用记录在循环缓冲里,“监视进程终止”记录一个进程被其它进程Terminate的情况。举例说明作用:一个木马或病毒进程运行起来时查看有没有杀毒程序如norton的进程,有则杀之,若IceSword正在运行,这个操作就被记录下来,你可以查到是哪个进程做的事,因而可以发现木马或病毒进程并结束之。再如:一个木马或病毒采用多线程保护技术,你发现一个异常进程后结束了,一会儿它又起来了,你可用IceSword发现是什么线程又创建了这个进程,把它们一并杀除。中途可能会用到“设置”菜单项:在设置对话框中选中“禁止进线程创建”,此时系统不能创建进程或者线程,你安稳的杀除可疑进线程后,再取消禁止就可以了。


  ■注册表操作,Regedit有什么不足?
     说起Regedit的不足就太多了,比如它的名称长度限制,建一个全路径名长大于255字节的子项看看(编程或用其他工具,比如regedt32),此项和位于它后面的子键在regedit中显示不出来;再如有意用程序建立的有特殊字符的子键regedit根本打不开。
    IceSword中添加注册表编辑并不是为了解决上面的问题,因为已经有了很多很好的工具可以代替Regedit。IceSword中的“注册表”项是为了查找被木马后门隐藏的注册项而写的,它不受目前任何注册表隐藏手法的蒙蔽,真正可靠的让你看到注册表实际内容。
    如CNNIC添加的HKLM\SYSTEM\CurrentControlSet\Services\cdnport这个键值,就是通过它来加载cndport.sys这个驱动文件的。通过Regedit你删除会直接出错,根本无法删除。而用IS就可以轻易干掉。


  ■文件操作
     IS的文件操作有点类似于资源管理器,虽然操作起来没有那么方便,但是它的独到功能在于具备反隐藏、反保护的功能。还有对安全的副作用是本来system32\config\SAM等文件是不能拷贝也不能打开的,但IceSword是可以直接拷贝的。类似于已经加载的驱动,如CNNIC的cdnport.sys这个文件,目前只有IS可以直接把它删除,其它无论什么方式,都无法破除驱动自身的保护。
     即使对大多数有用的unlocker,CopyLock、KillBox都是无效的。利用Windows的系统还没有完全加载的删除机制,通过在HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下增加PendingFileRenameOperations,这个是所有删除顽固文件工具的最后一招,但它也被驱动保护变得无效了。以前的情况就是需要重启启动到另外一个操作系统下删除。
    ----那帮做流氓软件的可真是手段无所不用其及。


    IceSword内部功能是十分强大的。可能您也用过很多类似功能的软件,比如一些进程工具、端口工具,但是现在的系统级后门功能越来越强,一般都可轻而易举地隐藏进程、端口、注册表、文件信息,一般的工具根本无法发现这些“幕后黑手”。IceSword使用大量新颖的内核技术,使得这些后门躲无所躲。

转载请保留以下签名:
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=**=*
┃ 网络安全日志(Network Security Logger) ┃
┃  http://www.nslog.cn    nslog@126.com  ┃
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=**=*
 楼主| 发表于 2007-10-3 20:25:31 | 显示全部楼层
 IceSword冰刃(以下简称IceSword)是一款斩断系统黑手的绿色软件。在笔者的使用中,IceSword表现很令笔者满意,绝对是一把强悍的瑞士军刀——小巧、强大。

  1.IceSword的“防”

  打开软件,看出什么没?有经验的用户就会发现,这把冰刃可谓独特,它显示在系统任务栏或软件标题栏的都只是一串随机字串“CE318C”,而并是通常所见的软件程序名(见图1)。这就是IceSword独有的随机字串标题栏,用户每次打开这把冰刃,所出现的字串都是随机生成,随机出现,都不相同(随机五位/六位字串),这样很多通过标题栏来关闭程序的木马和后门在它面前都无功而返了。另外,你可以试着将软件的文件名改一下,比如改为killvir.exe,那么显示出来的进程名就变为了killvir.exe。现在你再试着关闭一下IceSword,是不是会弹出确认窗口?这样那些木马或后门就算通过鼠标或键盘钩子控制窗口退出按钮,也不能结束IceSword的运行了,只能在IceSword的面前乖乖就范了。
图1
  2.IceSword的“攻”

  如果IceSword只有很好的保护自身功能,并没有清除木马的能力,也不值得笔者介绍了。如果大家还记得本刊2005年第5期《如何查杀隐形木马》一文,那一定会觉得IceSword表现相当完美了。但这只所谓的隐身灰鸽子,在IceSword面前只算是小儿科的玩意。因为这只鸽子只能隐身于系统的正常模式,在系统安全模式却是再普通不过的木马。而IceSword的作者就在帮助中多次强调IceSword是专门针对功能强大的内核级后门设计的。今天,笔者通过一次经历来说明IceSword几招必杀技。
前段时间,笔者某位朋友的个人服务器(Windows 2003),出现异常,网络流量超高,朋友使用常规方法只可以清除简单的木马,并没有解决问题,怀疑是中了更强的木马,于是找来笔者帮忙。笔者在询问了一些情况后,直接登录到系统安全模式检查,谁知也没有什么特别发现。于是笔者尝试拿出IceSword这把“瑞士军刀”……

  第一步:打开IceSword,在窗口左侧点击“进程”按钮,查看系统当前进程。这个隐藏的“幕后黑手”马上露出马脚(见图2),但使用系统自带的“任务管理器”是看不到些进程的。注意,IceSword默认是使用红色显示系统内隐藏程序,但IceSword若在内核模块处显示多处红色项目并不都是病毒,我们还需要作进一步的技术分析及处理。

图2
 楼主| 发表于 2007-10-3 20:26:02 | 显示全部楼层
别以为只是系统自带的任务管理器功能弱,未能发现。我们又用了IceSword与Process Explorer(另一款功能强大的进程查看软件)进行对比,同样也没办法发现“幕后黑手”的踪影(见图3)。
图3
  第二步:点击窗口左侧的“服务”按钮,来查看系统服务。这时就可以看到如图4所示的情况了,这个木马的服务也是隐藏的,怪不得笔者未能发现行踪。

图4
  第三步:既然看了服务,也应该查查注册表[HKEY_LOCAL_ MACHINE SYSTEM\ CurrentControlSet \Services]的情况。反正IceSword也提供查看/编辑注册表功能,正好和系统的“注册表编辑器”也来个对比,点击窗口左侧的“注册表”标签,然后打开依次展开[HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services]项(见图5)。真是不比不知道,一比吓一跳。看来,系统内置工具还是选择“沉默”,还记得《如何查杀隐形木马》一文吧,虽说鸽子在正常模式下,它的主服务也能隐藏,但它在系统的“注册表编辑器”内完全是显示的,更不要说目前是安全模式。仔细看看,既然已经从IceSword得到可靠情报,得知“幕后黑手”位于系统目录E:\Windows\system32\wins下。

图5
 楼主| 发表于 2007-10-3 20:26:48 | 显示全部楼层
第四步:我们还是用系统的“资源管理器”和IceSword对比一下,点击窗口左侧的“文件”标签,结果如图6所示。“资源管理器”选择了“交白卷”。在IceSword的文件浏览器与系统的“资源管理器”明显对比下,IceSword已经发现三只“黑手”,正是因为有这只隐藏的幕后黑手,难怪朋友搞了几次,换了不同的防病毒软件还是没清干净。
图6
  第五步:剩下的事容易多了,在IceSword中点击“查看”标签下的“进程”按钮,右击刚刚发现的隐藏进程,选择“结束进程”。然后用IceSword删除那三个木马文件,最后,还要删除多余的服务项——那两个HackerDefender*的注册表键值即可。清理完这只“黑手”后,再使用杀毒软件重新杀一遍系统,确认没有其他的木马。

  上面的例子充分体现了IceSword的魅力所在。正如作者所言,IceSword大量采用新颖技术,有别于其他普通进程工具,比如IceSword就可以结束除Idle进程、System进程、csrss进程这三个进程外的所有进程,就这一点,其他同类软件就是做不到的。当然有些进程也不是随便可以结束的,如系统的winlogon.exe进程,一旦杀掉后系统就崩溃了,这些也需要注意。
 楼主| 发表于 2007-10-3 20:27:39 | 显示全部楼层
冰刃IceSword是一款强大的安全辅助软件,在杀毒过程中,会经常用到它,我们一般的操作为1、结束进程;2、删除文件;3、清理注册表,以下通过图片来展示IceSword的基本操作,这样更直观
一、结束进程及恢复进程创建





二、删除文件




三、清理注册表


 楼主| 发表于 2007-10-3 20:29:49 | 显示全部楼层
现在的蠕虫病毒和木马后门越来越狡猾,总是想尽一切方法将自己隐藏得极端隐蔽。可能大家早已厌倦了普通的木马查杀工具,使用这些工具根本无法发现隐蔽着的“幕后黑手”,还误让用户以为自己的系统很安全!而我们今天要介绍的这款木马查杀新贵IceSword(冰剑)则与众不同(如图1),无论是什么后门都将在它面前统统曝光。它即适合菜鸟查杀系统中的木马,也可被高手利用来分析各种可疑的木马后门。图1

一、查看隐藏的木马进程
运行IceSword后,点击左边“查看”栏中的“进程”项,在右边的进程列表中就可以查看到当前系统中所有可见和隐藏的进程了。隐藏的进程会以红色醒目地标记出来,以方便查找系统级后门。


   小提示:如果在进程列表中没有红色的隐藏进程项,说明你还没有打开相关的设置。点击菜单“文件”→“设置”,去掉对话框中的“不显示状态为Deleting的进程”选项即可(如图2)。在进程列表中可以查看到每个进程文件的路径,这可以方便我们查看到一些使用了与系统服务相同文件名的木马后门。例如在按进程名排列进程时,我们发现了其中有一个进程名为“Svchost.exe”,其路径异常地存放在了“C:\Windows”目录下(如图3)。通过查看发现原来这是一个经过伪装的木马后门!如果我们使用Windows的进程管理器,将无法得知此进程的存放路径,还误以为它是正常的系统进程呢。
图2
图3


二、强大的进程终止功能
发现了木马进程后,可以轻松地将其结束。有许多进程注册为系统服务或感染了svchost.exe、lsass.exe等文件,致使无法正常中止该进程或将文件删除。然而使用IceSword后,除idle、System、CSrss这三个进程外,可以结束任何正在运行的进程。在进程列表中单选或按住Ctrl键选择多个进程,点击右键菜单中的“结束进程”,即可杀掉无法结束的顽固进程了(如图4)。
图4

三、增强型的注册表编辑器
点击IceSword左边的“注册表”项,可以方便地对注册表进行查看、编辑或删除等操作(如图5)。与Windows的Regedit相比,IceSword中的“注册表”项可以查找被木马后门隐藏的任意注册项,不受任何注册表隐藏的蒙蔽。一些木马后门,有可能修改自己在注册表中的名称长度,从而不会在Regedit中显示;还有一些木马建立含有特殊字符的子键,用Regedit根本打不开。用IceSword就可轻松地解决这些问题。
图5
四、替换正在运行的程序文件
点击IceSword左边的“文件”项,打开一个类似资源管理的窗口(如图6),可别小看它的功能,因为它具备反隐藏、反保护的功能。一些木马文件采用了隐藏或加密的手段,在IceSword面前也是无能为力的。其中最有用的功能,就是可以帮助我们替换正在运行中的木马文件。
图6
例如刚才我们想删除刚才发现的木马文件“Svchost.exe”,可是该文件在安全模式下也是启动系统后即自动运行,唯一的办法就是进入DOS环境中才能删除该文件。IceSword中可就简单了,在“文件”项目中找到该文件,点击右键并选择“删除”命令即可。
还可以利用IceSword为系统“免疫”,在“文件”项中随便用右键点击某个正常文件,选择“复制”命令,然后要求输入目标文件路径,这里浏览选择正在使用中的木马文件(如图7)。确定后,前面复制的正常文件的内容就写入后面的木马文件中了。有一些木马或蠕虫病毒在感染系统时,如果检查到系统中已存在自身的文件时就不会进行再次感染,却没想到这些文件早已成了一个死尸躯壳。
图7

五、木马查杀的综合实例
此外,在IceSword中的“查看”项中还有其它强大的木马检测功能,例如在“启动组”中可以查看到隐藏的自启动程序;“服务”项项可查看系统服务,还可查看“内核模块”、“SPI”与“BHO”、“SSDT”等内核级后门修改调用的服务(这可是高手专利,呵!)。来看看笔者为大家展示一个检查Svchost木马的实例:
1.检测Svchost木马
如果在“进程”项中发现svchost过多,记住它的“进程ID”值,到“服务”栏中可通过“服务进程ID”值找到对应的服务项,然后可找到该项服务名称为“RpcSs的服务”(如图8)。再打开“注册表”栏找到“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services”下的同名键,再查看它对应的dll文件路径(如图9),很容易就可发现木马的异常项,后面的工作就是停止该进程、删除文件、恢复注册表之类的了,当然这需要我们对服务比较熟悉。
图8
图9
2.杀掉多线程保护的木马
在结束这个Svchost木马时,发现此木马采用了多线程保护技术,将其结束后一会儿又自动运行了。这时可在“查看”栏中点击“监视进程创建”项,查看到是什么线程又创建了这个进程(如图10),然后将它们一起中止掉。在关闭线程的过程中,为突破多线程保护,可以打开“设置”并选中“禁止进线程创建”,此时系统不能创建进程或者线程,我们就可以顺利地杀掉多线程保护的木马进程了。
图10
有了这把“无情的冰剑”,相信什么样的木马都很难躲过它的剑风,我们的系统从此也会安全许多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-27 00:39 , Processed in 0.111852 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表