在U盘中发现病毒

前段时间需要往虚拟机中拷贝点资料,如同往常一样,插上我的U盘,并且在虚拟机的设置中选择连接U盘。奇怪的是这次的连接时间较以往长,并且还出现了“自动播放”窗口:

图1 自动播放窗口

在扫描完后,来到了U盘的打开类型选择窗口:

图2

以前我在虚拟机中使用U盘,都没有出现过“自动播放”的情况。尽管如此,我这次也没在意,选择了“打开文件夹以查看文件”。但是在U盘中却发现了奇怪的文件:

图3

上图的红框中的这几个文件,之所以说很奇怪,是因为它们都是使用了文件夹的图标,貌似是一个文件夹,但是在文件名称的后面却跟着一个“.exe”的小尾巴。诚然,我的U盘中本来确实有这四个文件夹,但是我不记得给他们加上了“.exe”这样的小尾巴。而不带小尾巴的真实的文件夹却找不到了。这就让我很是怀疑,于是分别查看这几个文件的属性:

图4

可见这四个并不是文件夹,而是不折不扣的应用程序,并且它们的大小还都是一致的。看到这里,就可以基本确定了,我的U盘是中了病毒了。

尝试手动消灭病毒

初步分析,这个病毒会将自身伪装成我的U盘中本来存在的文件夹,从而诱惑我去点击。那么原始的文件夹是被删除了还是被隐藏了呢?不妨在设置里面调整一下:

图5

然后就能够看到隐藏的文件与文件夹了:

图6

在上图中,红色框中的就是病毒程序,蓝色框中的就是我的原始文件夹。可见它们只是被设置成了隐藏,而没有被删除,看来病毒还是比较人性化的。通过设置,除了显示出了我本来的文件夹外。上图的第三行第四列出现了一个名为autorun.inf的文件,而第四行第四列出现了一个同样是文件夹的图标,名为Recycle.exe的文件,看来这个文件很可能与下面的四个文件也是一伙的。打开autorun.inf,看看它的内容是什么:

[AutoRun]

open=Recycle.exe

shell\1=打开(&O)

shell\1\Command=Recycle.exe

shell\2=浏览(&B)

shell\2\Command=Recycle.exe

shellexecute=Recycle.exe

很明显,每次U盘自动播放,都会运行Recycle.exe这个程序。那么现在可以尝试一下,将autorun.inf、Recycle.exe以及另外四个病毒文件删除掉,然后拔出U盘,之后在虚拟机中重新连接U盘。本以为病毒就不会再出现了,但是“自动播放”对话框再次出现,打开U盘,本来被删除的病毒再次顽强地回来了。这只能说明,病毒对于我们的操作系统也产生了影响,应当分析一下病毒对于系统的改动情况。

为了简单起见,这次不妨使用“火眼”帮我们进行分析。主要看一下它对注册表的修改情况以及看看它将自身隐藏在了什么位置:

图7 注册表监控

看来病毒在Run下创建了自启动项目。不过我的虚拟机中的Run下面的病毒名称和“火眼”提供的名称不一样,看来病毒可能是随机地对自身进行了命名操作,那么这里需要将这个位置删除掉。再看一下文件的监控:

图8 文件监控

同样的,在我的虚拟机系统中的病毒文件名称和上图中的名称也是不一致的,不过没关系,毕竟也是定位到了。但是首先应当利用任务管理器将病毒进程结束掉,然后再删除病毒本体:

这样一来,我们就成功地通过纯手动的方式,解决掉了这个病毒。

补充说明两个知识

最后还有两个问题需要补充说明。第一个问题是需要给大家讲解一下“自动播放”。事实上,U盘病毒传播技术的原理是病毒首先打开U盘的自动播放功能,然后向U盘写入病毒程序和autorun.inf文件,autorun.inf文件记录了用户选择何种程序来打开U盘的文件。如果autorun.inf指向了病毒程序,那么Windows就会运行这个程序,从而引发病毒。U盘自动播放功能的设置,是在注册表的

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer这个路径下面的“NoDriveTypeAutoRun”键值的位置。对于XP系统来说,这个值默认为0x91:

图10

这个0x91代表的是所有被禁止自动运行的设备值的总和。将0x91转换为二进制数就是10010001,其中每一位代表一个设备,在Windows系统中,不同设备会用下表中的不同数值进行表示:

