查看: 18047|回复: 67
收起左侧

[原创文章] 找下PowerTool的茬 (2)——使用PT 20秒检测并清除ZeroAccess的不可行性

  [复制链接]
dl123100
发表于 2011-8-20 12:18:08 | 显示全部楼层 |阅读模式
本帖最后由 dl123100 于 2011-9-3 09:54 编辑

    本帖为“找下PowerTool的茬”系列之二。   
    系列之一:http://bbs.kafan.cn/thread-1052303-1-1.html

    ZeroAccess rootkit是最近讨论得比较多的一种恶意软件。它又名max++,ZAccess,得名于rootkit文件内调试信息中的作者命名。它最早于大半年前在国外一些反病毒论坛和技术博客被讨论,近半年前在剑盟的一个关于清理InstallAntiVirus2010的讨论帖里,ZeroAccess首次在国内被关注,那时它已加入了针对检测工具的反制措施。几个月后,卡巴、Prex、安博士、SurfRight等厂商对该rootkit进行了公开报道。
    ZeroAccess rootkit使用了许多技术实现隐藏和反检测,包括驱动reload and run、虚拟盘、NTFS文件压缩、存储栈设备扩展劫持、文件缓存欺骗、直接操作FCB、引诱检测、高级自我保护等。
    看到PowerTool作者在博客发布了名为《20秒检测并清除ZeroAccess/ADS流病毒By PowerTool》的博文,提出了清理该rootkit的简便方便。不过由于作者并未仔细分析该rootkit,导致该教程和PowerTool清理过程中出现很多问题,甚至是安全隐患。结合自己对清理ZeroAccess的体会,对其中的不少细节提出一些质疑。
    这里对清理教程发现的问题做一些探讨。


      1、对ZeroAccess自我保护规避的不彻底。
      PowerTool最新版驱动会在每次分发时恢复ZeroAccess新版对IoIsOperationSynchronous函数的hook,以此来防止访问ZeroAccess的ADS流文件时由于未通过rootkit验证被结束进程并清除文件权限。
      可惜的是,PowerTool这样做并不能完全规避ZeroAccess的自我保护,最新版在很多情况下仍然会出现触发ZeroAccess导致无法正常使用
      试举一例:
      PowerTool在启动时会检测硬盘,可能会发送SMART_RCV_DRIVE_DATA的I/O控制码获取硬盘信息。这一动作会被ZeroAccess在Ata/Scsi/Storport等设备栈最底层微端口设备驱动的hook截获,然后PowerTool会被无情的结束进程并且文件被清除权限。
      如下所示,PowerTool的访问被ZeroAccess的hook截获,PowerTool.exe文件被清除了权限。
1:kd> p
8154fa2e ff156c945581    call    dword ptr ds:[8155946Ch] ds:0023:8155946c={nt!ZwSetSecurityObject (80501fb0)}
1: kd> !handle @ecx
    Image: PowerTool.exe
Object: 8137ba48  Type: (819edad0) File
        Directory Object: 00000000  Name: \Documents and Settings\Administrator\桌面\PowerToolV4.0.2\PowerTool.exe {HarddiskVolume1}
1: kd> lmvm PowerTool        
    Image path: C:\Documents and Settings\Administrator\桌面\PowerToolV4.0.2\PowerTool.exe
    Image name: PowerTool.exe
    Timestamp:        Thu Sep 01 23:22:51 2011 (4E5FA34B)
    ImageSize:        0065F000
      2、教程针对ZeroAccess版本的局限导致清除无效的可能性
      教程提出20秒修复ZeroAccess,最后提出的3步,即恢复hook、清除关机回调和修复感染文件在很多情况下是无法清除ZeroAccess感染文件的
      教程对应的ZeroAccess版本,是一个多星期前的,并没有考虑再这之前以及最新的版本。最近的版本,ZeroAccess自建的微型文件系统的存储文件也已转移。
       QQ截图20110902144635.png
      更重要的是,教程中并没有提到删除ADS流文件以及该文件对应的服务(实际上0.40版删除ADS流文件存在问题),也没有去尝试清除ZeroAccess自建的微型文件系统的存储文件。特别是前者的文件和服务配置信息,不删除可能导致重启重新感染,这点之前的一些教程帖中已有讨论。

        3、教程给出的清理步骤的多余性
      教程提出的三步清理ZeroAccess,除了修复感染文件,其它步骤,单就ZeroAccess系列而言是没有意义的即使不处理,也不会导致本身清理局限性外的修复的问题。由于该教程本身针对的是ZeroAccess的某一版,且有着前面所述的局限性,把删除回调、恢复hook这样常见的杀毒手段放在这是没有必要的。
