病毒究竟是怎么自动执行的(下)?

上一节,我们学习了病毒是如何跟随系统的启动而启动的。 病毒究竟是怎么自动执行的(上)? 》,今天我们来看一下病毒的另外一种自启动方式:

二、跟随程序的启动而启动

所谓跟随程序的启动而启动,是指当执行某些特定的程序时,病毒会跟随着进行启动。 常见的方式有以下几种:

1、文件关联方式

文件关联就是将一种类型的文件与一个可以打开它的程序建立起一种依存关系。举个例子来说,图片(jpg文件)在Windows中的默认关联程序是“照片”,DOC文件的默认关联程序是WORD。当我们双击DOC文件时,系统会自动调用WORD来打开该文件。

病毒如果修改了文件的关联方式。那么当我们双击执行某一类文件的时候就会自动执行病毒程序。

比如著名的木马冰河,就是修改了TXT文件的关联方式。

冰河的服务器端程序为G-server.exe,客户端程序为G-client.exe,默认连接端口为7626。一旦运行G-server,那么该程序就会在C:/Windows/system目录下生成Kernel32.exe和sysexplr.exe,并删除自身。Kernel32.exe在系统启动时自动加载运行,sysexplr.exe和TXT文件关联。即使你删除了Kernel32.exe,但只要你打开 TXT文件,sysexplr.exe就会被激活,它将再次生成Kernel32.exe,于是冰河又回来了!

修改文件关联方式有以下几种方式:

1)、注册表

执行REGEDIT.EXE程序,打开注册表,找到第一个大项HKEY_CLASSES_ROOT\,在这个里面保存了所有文件的关联方式。以TXT文件为例,在注册表中的位置是:

HKEY_CLASSES_ROOT\txtfile\shell\open\command。默认的值是:%SystemRoot%\system32\NOTEPAD.EXE %1

EXE文件的关联方式是"%1"%*

如果此处的NOTEPAD.EXE被更改为病毒文件,那么每次双击TXT文件,病毒被会被加载。或者EXE的关联方式中被加入病毒文件名和路径,那么执行任何可执行程序都会先执行病毒。

处理的办法当然也一样的,通过查看文件的关联方式就可以知道是不是被病毒所感染,当然也可以在这些修改回正确的,以阻止通过关联方式进行自动加载。

问大家一个问题: 如果EXE文件的关联方式被修改为病毒文件,那么使用杀毒软件将病毒文件删除后,再执行所有的EXE程序都会出错,提示找不到指定的文件(病毒文件),如果你想打开注册表修改EXE文件的关联方式,但是执行REGEDIT.EXE时,系统也会提示错误,这个时候你要怎么操作呢? 请大家在评论区留言。 答案下期公布。

2)、控制面板

打开控制面板,找到应用—>默认应用,就可以设置指定格式文件的关联方式。

点击右侧的图标或者加号,就可以修改或指定格式文件的关联程序。

3)、ASSOC命令

在命令窗口中,输入ASSOC命令,可以查看、修改文件的关联方式。

ASSOC命令的用法如下:

ASSOC [.ext[=[fileType]]]

.ext      指定跟文件类型关联的文件扩展名

fileType  指定跟文件扩展名关联的文件类型

例:

ASSOC                查看所有文件关联

ASSOC  .TXT       查看TXT文件的关联方式

ASSOC  .TXT=     删除TXT文件的关联方式(需要以管理员权限执行)

ASSOC  .TXT=txtfile   重置TXT文件的关联方式(需要以管理员权限执行)

这种方法是木马最常用的一手段之一。

隐藏程度:

应用程度:

2、劫持

所谓劫持,是指你明明执行的是A,打开的却是B,就意味着A被B劫持了,常见的劫持方法有:

1)、浏览器劫持

浏览器劫持是一种恶意程序,通过浏览器插件、BHO(浏览器辅助对象)、Winsock LSP等形式对用户的浏览器进行篡改,使用户的浏览器配置不正常,被强行引导到商业网站、 主页及互联网搜索页变为不知名的网站、经常莫名弹出广告网页输入正常网站地址却连接到其他网站。收藏夹内被自动添加陌生网站地址等等。

说简单一点,就是我们的浏览器被恶意修改了。这是流氓软件最常用的手法,当然有一些貌似正规公司的大公司也经常干这种流氓事。所幸国家已经开始重视,人民日报追踪报道,工信部也明确表示要加强监管,相关公司也表态加强自律。

隐藏程度:

应用程度:

2)映像劫持(有的称之为镜像劫持)

映像劫持,也被称为IFEO,就是Image File Execution Options,是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。位于注册表的“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File ExecutionOptions”这个位置

病毒也会利用这个功能让杀毒软件失效,转而执行病毒程序。如

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\qq.exe]

"Debugger"="E:\\Program Files\\Thunder Network\\Thunder\\Thunder.exe“

