病毒木马查杀实战第009篇:QQ盗号木马之手动查杀
前言
之前在《病毒木马查杀第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盗号木马之手动查杀的更多相关文章
- 病毒木马查杀实战第025篇:JS下载者脚本木马的分析与防御
前言 这次我与大家分享的是我所总结的关于JS下载者脚本木马的分析与防御技术.之所以要选择这样的一个题目,是因为在日常的病毒分析工作中,每天都会遇到这类病毒样本,少则几个,多则几十个(当然了,更多的样本 ...
- 病毒木马查杀实战第011篇:QQ盗号木马之专杀工具的编写
前言 由于我已经在<病毒木马查杀第004篇:熊猫烧香之专杀工具的编写>中编写了一个比较通用的专杀工具的框架,而这个框架对于本病毒来说,经过简单修改也是基本适用的,所以本文就不讨论那些重叠的 ...
- 病毒木马查杀实战第010篇:QQ盗号木马之十六进制代码分析
前言 按照我的个人习惯,在运用诸如IDA Pro与OllyDBG对病毒进行逆向分析之前,我都会利用一些自动化的工具,通过静态或动态的分析方法(参见<病毒木马查杀第008篇:熊猫烧香之病毒查杀总结 ...
- 病毒木马查杀实战第012篇:QQ盗号木马之逆向分析
前言 在本系列的文章中,对每一个病毒分析的最后一个部分,若无特殊情况,我都会采用逆向分析的手段来为读者彻底剖析目标病毒.但是之前的"熊猫烧香"病毒,我用了三篇文章的篇幅(每篇250 ...
- 病毒木马查杀实战第020篇:Ring3层主动防御之基本原理
前言 假设说我们的计算机中安装有杀毒软件,那么当我们有意或无意地下载了一个恶意程序后.杀软一般都会弹出一个对话框提示我们,下载的程序非常可能是恶意程序,建议删除之类的.或者杀软就不提示.直接删除了:或 ...
- 病毒木马查杀实战第015篇:U盘病毒之脱壳研究
前言 因为我们的终于目标是编写出针对于这次的U盘病毒的专杀工具.而通过上次的分析我们知道,病毒有可能在不同的计算机中会以不同的名称进行显示.假设真是如此,那么就有必要在此分析出病毒的命名规律等特征,然 ...
- 病毒木马查杀实战第017篇:U盘病毒之专杀工具的编写
前言 经过前几次的讨论,我们对于这次的U盘病毒已经有了一定的了解,那么这次我们就依据病毒的行为特征,来编写针对于这次U盘病毒的专杀工具. 专杀工具功能说明 因为这次是一个U盘病毒,所以我打算把这次的专 ...
- 病毒木马查杀实战第021篇:Ring3层主动防御之编程实现
前言 我们这次会依据上次的内容,编程实现一个Ring3层的简单的主动防御软件.整个程序使用MFC实现,程序开始监控时,会将DLL程序注入到explorer.exe进程中,这样每当有新的进程创建,程序首 ...
- 病毒木马查杀实战第022篇:txt病毒研究
前言 反病毒爱好者们非常喜欢讨论的一个问题就是,现在什么样的病毒才算得上是主流,或者说什么样的病毒才是厉害的病毒呢?我们之前的课程所解说的都是Ring3层的病毒.所以有些朋友可能会觉得.那么Ring0 ...
随机推荐
- HDOJ-3001(TSP+三进制状态压缩)
Traving HDOJ-3001 这题考察的是状态压缩dp和tsp问题的改编 需要和传统tsp问题区分的事,这题每个点最多可以经过两次故状态有3种:0,1,2 这里可以模仿tsp问题的二进制压缩方法 ...
- LeetCode-宝石与石头
宝石与石头 LeetCode-771 使用哈希表. 这里使用内置算法库中的map /** * 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. * S 中每个字符代表了一种你拥有的 ...
- docker nacos 集群部署
1.准备机器3台 192.168.101.14 192.168.101.15 192.168.101.16 2.初始化sql(如果我们要搭建集群的话,那么肯定是不能用内嵌的数据库,不然数据无法共享.集 ...
- android分析之消息处理
前序:每个APP对应一个进程,该进程内有一个ActivityThread的线程,称为主线程(即UI主线程),此外,还有其他线程,这个再论. android的消息系统分析. 每个Thread只对应一个L ...
- CSS浮动布局带来的高度塌陷以及其解决办法
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...
- CSS轮廓和圆角
1 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <meta charset=" ...
- 【LeetCode】52. N-Queens II(位运算)
[题意] 输出N皇后问题的解法个数. [题解] 解法一:传统dfs回溯,模拟Q放置的位置即可,应该不难,虽然能通过,但是时间复杂度很高. 解法二:位运算大法好! 首先要明白这道题里两个核心的位运算 1 ...
- SSM-员工管理项目实战-CRUD-增删改查
SSM-CRUD 一.项目简介 主界面演示 功能点 分页 数据校验 ajax Rest 风格的 URI 技术点 基础框架 - ssm(Spring + SpringMVC + MyBatis) 数据库 ...
- python基础之流程控制(2)
今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环 For 循环 一.为什么有for循环? for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于whi ...
- AppDomain实现【插件式】开发
前言: 近期项目中需要实现"热插拔"式的插件程序,例如:定义一个插件接口:由不同开发人员实现具体的插件功能类库:并最终在应用中调用具体插件功能. 此时需要考虑:插件执行的安全性(隔 ...