另外,由于PowerTool对ZeroAccess的hook检测并不全面,包括前面所述的存储栈设备扩展劫持(如下XueTr提示)默认都没有检测,不能作为PowerTool通用清理方法。
       QQ截图20110902145544.png

         4、对进程的枚举和显示。      
       由截图看,PowerTool将进程2571670320:3480008550.exe本身模块显示为隐藏。实际上该模块并不存在隐藏,使用其它Ring3工具都能正常枚举出模块,除了读取文件本身可能存在困难。
       QQ截图20110902142737.png                
       QQ截图20110902143017.png

         5、对进程文件的删除。
       教程中并没有提到3480008550.exe对应进程的结束以及该文件的删除。
       实际使用PowerTool删除3480008550.exe这一文件后,再次刷新进程管理,会将该进程路径名显示为C:。
       QQ截图20110902150051.png
       此时使用结束进程并删除文件功能,PowerTool会将该路径传入,删除整个C盘时自然导致系统死锁或者蓝屏崩溃,影响系统安全性。
       一个典型的崩溃dump如下,这里PowerTool附加到explorer.exe关闭了不该关的句柄:
*******************************************************************************
*                                                                                                                           *
*                        Bugcheck Analysis                                                                            *
*                                                                                                                            *
*******************************************************************************

INVALID_KERNEL_HANDLE (93)
This message occurs if kernel code (server, redirector, other driver, etc.)
attempts to close a handle that is not a valid handle.
Arguments:
Arg1: 00000208, The handle that NtClose was called with.
Arg2: 00000001, means an invalid handle was closed.
Arg3: 00000000
Arg4: 00000000

PROCESS_NAME:  explorer.exe
STACK_TEXT:  
f088900c 804f9df9 00000003 f0889368 00000000 nt!RtlpBreakWithStatusInstruction
f0889058 804fa9e4 00000003 e186e008 81529af0 nt!KiBugCheckDebugBreak+0x19
f0889438 804faf33 00000093 00000208 00000001 nt!KeBugCheck2+0x574
f0889458 805bd4bd 00000093 00000208 00000001 nt!KeBugCheckEx+0x1b
f088949c 805bd509 00000208 00000000 00000000 nt!ObpCloseHandle+0x173
f08894b0 8054261c 00000208 f088957c 80500f31 nt!NtClose+0x1d
f08894b0 80500f31 00000208 f088957c 80500f31 nt!KiFastCallEntry+0xfc
f088952c f069f208 00000208 0100001e 813978f0 nt!ZwClose+0x11
WARNING: Stack unwind information not available. Following frames may be wrong.
f088957c f06b0a09 8158a378 f0889a80 00e37b61 kEvP+0x5208
f0889abc f06ba16f 8148e778 81677378 00e37d9d kEvP+0x16a09
f0889c40 804f018f 8148e778 81677378 806e7410 kEvP+0x2016f
f0889c50 80580982 816773e8 8162c7a0 81677378 nt!IopfCallDriver+0x31
f0889c64 805817f7 8148e778 81677378 8162c7a0 nt!IopSynchronousServiceTail+0x70
f0889d00 8057a274 000000d4 00000000 00000000 nt!IopXxxControlFile+0x5c5
f0889d34 8054261c 000000d4 00000000 00000000 nt!NtDeviceIoControlFile+0x2a
f0889d34 7c92e4f4 000000d4 00000000 00000000 nt!KiFastCallEntry+0xfc
00129360 00000000 00000000 00000000 00000000 ntdll!KiFastSystemCallRet
FOLLOWUP_IP:
kEvP+5208
f069f208 8b4508          mov     eax,dword ptr [ebp+8]

       6、“跟踪硬盘读写过程”的不全面
        ZeroAccess会对DR0设备的设备扩展进行修改,这种方式绕过了常规的hook检测。PowerTool最新版的检测MBR功能会受此影响,导致显示“无法读取MBR信息(内核)”。
         QQ截图20110902150714.png
       教程分析中提到了通过“跟踪硬盘读写过程”检测可能更改。“跟踪硬盘读写过程”类似avast出品aswMBR工具的Disk IO Trace功能。PowerTool另可以通过这一功能恢复上面的劫持。不过这一功能仍然存在问题,无法突出高亮显示ZeroAccess的另一处hook,正是该处hook导致了之前PowerTool最新仍然可能触发ZeroAccess自保。
         QQ截图20110902151748.png

       7、总结
        《20秒检测并清除ZeroAccess/ADS流病毒By PowerTool》一文,其中的分析、给出的方法和实际配合PowerTool清理ZeroAccess的效果都存在不少问题,甚至是安全隐患。这里提出其中一些问题,供大家参考,希望对手工清除ZeroAccess有所帮助。













评分

参与人数 7人气 +7 收起 理由
zby_1991 + 1 膜拜大牛
FreeEquFraT + 1 膜拜一下
知微 + 1 感谢解答: )
hx1997 + 1 技术贴
liulangzhecgr + 1

