電腦病毒一旦入侵到我們的電腦中,需要加載才能造成破壞,因為一個沒有加載啟動的病毒是沒有什么危害的。那么,病毒在進入電腦系統之后,不通過用戶雙擊,會有怎樣的辦法讓自己自動加載執行呢?
我們今天就來看一下病毒為了能讓自己可以自動加載,一般都會利用哪些方法。了解了病毒自動加載啟動,小伙伴們就能夠掌握如何發現和清除病毒。
一般來說病毒的自動加載技術主要是有兩種方式:
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開始其功能慢慢轉移到了注冊表中?,F在的系統中還有這個文件,默認在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系統中這也是病毒最常用的一種方式。如果你發現的系統總是莫名其妙的彈出一些窗口或者執行某個程序,你應該去這里檢查一下。
隱藏程度:★★★
應用程度:★★★★
以上幾種方式是病毒隨操作系統啟動時常用的幾種方式,小伙伴們,你學到了嗎?
本文來源:大兵說安全