上表中,数值为“0”表示设备运行,“1”表示设备不运行。可以发现,默认情况下,Windows禁止80H、10H以及01H这些设备自动运行,这些数值累加起来,正好就是16进制的91。从这个角度来说,由于U盘的的设备值为04H,那么事实上只要我们将“NoDriveTypeAutoRun”的键值设置为0x91+0x04,也就是0x95,就可以禁止U盘的自动播放功能了。

第二个需要说明的问题是,我之所以能够发现病毒文件,主要还是因为病毒名称的后面带了一个“.exe”的小尾巴。事实上,我们是可以通过设置来让文件的扩展名始终无法显示的。在注册表中找到

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt中的UnCheckedValue项,将它的值设为1,那么无论在“文件夹选项”中如何更改,文件扩展名都是无法显示的。相信如果病毒的作者知道这一点并且运用在这个病毒身上,那么我一会中招的。

小结

我个人觉得,只要我们平时养成危机意识,那么即便我们的计算机中没有安装任何杀毒软件,病毒也是难有可乘之机的。当然我在这里还是建议大家,最好还是安装杀毒软件,并且及时更新病毒库,不要给恶意程序任何机会。

病毒木马查杀实战第014篇:U盘病毒之手动查杀的更多相关文章

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

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

  2. 病毒木马查杀实战第024篇:MBR病毒之编程解析引导区

    前言 通过之前的学习,相信大家已经对磁盘的引导区有了充分的认识.但是我们之前的学习都是利用现成的工具来对引导区进行解析的,而对于一名反病毒工程师而言,不单单需要有扎实的逆向分析功底,同时也需要有很强的 ...

  3. 病毒木马查杀实战第023篇:MBR病毒之引导区的解析

    前言 引导型病毒指寄生在磁盘引导区或主引导区的计算机病毒.这种病毒利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中入侵系统,驻留内存,监视系统运行,伺机传染和破坏.按照引导 ...

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

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

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

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

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

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

  7. 病毒木马查杀实战第009篇:QQ盗号木马之手动查杀

    前言 之前在<病毒木马查杀第002篇:熊猫烧香之手动查杀>中,我在不借助任何工具的情况下,基本实现了对于"熊猫烧香"病毒的查杀.但是毕竟"熊猫烧香" ...

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

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

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

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

随机推荐

  1. git仓库创建及基本使用

    创建git用户 useradd git passwd git 创建目录 mkdir /home/git/repos/app.git/ -p 初始化目录 cd /home/git/repos/app.g ...

  2. Linux Kernel 0.12 启动简介,调试记录(Ubuntu1804, Bochs, gdb)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  3. AI人脸匹对

    人脸匹对 技术 调用到百度的AI接口,layui的图片上传,栅格化布局 核心代码 纯py代码运行 # encoding:utf-8 from aip import AipFace import bas ...

  4. SpringBoot启动流程原理解析(二)

    在上一章我们分析了SpingBoot启动流程中实例化SpingApplication的过程. return new SpringApplication(primarySources).run(args ...

  5. FreeBSD 入门 哲学与玄学

    『哲学与玄学』 FreeBSD 是一种 UNIX 哲学(如模块化,一切皆文件等,见< UNIX 编程艺术>❩的发展,也是学院派的代表作品.她是一套工具集,她存在目的是为了让人们更好的生活. ...

  6. flutter简易教程

    跟Java等很多语言不同的是,Dart没有public protected private等关键字,如果某个变量以下划线 _ 开头,代表这个变量在库中是私有的.Dart中变量可以以字母或下划线开头,后 ...

  7. 周期串(JAVA语言)

    package 第三章习题; /*  * 如果一个字符可以由某个长度为k的字符串重复多次得到,则称该串以k为周期.  * 例如:abcabcabcabc 以3为周期(注意:它也以6和12为周期)  * ...

  8. 【JVM进阶之路】一:Java虚拟机概览

    1.Java简史 Java语言是一门通用的.面向对象的.支持并发的程序语言.全球从事Java相关开发的人员已经数以百万计. 从1995年"Java"正式出现以来,Java已经经历了 ...

  9. python中zip函数的使用

    zip(*iterables) zip可以将多个可迭代对象组合成一个迭代器对象,通过迭代取值,可以得到n个长度为m的元组.其中n为长度最短可迭代对象的元素个数,m为可迭代对象的个数.并且每个元组的第i ...

  10. 获取执行计划之Autotrace

    Autotrace 简介 AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计. AUTOTRACE的好处是您不必设置跟踪文件的格式,并且 ...