飘渺的空间  
日历
<2007年12月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
统计
  • 随笔 - 17
  • 文章 - 0
  • 评论 - 27
  • 引用 - 0

导航

常用链接

留言簿(1)

随笔档案

新闻档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

〖杀马纪实〗冰刃(icesword)VS驱动级隐藏木马(Rootkit)-PcShare

PcShare简介:
引用:
一款计算机远程控制软件,采用HTTP反向通信,屏幕数据线传输,驱动隐藏端口通信过程等技术,达到系统级别的隐藏。类似灰鸽子,由于结合了最新的Rootkit技术,用一般的系统扫描软件如Hijackthis等无法检测到其木马服务信息,最近有泛滥的趋势...
PcShare样本(arcldrer.exe)运行后释放文件有:
%System32%\Ybfbqufe.d1l
%System32%\Ybfbqufe.dll
%System32%\drivers\Ybfbqufe.sys
插入并启动IE隐藏进程:
在注册表中添加了隐藏的驱动服务:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ybfbqufe]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ybfbqufe]
指向%SystemRoot%\System32\drivers\Ybfbqufe.sys
如果是XP系统:
修改dmserver服务(监测和监视新硬盘驱动器并向逻辑磁盘管理器管理服务发送卷的信息以便配置):
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmserver\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmserver\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\dmserver\Parameters]
指向病毒文件:
"ServiceDll"="%System32%\Ybfbqufe.d1l"
如果此服务被终止,动态磁盘状态和配置信息会过时。如果此服务被禁用,任何依赖它的服务将无法启动。
如果是2000系统:
修改RpcSs服务(Remote
Procedure Call
Services):
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RpcSs\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\RpcSs\Parameters]
指向病毒文件:
"ServiceDll"="%System32%\Ybfbqufe.d1l"
rpcss.exe是微软Windows操作系统的一部分。它用于本地计算机的远程程序调用
服务。它是本地网络的公用服务。这个程序对系统的正常运行是非常重要的。