查看全部评分

dl123100
 楼主| 发表于 2011-9-1 23:18:56 | 显示全部楼层
本帖最后由 dl123100 于 2011-9-8 21:21 编辑

1、这里给出一个结束ZeroAccess常见进程的方法。
下载附件中的NtBrain,运行后选中对应进程,对该进程唯一线程右键选择“Wait Object”。
QQ截图20110902155217.png
然后右键选择第一项“Unwait Thread [Without Notify]”即可。
QQ截图20110902155529.png
NtBrain官网:http://sites.google.com/site/metratonrk/

2、Prex推出了ZeroAccess专杀AntiZeroAccess,可以安全、快速处理该rootkit,不需要20秒。
http://anywhere.webrootcloudav.com/antizeroaccess.exe

3、ZeroAccess的缓存欺骗
ZeroAccess通过缓存欺骗,强行将驱动未感染时在内存中映射的部分刷入缓存,正常访问都会读取到这份缓存,而不是被感染的驱动。
PowerTool通过不同方式读取读取,由正常方式读取未感染的驱动,与底层方式读取的驱动比对,作为判断感染驱动的一个标准。修复则将正常方式读取到的缓存驱动去替换感染驱动。


NTBrain.7z

427.42 KB, 下载次数: 309

评分

参与人数 3人气 +3 收起 理由
neversayno0000 + 1 DL大牛
单身熟男 + 1 大牛出招了
jefffire + 1 赞一个!

查看全部评分

雨宫优子
发表于 2011-9-1 23:33:29 | 显示全部楼层
本帖最后由 雨宫优子 于 2011-9-1 23:34 编辑

...撒个花........

没有截断楼层吧?

评分

参与人数 1人气 +1 收起 理由
dl123100 + 1 前排RQ

查看全部评分

dl123100
 楼主| 发表于 2011-9-2 11:13:49 | 显示全部楼层
雨宫优子 发表于 2011-9-1 23:33
...撒个花........

没有截断楼层吧?

一般习惯把3楼也占了。
另外昨天新版还没有发布,这里是针对教程操作步骤和截图提出的问题。等会看下新版。

评分

参与人数 1人气 +1 收起 理由
evilrabbit + 1 亲一个

查看全部评分

jefffire
头像被屏蔽
发表于 2011-9-2 11:28:18 | 显示全部楼层
本帖最后由 jefffire 于 2011-9-2 16:07 编辑

支持dl揭开问题

评分

参与人数 2人气 +2 收起 理由
evilrabbit + 1 球合体
dl123100 + 1 前排RQ

查看全部评分

单身熟男 该用户已被删除
发表于 2011-9-2 16:24:12 | 显示全部楼层
看完之后有种听了一场交响乐的感觉——感觉很好,但是没有听懂--!

评分

参与人数 1人气 +1 收起 理由
dl123100 + 1 前排RQ

查看全部评分

sanhu35
发表于 2011-9-2 16:27:41 | 显示全部楼层
貌似都是强人
ithurricane
发表于 2011-9-2 16:30:21 | 显示全部楼层
本帖最后由 ithurricane 于 2011-9-3 13:15 编辑

先多谢dl牛的分析和意见,

不过按照我的教程,绝对不会有dl牛说的安全隐患。。。


dl牛去结束删除ADS流文件后的进程,可是我的教程上面并没有这个步骤,
按照我的步骤是可以清除上周的ZeroAcess的,
不过可能有了新的变种,我也会继续跟进的


不管怎么说,感谢dl牛的技术分析


不过对于PT的使用,按照正确的步骤,是可以对抗的。。。
清幻梦沁
头像被屏蔽
发表于 2011-9-2 16:30:59 | 显示全部楼层
小白来拜膜下。
表示R3都玩不转
Deker
发表于 2011-9-2 16:32:31 | 显示全部楼层
本帖最后由 Deker 于 2011-9-2 16:59 编辑

顶一下,技术帖,我也不针对任何工具
目前XueTr对这个病毒的处理也做的很不够,对某版本ZeroAccess处理的还没PT给力。。。。

其实早在半年前,dl123100就在陆陆续续跟我说这个病毒使用的技术了,也一直在跟我说这个病毒清除方法(甚至都无私的把他写的清理代码给我,含TDSS相关清理代码),不过由于种种原因,多次辜负了dl123100大牛的好意,在这里说声抱歉,好像我的内心深处不想把ARK工具做成某病毒的专杀了

评分

参与人数 4人气 +4 收起 理由
evilrabbit + 1 亲一个
liulangzhecgr + 1 支持!
neversayno0000 + 1 头一次见linxer
知微 + 1 难得看见linxer了

查看全部评分

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-5 07:12 , Processed in 0.133096 second(s), 20 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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