那么当用户双击执行QQ.exe时,实际执行的却是迅雷。想象一下,如果我在注册表的迅雷这个地方输入的不是迅雷而是病毒,会是什么后果?如果qq那个地方输入是杀毒软件,迅雷的那个地方是病毒,会是什么后果。每天一开机,本来该启动杀毒软件,结果实际执行的却是病毒。

隐藏程度:

应用程度:

3)其他还有一些劫持技术比如域名劫持、脚本劫持,大家自行了解吧。

3、通过EXPLORER启动

在上一课(《 病毒究竟是怎么自动执行的(上)? 》),我们讲到了explorer.exe程序的作用,也讲到了病毒通过系统启动项让病毒在系统开机时加载的方法,除了开机时加载,病毒还有一些办法在explorer程序加载的时候伴随运行。常见的方法有:

1)通过钩子(HOOK)技术。

钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程序以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。在注册表的这个位置可以定义钩子程序:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks

这是“外壳挂钩程序”,图中正常项对应shell32.dll,包括系统图标、工具栏等界面元素。如果病毒在这里有眼线,它生前一定会随外壳运行,死后也会继续弹框出错。

隐藏程度:

应用程度:

2) 利用ShellServiceObjectDelayLoad键值

ShellServiceObjectDelayLoad是一个未公布的注册表项,可以将组件关联到这个键,这样一来,系统启动时间EXPLORER将自动加载目标组件.这就是某些病毒将自己注射到EXPLORER的办法.我们经常会遇到这样的事情,IeXPLORER的首页设置为BLANK,注册表RUN键的值也为空,但就是每隔一会儿有莫名其妙的网页自动弹出,这就是ShellServiceObjectDelayLoad在搞鬼,AV终结者变种就利用ShellServiceObjectDelayLoad加载注入。

隐藏程度:

应用程度:

3)利用ExplorerAutoRun

该键值可以设置explorer的策略,允许或禁止哪些程序自动运行,所以也会被病毒所利用。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer

比如上图,就设置了禁止除光盘之外的驱动器自动运行。

隐藏程度:

应用程度:

3、感染与捆绑。

这个比较好理解了,对于文件型病毒或者宏病毒,其文件本身被病毒感染,当文件执行时,病毒也会随之执行。

也有的病毒将病毒体与一个好的正常文件捆绑在一起(利用专门的捆绑软件),当用户执行了被捆绑了病毒的文件时,病毒也会随之一起被执行。

隐藏程度:

应用程度:

4、通过打开文件夹

通过文件夹启动是指用户双击打开驱动器或文件夹时,病毒自动执行。常见的方式有两种:

1)、通过autorun.inf

autorun.inf是我们电脑使用中比较常见的文件之一 ,其作用是允许在双击磁盘时自动运行指定的某个文件。这一性能容易被病毒所利用,一些木马通过这种方式让目标程序执行,达到侵入电脑的目的,带来了很大的负面影响。

一个最简单的autorun.inf只需要三句话:

[AutoRun]

Open=Setup.exe

Icon=Setup.Bmp

把这个文件放到文件夹里,当双击打开该文件夹时,就会自动执行setup.exe文件。

隐藏程度:

应用程度:

2)、通过MountPoints2键值

有时候我们会发现,即使驱动器根目录下没有autorun.inf依然会在双击打开驱动器时自动执行某程序,那你就要看看这个键值了。或者有时候我们双击驱动器却进不去的时候,也要注意看看这里,是不是被病毒修改了。该键值是用来管理双击盘符和盘符上的右键菜单的,当然也可以设置成自动打开,这个键值的位置在:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2

打开这个键值,默认情况下里面是没有驱动器信息的。如果你发现有,那就得注意打开看看了。例下图,当双击C盘的时候,就会自动执行setup.exe文件注意这里的CDE盘符是我为了给大家演示自己建的。默认情况下没有,如果中了病毒会自动建立我建的这些项。为了避免被病毒利用,建议利用注册表的权限功能设置禁止所有用户修改该键值。具体怎么设置都不用在这里说了吧?以后讲注册表的时候会说到。

隐藏程度:

应用程度:

以上是病毒通过程序的方式自动加载的一些常见技术,结合上一节所讲的通过系统的方式进行自动加载的一些技术,我们把病毒常见的自动加载方式讲完了,由于windows系统的复杂性,病毒可以利用的地方绝不是只有这么多,欢迎大家在评论区留言补充。

在实际的病毒处理过程中,我们发现病毒也不是仅仅只采用一种技术进行加载,往往是多种技术并用,比如上面所提到的冰河病毒,就是利用系统启动和文件关联两种方式达到自动加载的目的。所以大家在检测的时候一定要仔细,至少把上面讲的一些地方都要看一遍。

至于上面所列的隐藏程度和应用程度的星级,是我根据自己工作中遇到的情况自己定级的,仅供参考。

在下面的专题中我还会和大家一起讨论病毒常用的隐藏技术和自我保护技术。敬请关注……

延伸阅读:

其实,预防勒索病毒没那么复杂!

病毒究竟是怎么自动执行的(上)?

欢迎扫描二维码关注:大兵说安全

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章