引用:
驱动级隐藏木马结合了最新的Rootkit技术,用一般的系统扫描软件如Hijackthis等无法检测到其木马服务信息,最近有泛滥的趋势...
但是有这么一款软件,它专为查探系统中的幕后黑手——木马和后门而设计,内部功能强大,它使用了大量新颖的内核技术,使内核级的后门一样躲无所躲,它就是——IceSword冰刃。
IceSword冰刃(以下简称IceSword)是一款斩断系统黑手的绿色软件。在笔者的使用中,IceSword表现很令笔者满意,绝对是一把强悍的瑞士军刀——小巧、强大。
引用:
引用:
1.IceSword的“防”
打开软件,看出什么没?有经验的用户就会发现,这把冰刃可谓独特,它显示在系统任务栏或软件标题栏的都只是一串随机字串“CE318C”,而并是通常所见的软件程序名。这就是IceSword独有的随机字串标题栏,用户每次打开这把冰刃,所出现的字串都是随机生成,随机出现,都不相同(随机五位/六位字串),这样很多通过标题栏来关闭程序的木马和后门在它面前都无功而返了。另外,你可以试着将软件的文件名改一下,比如改为killvir.exe,那么显示出来的进程名就变为了killvir.exe。现在你再试着关闭一下IceSword,是不是会弹出确认窗口?这样那些木马或后门就算通过鼠标或键盘钩子控制窗口退出按钮,也不能结束IceSword的运行了,只能在IceSword的面前乖乖就范了。
2.IceSword的“攻”
如果IceSword只有很好的保护自身功能,并没有清除木马的能力,也不值得笔者介绍了。而IceSword的作者就在帮助中多次强调IceSword是专门针对功能强大的内核级后门设计的。今天,笔者通过一次经历来说明IceSword几招必杀技。
前段时间,笔者某位朋友的个人服务器(Windows 2003),出现异常,网络流量超高,朋友使用常规方法只可以清除简单的木马,并没有解决问题,怀疑是中了更强的木马,于是找来笔者帮忙。笔者在询问了一些情况后,直接登录到系统安全模式检查,谁知也没有什么特别发现。于是笔者尝试拿出IceSword这把“瑞士军刀”……
第一步:打开IceSword,在窗口左侧点击“进程”按钮,查看系统当前进程。这个隐藏的“幕后黑手”马上露出马脚,但使用系统自带的“任务管理器”是看不到些进程的。注意,IceSword默认是使用红色显示系统内隐藏程序,但IceSword若在内核模块处显示多处红色项目并不都是病毒,我们还需要作进一步的技术分析及处理。
别以为只是系统自带的任务管理器功能弱,未能发现。我们又用了IceSword与Process Explorer(另一款功能强大的进程查看软件)进行对比,同样也没办法发现“幕后黑手”的踪影
第二步:点击窗口左侧的“服务”按钮,来查看系统服务。,这个木马的服务也是隐藏的,怪不得笔者未能发现行踪。
第三步:既然看了服务,也应该查查注册表[HKEY_LOCAL_ MACHINE SYSTEM\ CurrentControlSet \Services]的情况。反正IceSword也提供查看/编辑注册表功能,正好和系统的“注册表编辑器”也来个对比,点击窗口左侧的“注册表”标签,然后打开依次展开[HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services]项(。真是不比不知道,一比吓一跳。看来,系统内置工具还是选择“沉默”,还记得《如何查杀隐形木马》一文吧,虽说鸽子在正常模式下,它的主服务也能隐藏,但它在系统的“注册表编辑器”内完全是显示的,更不要说目前是安全模式。仔细看看,既然已经从IceSword得到可靠情报,得知“幕后黑手”位于系统目录E:\Windows\system32\wins下。
第四步:我们还是用系统的“资源管理器”和IceSword对比一下,点击窗口左侧的“文件”标签,“资源管理器”选择了“交白卷”。在IceSword的文件浏览器与系统的“资源管理器”明显对比下,IceSword已经发现三只“黑手”,正是因为有这只隐藏的幕后黑手,难怪朋友搞了几次,换了不同的防病毒软件还是没清干净。
第五步:剩下的事容易多了,在IceSword中点击“查看”标签下的“进程”按钮,右击刚刚发现的隐藏进程,选择“结束进程”。然后用IceSword删除那三个木马文件,最后,还要删除多余的服务项——那两个HackerDefender*的注册表键值即可。清理完这只“黑手”后,再使用杀毒软件重新杀一遍系统,确认没有其他的木马
上面的例子充分体现了IceSword的魅力所在。正如作者所言,IceSword大量采用新颖技术,有别于其他普通进程工具,比如IceSword就可以结束除Idle进程、System进程、csrss进程这三个进程外的所有进程,就这一点,其他同类软件就是做不到的。当然有些进程也不是随便可以结束的,如系统的winlogon.exe进程,一旦杀掉后系统就崩溃了,这些也需要注意。


 

实战查杀(以2000系统为例):
引用:
1,工具准备:由于驱动级(Rootkit)木马运行级别的特殊性,在正常模式下无论是木马施放文件还是对于注册表的改动都是无法观测到的,从而达到木马隐藏的目的,要侦测到隐藏的信息,我们需要借用同样内核级的工具-IceSword,其使用了大量新颖的内核技术,使得这些后门无处可躲,具备反隐藏、反保护的功能,基本上所有的木马都可以检测出来。
引用:
通过IceSword进程查看功能即可看到隐藏的木马进程(图中红色显示):

通过IceSword的SSDT(系统服务描述符表)查看功能可查看到隐藏的木马驱动:


2,由于木马进程的保护功能,我们首先需要在IceSword的文件-设置下勾选相关功能,如图所示。

3,设置完毕后结束掉木马进程,利用IceSword注册表编辑功能,分别定位注册表到:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ybfbqufe]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ybfbqufe]
并删除Ybfbqufe主键。

4,利用IceSword文件查看功能,找到以下文件并删除:
%System32%\Ybfbqufe.d1l
%System32%\Ybfbqufe.dll

删除:
%System32%\drivers\Ybfbqufe.sys



5,恢复注册表中的服务改动,分别定位注册表到:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RpcSs\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\RpcSs\Parameters]
将"ServiceDll"="%System32%\Ybfbqufe.d1l"修改为正常的目录文件"ServiceDll"="%System32%\rpcss.d1l"
XP系统需要恢复的注册表为:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmserver\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\dmserver\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\dmserver\Parameters]
正常的目录文件应为"ServiceDll"="%SystemRoot%\System32\dmserver.dll"




