前言

之前在《病毒木马查杀第002篇:熊猫烧香之手动查杀》中,我在不借助任何工具的情况下,基本实现了对于“熊猫烧香”病毒的查杀。但是毕竟“熊猫烧香”是一款比较简单的病毒,它并没有采取一些特别强的自我保护技术,所以我们完全可以“徒手”解决。但是这次研究的恶意程序就没那么简单,它采取了进程保护的技术,使得我们不能够使用常规手法对其实现查杀。所以这次我引入了两个工具——icesword与autoruns,以达到查杀的目的。

病毒的基本信息

这次研究的是一个QQ盗号木马程序,为了避免不必要的麻烦,在此我依旧不提供病毒样本,其基本信息如下:

文件名称:OSO.exe

MD5:0a2ba47887c20abbb42d0a1dd436d9b4

Sha-1:f2164baba4634eddc7f2f69acf4a1e6225624786

文件大小:95KB

大家在网上搜索到的病毒样本可能与我的不同,但是基本上都是大同小异的,查杀的核心思想还是一样的。在文章中我会尽可能细致地进行讲解,使得大家仅仅是看这篇文章,就能够收获不少。

这里我将病毒样本以及icesword与autoruns拷贝到之前配置好的虚拟机中(注意要备份),如图所示:

图1 配置实验环境

病毒查杀

在病毒运行前不妨先查看一下任务管理器:

图2 病毒运行前的任务管理器

在图2中可以看到,在病毒运行前,系统中一共包含有19个进程,那么现在我们运行一下病毒程序,再查看一下任务管理器:

图3 运行病毒后的任务管理器

对比图2和图3可以发现,我们的进程中多出了三个进程,分别是severe.exe、conime.exe与tfidma.exe。那么这三个进程当然要列为重点怀疑对象。需要说明的是,对于conime.exe来说,正常来讲,它是一个重要的系统进程,它不会随系统的启动而自动启动,只会在启动命令行(cmd)才会启动,但如果删除或者终止将导致特殊文字的输入困难,另外微软新版系统中此进程不会运行。而这里我们的病毒则是伪造了这个进程。

不妨试一下在任务管理器中直接关闭这三个进程。在第一个severe.exe上单击鼠标右键,选择“结束进程”(或“结束进程树”),在弹出的对话框中选择“确定”。此时进程确实可以关闭,但是很快就又自动运行了。很明显,这三个病毒进程之间会相互保护,关闭了其中的一个,那么由于另外两个依旧存在,所以无法关闭,从而实现了进程的保护。正是因为这个问题的存在,因此常规的方法已经不再奏效,那么就必须要借助于专业查杀工具了。这里我使用的是icesword这款工具。

不过问题又来了,双击已经拷贝到桌面上的icesword这个程序,竟然并没有实现启动。那么可以认为,病毒是将这个程序给屏蔽掉了,毕竟这款软件实在是太出名,因此稍微有点自我保护意识的病毒程序都会屏蔽这款软件,而屏蔽的最简单的方式就是通过文件名称。所以,不妨将“icesword.exe”改名为“冰刃.exe”来尝试一下:

图4 将icesword.exe改名后再打开

可见此时已经可以正常打开了。那么用冰刃查看一下当前进程:

图5 利用“冰刃”查看当前进程

由进程的图标也能够看到当前可疑的进程一共是三个(不是“记事本”程序,却用着“记事本”程序的图标)。我们也能够清晰地看到病毒文件的路径。为了能够同时删除这三个进程,我们可以单击“冰刃”菜单栏中的“文件”,选择“创建进程规则”,在弹出的对话框中选择“添加规则”。在弹出的“添加进程规则”对话框中的“动作”中选择“禁止”,在“子进程”中的“文件名”中,分三次输入三个病毒程序的进程名称,最后单击“确定”:

图6 添加进程规则

将三个进程名都添加进进程规则后,我们在“冰刃”中就能够顺利结束这三个进程了。接下来我们需要删除病毒的启动项,这里我们打开autoruns这个软件:

图7 使用autoruns查看启动项

在初始界面的“Everything”选项卡下面,很容易就发现了两个可疑启动项,因为它们作为可执行程序,使用了“记事本”图标,没有“Description”也没有“Publisher”。当然,即便是有这两项,它本身也可能是病毒。而且它俩的生成时间也比较新,那么就有必要在这里删除这两个启动项了。选中欲删除的启动项,然后按下“Delete”键即可。接下来看一下非常重要的“Image Hijacks”标签:

图8 查看映像劫持

Autoruns在这里已经列出了所有的映像劫持项,可见IceSword.exe也在其中,它被劫持为执行adamrf.exe程序,这也就解释了为什么“冰刃”之前无法启动。病毒同时也劫持了主流的杀毒软件等程序。这里我们同样可以利用“Delete”键对这些劫持进行删除。当然我们也可以再查看一下诸如“Winlogon”,“Scheduled Tasks”等选项卡下的内容,从而更全面地查杀。因为不是重点,这里不进行讨论。

最后的工作就是删除病毒的本体,它与之前论述的“熊猫烧香”手动查杀的方式是基本一致的,这里不再赘述。

小结

其实该病毒还有很多的隐藏项,因为不是重点,所以也就不进行过多的讨论。本文主要讲解了icesword和autoruns在病毒查杀中的基本用法,希望大家能够掌握,毕竟它们都是我们在手动查杀病毒时候的利器。

