冰刃
冰刃IceSword 1.22 简介
添加的小功能有:
1、进程栏里的模块搜索(Find Modules)
2、注册表栏里的搜索功能(Find、Find Next)
3、文件栏里的搜索功能,分别是ADS的枚举(包括或不包括子目录)、普通文件查找(Find Files)
上面是要求最多的,确实对查找恶意软件有帮助
4、BHO栏的删除、SSDT栏的恢复(Restore)
这项算是“鸡肋”项吧,可加可不加。
5、Advanced Scan:第三步的Scan Module提供给一些高级用户使用,一般用户不要随便restore,特别不要restore第一项显示为"-----"的条目,因为它们或是操作系统自己修改项、或是IceSword修改项,restore后会使系统崩溃或是IceSword不能正常工作。最早的IceSword也会自行restore一些内核执行体、文件系统的恶意inline hook,不过并未提示用户,现在觉得像SVV那样让高级用户自行分析可能会有帮助。另外里面的一些项会有重复(IAT hook与Inline modified hook),偷懒不检查了,重复restore并没有太大关系。还有扫描时不要做其它事,请耐心等待。
有朋友建议应该对找到的结果多做一些分析,判断出修改后代码的意义,这当然不错,不过要完美的结果工作很烦琐——比如我可以用一条指令跳转,也可以用十条或更多冗余指令做同样的工作——而目前没有时间完善,所以只有JMP/PUSH+RET的判断。提议下对高级用户可选的替代方案:记住修改的地址,使用进程栏里的“内存读写”中的“反汇编”功能,就先请用户人工分析一下吧,呵呵。
6、隐藏签名项(View->Hide Signed Items)。在菜单中选中后对进程、模块列举、驱动、服务四栏有作用。要注意选中后刷新那四栏会很慢,要耐心等。运行过程中系统相关函数会主动连接外界以获取一些信息(比如去crl.microsoft.com获取证书吊销列表),一般来说,可以用防火墙禁之,所以选中后发现IS有连接也不必奇怪,M$搞的,呵呵。
7、其他就是内部核心功能的加强了,零零碎碎有挺多,就不细说了。使用时请观察下View->Init State,有不是“OK”的说明初始化未完成,请report一下。
IceSword是一斩断黑手的利刃(所以取这土名,有点搞e,呵呵)。它适用于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主界面唤出。因为偷懒没有重绘图标,将就用吧^_^。
您无须为此软件付费,但如果您使用时发现了什么Bug,请mail to me:
jfpan20000@sina.com ,十分感谢。
更新说明:
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系统功能打开了端口,就逃不出查找。不过注意因为偷懒,未将隐藏的端口像进程那样红色显示,所以您需要自己对照。
内核模块:即当前系统加载的核心模块比如驱动程序。
启动组:是两个RUN子键的内容,懒得写操作了,请自行更改注册表。
服务:用于查看系统中的被隐藏的或未隐藏的服务,隐藏的服务以红色显示,注意在操作时可能有的服务耗时较长,请稍后手动刷新几次。
SPI、BHO:不多说了。
SSDT:即系统服务派发表,其中被修改项会红色显示。
消息钩子:枚举系统中所注册的消息钩子(通过SetWindowsHookEx等),若钩子函数在exe模块中则是实际的地址,若在dll模块中则是相对于dll基址的偏移,具体请自行判断吧(一般地址值小于0x400000的就是全局钩子)。
监视进线程创建:顾名思义,进线程的创建纪录保存在以循环缓冲里,要IceSword运行期间才进行纪录,您可以用它发现木马后门创建了什么进程和线程,尤其是远线程。红色显示的即是进程创建(目标进程TID为0时为进程创建,紧接其后的红色项是它的主线程的创建)和远线程创建(应该注意),须注意的是,此栏只显示最新的1024项内容。
监视进程终止:一般只是监视一个进程结束另一个进程,进程结束自身一般不纪录。
系统检查:1.22中有更新
注册表
与Regedit用法类似,注意它有权限打开与修改任何子键,使用时要小心,不要误修改(比如SAM子键)。
子键的删除、子键下项的创建都是在左边子键上点击右键,在菜单中选择即可,而右边各项上点击则出现“删除所选”的菜单,删除选中的一项或多项。在右边双击一项则出现修改对话框。
文件
文件操作与资源管理器类似,但只提供文件删除、复制的功能。其特点还是防止文件隐藏,同时可以修改已打开文件(通过复制功能,将复制的目标文件指定为那个已打开文件即可)。
菜单
设置:此栏中各项意义与其名称一致,具体可见FAQ。
转储:“GDT/IDT”在当前目录保存GDT和IDT的内容入GDT.txt、IDT.txt;
“列表”将当前List(仅对前5项,即:进程、端口、内核模块、启动组、服务)中的某些列内容保存在用户指定的log文件中。比如,要保存进程路径名入log文件,先点击“进程”按钮,再选择“列表”菜单,指定文件后确定即可。
托盘切换:将Icesword最小化到托盘或反之。
其余请参考FAQ