6,重启系统后免疫:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule]不存在的话,PcShare服务端就发生异常终止运行(本人未经证实),所以我们只要删除注册表中的[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule]主键就可以达到免疫的效果了。
引用:
总结:
清除此类驱动级木马,关键是对于隐藏进程的查看于结束和注册表服务项的删除,对于被木马篡改的系统服务,在不确定的状况下,建议搜索相关确定信息或找相同系统机器查看再做恢复。
[ 本帖最后由 wenzy0607 于 2006-4-1 13:46 编辑 ]


 
小知识点之Rootlit技术简介:
引用:
如自然界的规则一样,最流行的病毒,对生物的伤害却是最小的,例如一般的感冒,但是最不流行的病毒,却是最夺命的。Rootkit木马就是信息世界里的AIDS,一旦感染,就难以用一般手段消灭了,因为它和自然界里的同类做的事情一样,破坏了系统自身检测的完整性——抛开术语的描述也许难以理解,但是可以配合AIDS的图片想象一下,由于AIDS破坏了人体免疫系统,导致白细胞对它无能为力,只能眼睁睁看着人体机能被慢慢破坏。计算机系统没有免疫功能,但是它提供了对自身环境的相关检测功能——枚举进程、文件列表、级别权限保护等,大部分杀毒软件和进程工具都依赖于系统自带的检测功能才得以运作,而Rootkit木马要破坏的,正是这些功能。
要了解Rootkit木马的原理,就必须从系统原理说起,我们知道,操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面,它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此处理器提供了多个不同的处理环境,把它们称为运行级别(Ring),Ring让程序指令能访问的计算机资源依次逐级递减,目的在于保护计算机遭受意外损害——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而到了外壳部分,它只能拥有Ring 3级别,这个级别能操作的功能极少,几乎所有指令都需要传递给内核来决定能否执行,一旦发现有可能对系统造成破坏的指令传递(例如超越指定范围的内存读写),内核便返回一个“非法越权”标志,发送这个指令的程序就有可能被终止运行,这就是大部分常见的“非法操作”的由来,这样做的目的是为了保护计算机免遭破坏,如果外壳和内核的运行级别一样,用户一个不经意的点击都有可能破坏整个系统。
由于Ring的存在,除了由系统内核加载的程序以外,由外壳调用执行的一般程序都只能运行在Ring 3级别,也就是说,它们的操作指令全部依赖于内核授权的功能,一般的进程查看工具和杀毒软件也不例外,由于这层机制的存在,我们能看到的进程其实是内核“看到”并通过相关接口指令(还记得API吗?)反馈到应用程序的,这样就不可避免的存在一条数据通道,虽然在一般情况下它是难以被篡改的,但是不能避免意外的发生,Rootkit正是“制造”这种意外的程序。简单的说,Rootkit实质是一种“越权执行”的应用程序,它设法让自己达到和内核一样的运行级别,甚至进入内核空间,这样它就拥有了和内核一样的访问权限,因而可以对内核指令进行修改,最常见的是修改内核枚举进程的API,让它们返回的数据始终“遗漏”Rootkit自身进程的信息,一般的进程工具自然就“看”不到Rootkit了。更高级的Rootkit还篡改更多API,这样,用户就看不到进程(进程API被拦截),看不到文件(文件读写API被拦截),看不到被打开的端口(网络组件Sock API被拦截),更拦截不到相关的网络数据包(网络组件NDIS API被拦截)了,幸好网络设备的数据指示不受内核控制,否则恐怕Rootkit要让它也不会亮了才好!我们使用的系统是在内核功能支持下运作的,如果内核变得不可信任了,依赖它运行的程序还能信任吗?但即使是Rootkit这一类恐怖的寄生虫,它们也并非所向无敌的,要知道,既然Rootkit是利用内核和Ring 0配合的欺骗,那么我们同样也能使用可以“越权”的检查程序,绕过API提供的数据,直接从内核领域里读取进程列表,因为所有进程在这里都不可能把自己隐藏,除非它已经不想运行了。也就是说,内核始终拥有最真实的进程列表和主宰权,只要能读取这个原始的进程列表,再和进程API枚举的进程列表对比,便能发现Rootkit进程,由于这类工具也“越权”了,因而对Rootkit进行查杀也就不再是难事,而Rootkit进程一旦被清除,它隐藏自身的措施也就不复存在,内核就能把它“供”出来了,用户会突然发现那个一直“找不到”的Rootkit程序文件已经老实的呆在文件管理器的视图里了。这类工具现在已经很多,例如IceSword、Patchfinder、gdb等.
posted on 2007-12-20 10:20 阅读(638) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。
 
Copyright © 阳 Powered by: 博客园 模板提供:沪江博客