病毒木马查杀实战第009篇:QQ盗号木马之手动查杀的更多相关文章

  1. 病毒木马查杀实战第025篇:JS下载者脚本木马的分析与防御

    前言 这次我与大家分享的是我所总结的关于JS下载者脚本木马的分析与防御技术.之所以要选择这样的一个题目,是因为在日常的病毒分析工作中,每天都会遇到这类病毒样本,少则几个,多则几十个(当然了,更多的样本 ...

  2. 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写

    前言 由于我已经在<病毒木马查杀第004篇:熊猫烧香之专杀工具的编写>中编写了一个比较通用的专杀工具的框架,而这个框架对于本病毒来说,经过简单修改也是基本适用的,所以本文就不讨论那些重叠的 ...

  3. 病毒木马查杀实战第010篇:QQ盗号木马之十六进制代码分析

    前言 按照我的个人习惯,在运用诸如IDA Pro与OllyDBG对病毒进行逆向分析之前,我都会利用一些自动化的工具,通过静态或动态的分析方法(参见<病毒木马查杀第008篇:熊猫烧香之病毒查杀总结 ...

  4. 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析

    前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...

  5. 病毒木马查杀实战第020篇:Ring3层主动防御之基本原理

    前言 假设说我们的计算机中安装有杀毒软件,那么当我们有意或无意地下载了一个恶意程序后.杀软一般都会弹出一个对话框提示我们,下载的程序非常可能是恶意程序,建议删除之类的.或者杀软就不提示.直接删除了:或 ...

  6. 病毒木马查杀实战第015篇:U盘病毒之脱壳研究

    前言 因为我们的终于目标是编写出针对于这次的U盘病毒的专杀工具.而通过上次的分析我们知道,病毒有可能在不同的计算机中会以不同的名称进行显示.假设真是如此,那么就有必要在此分析出病毒的命名规律等特征,然 ...

  7. 病毒木马查杀实战第017篇:U盘病毒之专杀工具的编写

    前言 经过前几次的讨论,我们对于这次的U盘病毒已经有了一定的了解,那么这次我们就依据病毒的行为特征,来编写针对于这次U盘病毒的专杀工具. 专杀工具功能说明 因为这次是一个U盘病毒,所以我打算把这次的专 ...

  8. 病毒木马查杀实战第021篇:Ring3层主动防御之编程实现

    前言 我们这次会依据上次的内容,编程实现一个Ring3层的简单的主动防御软件.整个程序使用MFC实现,程序开始监控时,会将DLL程序注入到explorer.exe进程中,这样每当有新的进程创建,程序首 ...

  9. 病毒木马查杀实战第022篇:txt病毒研究

    前言 反病毒爱好者们非常喜欢讨论的一个问题就是,现在什么样的病毒才算得上是主流,或者说什么样的病毒才是厉害的病毒呢?我们之前的课程所解说的都是Ring3层的病毒.所以有些朋友可能会觉得.那么Ring0 ...

随机推荐

  1. 封装fetch请求失败和超时再次请求

    转: 封装fetch请求失败和超时再次请求 function _fetch(fetch_promise, timeout) { var abort_fn = null; //这是一个可以被reject ...

  2. Fastjson <=1.2.24-反序列化-任意命令执行

    漏洞分析 https://www.secpulse.com/archives/72391.html 复现参考 https://www.cnblogs.com/hack404/p/11980791.ht ...

  3. 通达OA 任意文件上传-2013/2015版本

    参考 http://wiki.0-sec.org/0day/%E9%80%9A%E8%BE%BEoa/11.html 影响版本 2013版本 2015版本 漏洞文件 general/vmeet/wbU ...

  4. Protobuf在Cmake中的正确使用

    Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式.例如,在深度学习中常用的ONNX交换模型就是使用.pr ...

  5. Netty源码 新连接处理

    上文我们阐述了Netty的Reactor模型.在Reactor模型的第二阶段,Netty会处理各种io事件.对于客户端的各种请求就是在这个阶段去处理的.本文便来分析一个新的连接是如何被处理的. 代码的 ...

  6. 分布式基础理论之CAP 和BASE

    前言 本文聊聊 CAP 定理和 BASE 理论. CAP 定理 C:一致性(Consistency) 数据的强一致性.希望分布式系统只读到最新写入的数据 A:可用性(Availability) 分布式 ...

  7. FreeBSD jail 折腾记(二)

    FreeBSD jail 折腾记(二) 创建jail目录 创建4个 分别是模板 骨架 数据 项目 创建模板目录 mkdir -p /jail/j1 # 然后放入基本目录,上篇说过不再写 创建骨架目录 ...

  8. Servlet原理解析&使用指南

    Servlet(Server Applet)全称Java Servlet,是用Java编写的服务器端程序.广义上指任何实现了Server接口的类,主要功能在于交互式地浏览和生成数据,生成动态Web内容 ...

  9. 你真的懂 i++ 和 ++i 吗?

    对于 ++i 和 i++,许多人可能都知道,不就是先加1再取值,和先取值再加1嘛.然而,真的是这样吗?请先看以下4道题,能全部答对可以忽略这篇文章. 题目 // 示例1 int i = 1; i = ...

  10. Genymotion下载模拟器慢

    •问题来源 Genymotion 是个很不错的 Android 模拟器,系统更新快,启动速度快: 但是服务器在国外,Android 镜像下载起来那个速度就不敢恭维了: 当然如果你可以[科学,上网]就另 ...