木馬為了生存會想盡辦法隱藏自己,早期的木馬通常會采用以下方式來實現自啟動,比方說通過“開始”菜單的“啟動”項來加載自己,通過注冊表的有關項目來啟動木馬,還有的木馬會注冊為系統服務來迷惑我們。不過,除此之外木馬還有多種隱藏自己的方法,所以我們絕不能掉以輕心。知己知彼,方能百戰不殆,下面我們就談談這些鮮為人知的木馬隱藏方法。
“組策略”中的木馬
通過“組策略”來加載木馬非常隱蔽,不易為人所發現。具體方法是:點擊“開始”菜單中的“運行”,輸入“Gpedit.msc”並回車,這樣就可以打開“組策略”,在“本地計算機策略”中順次點擊“用戶配置→管理模板→系統→登錄”(圖1),然後雙擊“在用戶登錄時運行這些程序”子項,出現如圖所示對話框(圖2),在這裡進行屬性設置,選定“設置”中的“已啟用”,接下來單擊“顯示”按鈕,會彈出“顯示內容”窗口(圖3),再單擊“添加”按鈕,出現“添加項目”窗口(圖4),在其中的文本框中輸入要自動運行的文件所在的路徑,最後單擊“確定”按鈕,然後重新啟動計算機就可以了,系統在登錄時會自動啟動我們添加的程序。注意:如果自啟動的文件不是位於%Systemroot%目錄中,則必須指定文件的完整路徑。
如果我們剛才在“組策略”中添加的是木馬,就會誕生一個“隱形”的木馬!這是因為在“系統配置實用程序”Msconfig中你是無法發現該木馬的,在大家周知的注冊表項如HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun項和HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun項你也無法找到相應的鍵值,所以這種加載木馬的方式還是非常隱蔽的,對普通用戶來說威脅也更大一些
難道這種加載木馬的啟動方式就那麼無懈可擊嗎?當然不是!其實,通過這種方式添加的自啟動程序依然被記錄在注冊表中,只不過不是在我們所熟悉的那些注冊表項下,而是在在注冊表的HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun項中。所以,如果你懷疑電腦中可能有木馬,卻找不到它躲在哪兒,那就到上述注冊表項目或者組策略選項中看看,也許你會有所發現!
暗藏殺機的注冊表項
利用注冊表項加載木馬一直是木馬的最愛,我們也很熟悉它們的這種手段了,不過有一種新的利用注冊表來隱藏木馬的方法您可能還不知道,具體方法是:點擊“開始”菜單中的“運行”,輸入Regedit回車,打開注冊表編輯器。展開注冊表到HKEY_CURRENT_USERSoftwareMicrosoftWin dowsNTCurrentVersionWindows項,新建一個字符串值,命名為“load”,把它的鍵值改為自啟動程序的路徑即可。注意:要使用文件的短文件名,即“C:Program Files”應該寫為“C:Progra~1”,且自啟動程序的後面不能帶有任何參數。另外要提醒大家注意的是,如果改為在注冊表的HKEY_USERS用戶ID號SoftwareMicrosoftWindows NTCurrentVersionWindows項加載,則本方法對其他用戶也有效,否則換個用戶名登陸就不管用了。
建議大家以後檢查木馬及病毒程序時也要注意這裡,免得被人有機可乘。另外,這個方法只對Windows 2000/XP/2003有效,使用Windows 9x的用戶不用擔心。
利用AutoRun.inf加載木馬
經常使用光盤的朋友都知道,某些光盤放入光驅後會自動運行,這種功能的實現主要靠兩個文件,一個是系統文件之一的Cdvsd.vxd,一是光盤上的AutoRun.inf文件。Cdvsd.vxd會隨時偵測光驅中是否有放入光盤的動作,如果有的話,便開始尋找光盤根目錄下的AutoRun.inf文件。如果存在AutoRun.inf文件則執行它裡面的預設程序。
這個貌似神奇的功能其實很簡單,不僅能應用於光盤中,同樣也可以應用於硬盤中(要注意的是AutoRun.inf必須存放在磁盤根目錄下才能起作用)。讓我們一起看看AutoRun.inf文件的內容吧。打開記事本,新建一個文件,將其命名為AutoRun.inf,在AutoRun.inf中鍵入以下內容:
[AutoRun]
Icon=C:WindowsSystemShell32.DLL,21
Open=C:Program FilesACDSeeACDSee.exe
解釋一下:一個標准的AutoRun文件必須以[AutoRun]開頭,第二行Icon=C:WindowsSystemShell32.DLL,21用來給硬盤或光盤設定一個圖標。Shell32.DLL是Windows系統文件,裡面包含了很多Windows的系統圖標。數字21表示顯示編號為21的圖標;第三行Open=C:Program FilesACDSeeACDSee.exe指出要運行程序的路徑及其文件名。
如果把Open行換為木馬文件,並將這個AutoRun.inf文件設置為隱藏屬性(不易被發現),則點擊硬盤就會啟動木馬!反過來講,這倒的確是一種很不錯的程序自啟動方式。
為防止遭到這樣的“埋伏”,可以禁止硬盤AutoRun功能。打開注冊表編輯器,展開到HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExploer主鍵下,在右側窗口中找到“NoDriveTypeAutoRun”,就是它決定了是否執行CDROM或硬盤的AutoRun功能。將其鍵值改為9D,00,00,00就可關閉硬盤的AutoRun功能,把它的鍵值改為B5,00,00,00則可禁止光盤的AutoRun功能。注意改後要重新啟動計算機才能生效。
屏幕保護也可能成為木馬的幫凶
Windows的屏幕保護程序對應的是.scr文件,在默認情況下保存在Windows的安裝目錄下。如果把.scr更名為.exe文件,則該程序仍然可以正常啟動。與此類似,.exe文件更名為.scr文件也照樣可以運行!順便提一下,把.exe文件改名為.com、.pif、.bat後,exe文件仍舊可以自由運行!這在exe文件關聯丟失後非常有用,我們可以把exe文件的擴展名改為上述擴展名程序就可以運行了。
在屏幕保護程序中,我們可以設定它的等待時間,這個啟動時間其實是可以在注冊表中設定的: HKEY_USERS.DEFAULTControl Paneldesktop,其下的字符串值ScreenSaveTimeOut記錄的就是屏保程序的等待時間,時間單位為秒,從60秒開始記錄,如果記錄時間小於60秒,則自動定為1分鐘。是否選擇了屏幕保護程序可以在system.ini文件中看出來。在“開始”菜單的“運行”中輸入msconfig,找到System標簽,找到裡面的[boot]小節,你可以看到有“SCRNSAVE.EXE=”這一行。在它後面是屏保文件的路徑。如果你設定了屏保程序,這一行前面就會有一個“√”,反之則沒有“√”。
由上面的介紹可以產生一個聯想:如果把.exe文件重命名為.scr文件(假設改為trojan.scr),並在SYSTEM.INI中添加“SCANSAVE.EXE=C:Program filestrojan.scr”,然後修改注冊表中的HKEY_USERS.DEFAULTControl Paneldesktop下的字符串值ScreenSaveTimeOut,把其鍵值改為60,則系統只要閒置一分鐘該文件就會被啟動!由此可以看出,如果這種方法被木馬或病毒等惡意程序所利用,後果非常可怕。防范這種攻擊的方法就是禁止使用屏幕保護功能!