冰刃IceSword适用于Windows 2000/XP/2003 操作系统,其内部功能是十分强大, 用于查探系统中的幕后黑手—木马后门,并作出处理。可能您也用过很多类似功能的软件,比如一些进程工具、端口工具,但是系统级后门功能越来越强, 一般都可轻而易举地隐藏进程、端口、注册表、文件信息, 一般的工具根本无法发现这些幕后黑手。IceSword 使用了大量新颖的内核技术, 使得这些后门躲无所躲。
添加功能
1、进程栏里的模块搜索(Find Modules)
2、
注册表栏里的搜索功能(Find、Find Next)
3、文件栏里的搜索功能,分别是ADS的枚举(包括或不包括
子目录)、普通文件查找(Find Files)
4、BHO栏的删除、SSDT栏的恢复(Restore)
5、
有朋友建议应该对找到的结果多做一些分析,判断出修改后代码的意义,这当然不错,不过要好的结果工作很烦琐——比如我可以用一条
指令跳转,也可以用十条或更多冗余指令做同样的工作——没有时间完善,所以只有JMP/PUSH+RET的判断。提议下对高级用户可选的替代方案:记住修改的地址,使用进程栏里的“内存读写”中的“
反汇编”功能,就先请用户人工分析一下吧,呵呵。
6、隐藏签名项(View->Hide Signed Items)。在菜单中选中后对进程、模块列举、
驱动、服务四栏有作用。要注意选中后刷新那四栏会很慢,要耐心等。运行过程中系统相关函数会主动连接外界以获取一些信息(比如去crl.microsoft. com获取
证书吊销列表),一般来说,可以用
防火墙禁之,所以选中后发现IS有连接也不必奇怪,M$搞的,呵呵。
7、其他就是内部核心功能的加强了,零零碎碎有挺多,就不细说了。使用时请观察下View->Init State,有不是“OK”的说明
初始化未完成,请report一下。
IceSword是一斩断黑手的利刃(所以取这土名,有点搞呃,呵呵)。它适用于Windows 2000/XP/2003/Vista操作系统,用于查探系统中的幕后黑手(木马后门)并作出处理,当然使用它需要用户有一些操作系统的知识。
在对软件做讲解之前,首先说明第一注意事项 :此程序运行时不要激活内核调试器(如softice),否则系统可能即刻崩溃。另外使用前请保存好您的数据,
以防万一未知的Bug带来损失。
IceSword只为使用32位的
x86兼容
CPU的系统设计,另外运行IceSword需要管理员权限。
如果您使用过老版本,请一定注意,使用新版本前要重新启动系统,不要交替使用二者。
IceSword内部功能是十分强大的。可能您也用过很多类似功能的软件,比如一些进程工具、端口工具,但是系统级后门功能越来越强,一般都可轻而易举地隐藏进程、端口、注册表、文件信息,一般的工具根本无法发现这些“幕后黑手”。IceSword使用大量新颖的内核技术,使得这些后门躲无所躲。
如何退出IceSword:直接关闭,若你要防止进程被结束时,需要以命令行形式输入:
IceSword.exe/c,此时需要Ctrl+Alt+D才能关闭(使用三键前先按一下
任意键)。
如果最小化到托盘时托盘图标又消失了:此时可以使用Ctrl+Alt+S将IceSword主界面唤出。因为偷懒没有重绘图标,将就用吧。
您无须为此软件付费。该软件是免费的。
更新说明
1.20:(1)恢复了
插件功能,并提供一个文件
注册表的小插件,详见FileReg.chm;(2)对核心部分作了些许改动,界面部分仅
文件菜单有一点变化。
1.20(SubVer 111E3):添加对32位版本Vista(NtBuildNumber:6000)的支持。
1.22:(1)增加普通文件、ADS、注册表、模块的搜索功能;(2)隐藏签名项;(3)添加模块的HOOK扫描;(4)核心功能的加强。
进程
欲察看当前进程,请点击“进程”按钮,在右部列出的进程中,隐藏的进程会以红色醒目地标记出,以方便查找隐藏自身的系统级后门。1.16中进程栏只纳入基本功能,欲使用一些扩展的隐藏进程功能,请使用系统检查。
右键菜单:
1、刷新列表:请再次点击“进程”按钮,或点击右键,选择“刷新列表”。
2、结束进程:点击左键选中一项,或按住Ctrl键选择多项,然后使用右键菜单的“结束进程”将它们结束掉。
3、线程信息:在右键菜单中选择“线程信息”。
注意其中的“强制终止”是危险的操作 ,对一个线程只应操作一次,否则系统可能崩溃。为了尽量通用,里面注释掉了大量代码,因而是不完全的。不过可以应付一些用户的要求了:终止系统线程与在
核心态死循环的线程,虽然可能仍然能看到它们的存在,那只是一些残留。
4、模块信息:在右键菜单中选择“模块信息”。
“卸除”对于系统DLL是无效的,你可以使用“强制解除”,不过强制解除系统DLL必然会使进程挂掉。强制解除后在使用PEB来查询模块的工具中仍可看到被解除的DLL,而实际上DLL已经被卸掉了。这是因为我懒得做善后处理了——修改PEB的内容。
5、内存读写:在右键菜单中选择“内存读写”。
操作时首先填入读的起始地址和长度,点击“读内存”,如果该进程内的指定地址有效,则读取并显示,您可以在编辑框中修改后点击“写内存”写入选中的进程。注意此刻的提示框会建议您选“否”即不破除COW机制,在您不十分明白COW之前,请选择“否”,否则可能写入错误的地址给系统带来错误以至崩溃。
读出内容后,可以点击“
反汇编”查看反汇编值,某些木马修改函数入口来hook函数,可由反汇编值分析判断。
端口
此栏的功能是进程端口关联。它的前四项与netstat -an类似,后两项是打开该端口的进程。
在“进程ID”一栏中,出现0值是指该端口已关闭,处于“TIME_WAIT”状态,由于2000上使用技术XP/2003有所不同,所以前者与后二者上的显示可能些微差别。IceSword破除系统级后门的端口隐藏,只要进程使用windows系统功能打开了端口,就逃不出查找。不过注意因为偷懒,未将隐藏的端口像进程那样红色显示,所以您需要自己对照。
注册表
与
Regedit用法类似,注意它有权限打开与修改任何子键,使用时要小心,不要误修改(比如SAM子键)。
子键的删除、子键下项的创建都是在左边子键上点击右键,在菜单中选择即可,而右边各项上点击则出现“删除所选”的菜单,删除选中的一项或多项。在右边双击一项则出现修改对话框。
文件
文件操作与
资源管理器类似,但只提供文件删除、复制的功能。其特点还是防止文件隐藏,同时可以修改已打开文件(通过复制功能,将复制的
目标文件指定为那个已打开文件即可)。
菜单
设置:此栏中各项意义与其名称一致,具体可见FAQ。
转储:“GDT/IDT”在当前目录保存GDT和IDT的内容入GDT.txt、IDT.txt;
“列表”将当前List(仅对前5项,即:进程、端口、
内核模块、启动组、服务)中的某些列内容保存在用户指定的
log文件中。比如,要保存进程路径名入log文件,先点击“进程”按钮,再选择“列表”菜单,指定文件后确定即可。
托盘切换:将Icesword最小化到托盘或反之。
其它
启动组:是两个RUN子键的内容,懒得写操作了,请自行更改注册表。
服务:用于查看系统中的被隐藏的或未隐藏的服务,隐藏的服务以红色显示,注意在操作时可能有的服务耗时较长,请稍后手动刷新几次。
SPI、BHO:不多说了。
SSDT:即系统服务派发表,其中被修改项会红色显示。
消息钩子:枚举系统中所注册的消息钩子(通过SetWindowsHookEx等),若
钩子函数在exe模块中则是实际的地址,若在dll模块中则是相对于dll
基址的偏移,具体请自行判断吧(一般地址值小于0x400000的就是
全局钩子)。
监视进线程创建:顾名思义,进线程的创建纪录保存在以循环缓冲里,要IceSword运行期间才进行纪录,您可以用它发现木马后门创建了什么进程和线程,尤其是远线程。红色显示的即是进程创建(目标进程TID为0时为进程创建,紧接其后的红色项是它的
主线程的创建)和远线程创建(应该注意),须注意的是,此栏只显示最新的1024项内容。
监视进程终止:一般只是监视一个进程结束另一个进程,进程结束自身一般不纪录。
系统检查:1.22中有更新
其余请参考FAQ
相关问题
问:进程端口工具很多,为什么要使用IceSword?
答: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栈不在此列。
问:windows自带的服务工具强大且方便,IceSowrd有什么更好的特点呢?
答:因为比较懒,界面使用上的确没它来的好,不过IceSword的服务功能主要是查看木马服务的,使用还是很方便的。举个例子,顺便谈一类木马的查找:svchost是一些共享进程服务的宿主,有些木马就以dll存在,依靠
svchost运作,如何找出它们呢?首先看进程一栏,发现svchost过多,记住它们的pid,到服务一栏,就可找到pid对应的服务项,配合注册表查看它的dll文件路径(由服务项的第一栏所列名称到注册表的services子键下找对应名称的子键),根据它是不是惯常的服务项很容易发现异常项,剩下的工作就是停止任务或结束进程、删除文件、恢复注册表之类的了,当然过程中需要你对服务有一般的知识。
问:那么什么样的木马后门才会隐藏进程
注册表文件的?用IceSword又如何查找呢?
答:比如很流行且开源(容易出变种)的hxdef就是这么一个后门。用IceSword可以方便清除,你直接就可在进程栏看到红色显示的hxdef100进程,同时也可以在服务栏中看到红色显示的服务项,顺便一说,在注册表和文件栏里你都可发现它们,若木马正在
反向连接,你在端口栏也可看到。杀除它么,首先由进程栏得后门程序全路径,结束进程,将后门目录删除,删除注册表中的服务对应项...这里只是简单说说,请你自行学习如何有效利用IceSword吧。
答:加载到系统内和空间的PE模块,主要是驱动程序*.sys,一般
核心态后们作为核心驱动存在,比如说某种rootkit加载_root_.sys,前面提到的hxdef也加载了hxdefdrv.sys,你可以在此栏中看到。
问:“SPI”与“BHO”又是什么?
答:SPI栏列举出系统中的
网络服务提供者,因为它有可能被用来做无进程木马,注意“DLL路径”,正常系统只有两个不同DLL(当然协议比较多)。BHO是IE的
插件,全名Browser Help Objects,木马以这种形式存在的话,用户打开网页即会激活木马。
问:“SSDT”有何用?
答:内核级后门有可能修改这个服务表,以截获你系统的服务函数调用,特别是一些老的rootkit,像上面提到的ntrootkit通过这种hook实现注册表、文件的隐藏。被修改的值以红色显示,当然有些安全程序也会修改,比如regmon,所以不要见到红色就慌张。
答:若在dll中使用SetWindowsHookEx设置一全局钩子,系统会将其加载入使用user32的进程中,因而它也可被利用为无进程木马的进程注入手段。
问:最后两个监视项有什么用处?
答:“监视进线程创建”将IceSword运行期间的进线程创建调用记录在循环缓冲里,“监视进程终止”记录一个进程被其它进程Terminate的情况。举例说明作用:一个木马或病毒进程运行起来时查看有没有杀毒程序如norton的进程,有则杀之,若IceSword正在运行,这个操作就被记录下来,你可以查到是哪个进程做的事,因而可以发现木马或病毒进程并结束之。再如:一个木马或病毒采用多线程保护技术,你发现一个异常进程后结束了,一会儿它又起来了,你可用IceSword发现是什么线程又创建了这个进程,把它们一并杀除。中途可能会用到“设置”菜单项:在设置对话框中选中“禁止进线程创建”,此时系统不能创建进程或者线程,你安稳的杀除可疑进线程后,再取消禁止就可以了。
问:IceSword的注册表项有什么特点?相对来说,RegEdit有什么不足吗?
答:说起Regedit的不足就太多了,比如它的名称长度限制,建一个全路径名长大于255
字节的子项看看(编程或用其他工具,比如regedt32),此项和位于它后面的子键在
regedit中显示不出来;再如有意用程序建立的有特殊字符的子键regedit根本打不开。
当然IceSword中添加注册表编辑并不是为了解决上面的问题,因为已经有了很多很好的工具可以代替Regedit。IceSword中的“注册表”项是为了查找被木马后门隐藏的注册项而写的,它不受任何注册表隐藏手法的蒙蔽,真正可靠的让你看到注册表实际内容。
问:那么文件项又有什么特点呢?
答:同样,具备反隐藏、反保护的功能。当然就有一些副作用,文件保护工具(移走文件和
文件加密程序文件(比如木马),你想改掉它的内容(比如想向
木马程序文件写入垃圾数据使它重启后无法运行),那么请选中一个文件(内含你想修改的内容),选“复制”菜单,将目标文件栏中添上你欲修改掉的文件(木马)路径名,确定后前者的内容就写入后者(木马)从头开始的位置。
最后提醒一句:每次开机IceSword只第一次运行确认管理员权限,所以管理员运行程序后,如果要交付机器给低权限用户使用,应该先重启机器,否则可能为低权限用户利用。
问:GDT/IDT的转储文件里有什么内容?
答:GDT.log内保存有系统
全局描述符表的内容,IDT.log则包含
中断描述符表的内容。如果有后门程序修改它,建立了调用门或中断门,很容易被发现。
问:转储列表是什么意思?
答:即将显示在当前列表视中的部分内容存入指定文件,比如转储系统内所有进程,放入网上请人帮忙诊断。不过意义不大,IceSword编写前已假定使用者有一定安全知识,可能不需要这类功能。
答:因为IceSword设计为尽量不在系统上留下什么安装痕迹,不过这就不方便监视开机就自启的程序。比如,一个程序运行后向explorer等进程远线程注入,再结束自身,这样查进程就不大方便了,因为仅有线程存在。这时,就可以使用“重启并监视”监视系统启动时的所有进线程创建,可轻易发现远线程注入。
问:“创建进程规则”和“创建线程规则”是什么意思?
答:它们用来设定创建进线程时的规则。其中要注意的是:总规则是指允许还是禁止满足该条规则所有条款的进线程创建事件;一条规则中的条款间的关系是与关系,即同时满足才算匹配这条规则;“规则号”是从零开始的,假设当前有n条规则,添加规则时输入
零规则号即代表在队头插入,输入n规则号则在队尾插入;如果前面一条规则已经匹配,那么所有后面的规则就忽略掉了,系统直接允许或禁止这次创建操作。
答:可以方便地扩充功能而不升级程序,以后可能开放一些接口给用户自己定制。1.06
正式版暂时取消了,因为用户反馈并不是很有用。
问:协件有何用处?
答:插件的取代品。时间有限,没有怎么测试,若觉得不安全,可以在“设置”菜单禁用之。具体见头文件和示例程序。IsHelp是个小玩具型的协件,提供辅助功能。需要注意的是,协件的运行需要IceSword的支持(IceSword通过
进程间通信提供服务)。