电脑病毒一旦入侵到我们的电脑中,需要加载才能造成破坏,因为一个没有加载启动的病毒是没有什么危害的。那么,病毒在进入电脑系统之后,不通过用户双击,会有怎样的办法让自己自动加载执行呢?
我们今天就来看一下病毒为了能让自己可以自动加载,一般都会利用哪些方法。了解了病毒自动加载启动,小伙伴们就能够掌握如何发现和清除病毒。
一般来说病毒的自动加载技术主要是有两种方式:
1、跟随系统的启动而加载。
2、跟随程序的启动而加载。
我们详细来看一下:
恶意程序跟随系统自动启动的主要途径有:
1、autoexec.bat
可能很多人都不认识这个文件了。在DOS时代这可是系统启动最基本的三个文件之一(你们还知道另外两个是什么吗?答案见本文最后),这是系统启动的批命令文件,在Win9x时代,它仍然是重要的启动文件之一。从windows ME时代开始就基本没什么用了,在基于NT内核的现代Windows中,它仍然存在,但是只剩下了兼容意义已经没有作用,可以删除。
现在的恶意程序也不会通过这里自启动了,这一项可以忽略了。
2、win.ini
win.ini,是Windows系统的一个基本系统配置文件。WIN.INI文件包含若干小节,每一节由一组相关的设定组成。文件配保存了诸如影响Windows操作环境的部分、控制系统界面显示形式及窗口和鼠标器的位置、联结特定的文件类型与相应的应用程序、列出有关HELP窗口及对话窗的默认尺寸、布局、文本颜色设置等等的选项。是系统配置不可缺少的文件。
这个文件从WINDOWS 3.X系统中出现的一个配置文件,从windows 95开始其功能慢慢转移到了注册表中。现在的系统中还有这个文件,默认在c:windows目录下,但也仅限于同16位系统的兼容,基本没什么用了。
在原来的WIN.ini文件中,有一个windows字节:
[windows]
LOAD=
RUN=
如果需要开机启动,则在LOAD=和RUN=后面加上要启动的程序名即可。到注册表时代后,这两个位置都移到了注册表中。
3、LOAD
原来在win.ini中的LOAD键值在windows 9x后被移入注册表。
对应的注册表位置(win10以前版本):
HKEY_CURRENT_USERSoftwareMicrosoftWindowsNT CurrentVersionWindowsload
如下图,病毒将自身加载到LOAD中自动启动:
进入WIN10之后,注册表中这一项也取消了。
隐藏程度:★★★
应用程度:★★★
4、RUN
原来在win.ini中的RUN键值在windows 9x后被移入注册表。
注册表中对应位置:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce
HKEY_LOCAL_macHINESOFTWAREMicrosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce
这是绝大多数恶意程序自启动常用的位置。
隐藏程度:★★★
应用程度:★★★★★
5、开机启动菜单
windows开始菜单——>启动。正常情况下,我们会把想要开机启动的程序放在这里。
在win10中启动菜单取消了,但并不代表没有这一项了。在运行中输入shell:startup,就可以直接打开启动菜单目录了。把想要启动的程序(如恶意程序)放入该目录,就会在开机时自动执行。
但是这里过于明显,很容易被发现,并不是病毒最理想的藏身地,所以实际工作很少有病毒藏身在这里,但也是我们检查时候也必须要检查到。
隐藏程度:★
应用程度:★
6、system.ini
system.ini这个INI文件定义了有关WINDOWS系统所需的模块,相关的键盘、鼠标、显卡、多媒体的驱动程序、标准字体、和shell程序,这里定义的程序在启动WINDOWS时都要被加载,因此是不可缺少的。同win.ini文件一样,现在这个文件也基本上不用了,所有内容都转移到了注册表中,目前之所以还能看到,只是为了向下兼容,默认在c:windows目录下。
该文件的[Boot]域中有一个值:
Shell=Explorer.exe
Shell外壳指的是可视化的用户资源管理界面,默认值Explorer.exe,即显示资源管理器、“我的电脑”、文件夹、桌面、开始菜单、任务栏、托盘的程序。恶意程序可能会修改该值或者在其后添加其他程序的路径,即使在安全模式也会启动。比如著名的尼姆达病毒,感染后该键值就会被改为:
Shell=explorer.exe admin.exe -double
自从2000和XP以后的操作版本中,该值被移入注册表。
7、shell外壳程序
shell外壳程序设置原来在system.ini文件中,自从2000和XP以后的操作版本中,该值被移入注册表:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsNT CurrentVersionWinlogonshell=
当我们从任务管理器结束Explorer.exe,或者使用杀毒软件扫描病毒后,可看到桌面只剩一张壁纸,文件夹界面全体消失,应用程序窗口仍在。如果开机进入桌面后出现这种情况,说明Explorer.exe程序被修改了或在注册表此项被阻止启动了。这时先可试着从资源管理器运行explorer,不行的话从别人电脑里拷贝explorer.exe到Windows文件夹覆盖,同时还要进入这里查看Shell的默认值Explorer.exe有没有被篡改,后面有没有被加上“尾巴”即病毒附着在Explorer.exe上面的加载项。
隐藏程度:★★★★
应用程度:★★★
8、系统服务
系统服务(system services)是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。
系统服务一般在后台运行。与用户运行的程序相比,服务不会出现程序窗口或对话框,只有在任务管理器中才能观察到它们的身影,系统服务和普通的应用程序有一个根本的区别:Service程序可以在无用户登录和用户已经注销的情况下运行,而应用程序在没有用户注销的时候是会被终止的。
可以在计算机管理—>服务中查看系统服务,或者在运行中执行services.msc命令查看。
系统服务的级别较应用程序高,不容易被杀毒软件杀掉,所以病毒往往会通过注册为系统服务或者驱动的方式来达到自我保护的目的(后来讲到病毒的自我保护技术的时候会提到)。
隐藏程度:★★★★
应用程度:★★★
9、userinit.exe
当“欢迎使用”或“正在加载个人配置”的窗口飘过后,我们打开任务管理器,可以看到这个Userinit.exe进程逗留了很久方才退出,它就是用户个人配置初始化程序。其默认值是C:WINDOWSsystem32\userinit.exe,如果这项被修改,加载个人配置时就会出现问题,比如出现反复注销进不去系统的情况;如果被改成病毒程序,后果不堪设想。
userinit.exe执行较早,用于启动services.exe(服务控制管理器)、lsass.exe(本地安全授权)、lsm.exe(本地会话管理器),对于一些以系统服务或驱动等方式进行加载的病毒,普通的杀毒软件是无法清除的。这个时候就要使用这种方式进行清除了。
跟这个文件相对应的还有一个INI文件:userinit.ini,这是一个比较奇怪的配置文件,他在系统中只存在一次,Windows 在重启时 ,将在 Windows 目录下搜索 Wininit.ini 文件,如果找到,就遵照该文件指 令删除、改名、更新文件,完成任务后 ,将删除 Wininit.ini 文件本身,继续启动。所以 Wininit.ini 文件中的指令只会被执行一次,列目录时也通常没有它的踪影 。
比如常见的一个例子是:假设你要为自己的软件编写一个卸载程序,这个卸载程序本身是不可能被自己删除的,因为它试图删除自身时,自身却正在运行。为了清除卸载程序本身,你就得借助于Wininit.ini文件。顺便提一句,在安装Windows的最后阶段,就是利用Wininit.ini文件来清除和更名被安装程序SETUP自身使用的文件。
当然,病毒也可以利用这个程序的原理感染或替换系统核心进程或服务。利用这种方式隐蔽程序高,而且难于清除,不过还好,目前发现的利用这种方式的病毒还不是太多。
隐藏程度:★★★★★
应用程度:★★
10、任务计划
利用“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。当然也包括病毒。
打开“计算机管理”—>任务计划程序,可以看到当前正在运行的任务计划。计划时间可以灵活设置。只需要导入计划就可以达到让病毒按照计划好的时间自动运行。
实际操作中,当然并不是这么采用向导的方式进行一步一步进行,病毒只需要将配置好的任务计划文件导入就可以了。在linux系统中这也是病毒最常用的一种方式。如果你发现的系统总是莫名其妙的弹出一些窗口或者执行某个程序,你应该去这里检查一下。
隐藏程度:★★★
应用程度:★★★★
以上几种方式是病毒随操作系统启动时常用的几种方式,小伙伴们,你学到了吗?
本文来源:大兵说安全