病毒木马查杀实战第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 ...
随机推荐
- 《吃透MQ系列》核心基础全在这里了
这是<吃透XXX>技术系列的开篇,这个系列的思路是:先找到每个技术栈最本质的东西,然后以此为出发点,逐渐延伸出其他核心知识.所以,整个系列侧重于思考力的训练,不仅仅是讲清楚 What,而是 ...
- double型数据的输入和输出--%f和%lf
scanf函数是通过指针指向变量的. %f告诉scanf函数在所传地址位置上存储一个float型值, 而%lf告诉scanf函数在所传地址位置上存储一个double型值. 这里float和double ...
- HDOJ-6628(dfs+第k字典序最小差异序列)
permutation 1 HDOJ-6628 这题使用的暴力深搜,在dfs里面直接从最小的差异开始枚举 注意这里的pre记录前一个数,并且最后答案需要减去排列中最小的数再加一 这里有一个技巧关于求第 ...
- 手把手教你Spring Boot2.x整合Elasticsearch(ES)
文末会附上完整的代码包供大家下载参考,码字不易,如果对你有帮助请给个点赞和关注,谢谢! 如果只是想看java对于Elasticsearch的操作可以直接看第四大点 一.docker部署Elastics ...
- 一个把数据转化成Excel导出的程序 python Django
把从数据库查询出来数据导出 源码下载!!!!! 效果图 登入界面 主页面 查询到数据 导出 打开得到文件 项目地址,源码下载
- AtCoder Beginner Contest 192
A Star #include <cstdio> using namespace std; int n; int main() { scanf("%d", &n ...
- [THUPC2019] 找树
一.题目 点此看题 二.解法 这道题很离谱啊,看上去是求一个最大值,其实是把生成树权值为 \(i\) 的个数都给算出来,因为权值很小. 既然是生成树可以考虑矩阵树定理,我们考虑他是求这样一个式子: \ ...
- Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1)
最近项目也和linux kernel技术有关,调试内核和内核模块.修改内核源码,是学习内核的重要技术手段之一.应用这些技术时,都有一本基本的要求,那就是编译内核.因此,在分析内核调试技术之前,本随笔给 ...
- 使用C# (.NET Core) 实现观察者模式 (Observer Pattern) 并介绍 delegate 和 event
观察者模式 这里面综合了几本书的资料. 需求 有这么个项目: 需求是这样的: 一个气象站, 有三个传感器(温度, 湿度, 气压), 有一个WeatherData对象, 它能从气象站获得这三个数据. 还 ...
- 当初自学C++时的笔记记录
编辑:刘风琛 最初编写日期:2020年4月11日下午 最新更新日期:2020年9月20日上午 标注: 从笔记开始截止到程序第四章"程序流程结构",使用Joplin编写,其余部分为T ...