天天看點

揪出系統中秘密隐藏的木馬(上)

 木馬為了生存會想盡辦法隐藏自己,早期的木馬通常會采用以下方式來實作自啟動,比方說通過“開始”菜單的“啟動”項來加載自己,通過系統資料庫的有關項目來啟動木馬,還有的木馬會注冊為系統服務來迷惑我們。不過,除此之外木馬還有多種隐藏自己的方法,是以我們絕不能掉以輕心。知己知彼,方能百戰不殆,下面我們就談談這些鮮為人知的木馬隐藏方法。

    “組政策”中的木馬

    通過“組政策”來加載木馬非常隐蔽,不易為人所發現。具體方法是:點選“開始”菜單中的“運作”,輸入“Gpedit.msc”并回車,這樣就可以打開“組政策”,在“本地計算機政策”中順次點選“使用者配置→管理模闆→系統→登入”(圖1),然後輕按兩下“在使用者登入時運作這些程式”子項,出現如圖所示對話框(圖2),在這裡進行屬性設定,標明“設定”中的“已啟用”,接下來單擊“顯示”按鈕,會彈出“顯示内容”視窗(圖3),再單擊“添加”按鈕,出現“添加項目”視窗(圖4),在其中的文本框中輸入要自動運作的檔案所在的路徑,最後單擊“确定”按鈕,然後重新啟動計算機就可以了,系統在登入時會自動啟動我們添加的程式。注意:如果自啟動的檔案不是位于%Systemroot%目錄中,則必須指定檔案的完整路徑。

    如果我們剛才在“組政策”中添加的是木馬,就會誕生一個“隐形”的木馬!這是因為在“系統配置實用程式”Msconfig中你是無法發現該木馬的,在大家周知的系統資料庫項如HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run項和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run項你也無法找到相應的鍵值,是以這種加載木馬的方式還是非常隐蔽的,對普通使用者來說威脅也更大一些

    難道這種加載木馬的啟動方式就那麼無懈可擊嗎?當然不是!其實,通過這種方式添加的自啟動程式依然被記錄在系統資料庫中,隻不過不是在我們所熟悉的那些系統資料庫項下,而是在在系統資料庫的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run項中。是以,如果你懷疑電腦中可能有木馬,卻找不到它躲在哪兒,那就到上述系統資料庫項目或者組政策選項中看看,也許你會有所發現!

暗藏殺機的系統資料庫項

    利用系統資料庫項加載木馬一直是木馬的最愛,我們也很熟悉它們的這種手段了,不過有一種新的利用系統資料庫來隐藏木馬的方法您可能還不知道,具體方法是:點選“開始”菜單中的“運作”,輸入Regedit回車,打開系統資料庫編輯器。展開系統資料庫到HKEY_CURRENT_USER\Software\Microsoft\Win dowsNT\CurrentVersion\Windows項,建立一個字元串值,命名為“load”,把它的鍵值改為自啟動程式的路徑即可。注意:要使用檔案的短檔案名,即“C:\Program Files”應該寫為“C:\Progra~1”,且自啟動程式的後面不能帶有任何參數。另外要提醒大家注意的是,如果改為在系統資料庫的HKEY_USERS\使用者ID号\Software\Microsoft\Windows NT\CurrentVersion\Windows項加載,則本方法對其他使用者也有效,否則換個使用者名登陸就不管用了。

    建議大家以後檢查木馬及病毒程式時也要注意這裡,免得被人有機可乘。另外,這個方法隻對 2000/XP/2003有效,使用Windows9x的使用者不用擔心。

    利用AutoRun.inf加載木馬

    經常使用CD光牒的朋友都知道,某些CD光牒放入光驅後會自動運作,這種功能的實作主要靠兩個檔案,一個是系統檔案之一的Cdvsd.vxd,一是CD光牒上的AutoRun.inf檔案。Cdvsd.vxd會随時偵測光驅中是否有放入CD光牒的動作,如果有的話,便開始尋找CD光牒根目錄下的AutoRun.inf檔案。如果存在AutoRun.inf檔案則執行它裡面的預設程式。

    這個貌似神奇的功能其實很簡單,不僅能應用于CD光牒中,同樣也可以應用于硬碟中(要注意的是AutoRun.inf必須存放在磁盤根目錄下才能起作用)。讓我們一起看看AutoRun.inf檔案的内容吧。打開記事本,建立一個檔案,将其命名為AutoRun.inf,在AutoRun.inf中鍵入以下内容:

    [AutoRun]

    Icon=C:\Windows\System\Shell32.DLL,21

    Open=C:\Program Files\ACDSee\ACDSee.exe

    解釋一下:一個标準的AutoRun檔案必須以[AutoRun]開頭,第二行Icon=C:\Windows\System\Shell32.DLL,21用來給硬碟或CD光牒設定一個圖示。Shell32.DLL是Windows系統檔案,裡面包含了很多Windows的系統圖示。數字21表示顯示編号為21的圖示;第三行Open=C:\Program Files\ACDSee\ACDSee.exe指出要運作程式的路徑及其檔案名。

    如果把Open行換為木馬檔案,并将這個AutoRun.inf檔案設定為隐藏屬性(不易被發現),則點選硬碟就會啟動木馬!反過來講,這倒的确是一種很不錯的程式自啟動方式。

    為防止遭到這樣的“埋伏”,可以禁止硬碟AutoRun功能。打開系統資料庫編輯器,展開到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Exploer主鍵下,在右側視窗中找到“NoDriveTypeAutoRun”,就是它決定了是否執行CDROM或硬碟的AutoRun功能。将其鍵值改為9D,00,00,00就可關閉硬碟的AutoRun功能,把它的鍵值改為B5,00,00,00則可禁止CD光牒的AutoRun功能。注意改後要重新啟動計算機才能生效。

    螢幕保護也可能成為木馬的幫兇 

    Windows的螢幕保護程式對應的是.scr檔案,在預設情況下儲存在Windows的安裝目錄下。如果把.scr更名為.exe檔案,則該程式仍然可以正常啟動。與此類似,.exe檔案更名為.scr檔案也照樣可以運作!順便提一下,把.exe檔案改名為.com、.pif、.bat後,exe檔案仍舊可以自由運作!這在exe檔案關聯丢失後非常有用,我們可以把exe檔案的擴充名改為上述擴充名程式就可以運作了。

    在螢幕保護程式中,我們可以設定它的等待時間,這個啟動時間其實是可以在系統資料庫中設定的: HKEY_USERS\.DEFAULT\Control Panel\desktop,其下的字元串值ScreenSaveTimeOut記錄的就是屏保程式的等待時間,時間機關為秒,從60秒開始記錄,如果記錄時間小于60秒,則自動定為1分鐘。是否選擇了螢幕保護程式可以在system.ini檔案中看出來。在“開始”菜單的“運作”中輸入msconfig,找到System标簽,找到裡面的[boot]小節,你可以看到有“SCRNSAVE.EXE=”這一行。在它後面是屏保檔案的路徑。如果你設定了屏保程式,這一行前面就會有一個“√”,反之則沒有“√”。

    由上面的介紹可以産生一個聯想:如果把.exe檔案重命名為.scr檔案(假設改為trojan.scr),并在SYSTEM.INI中添加“SCANSAVE.EXE=C:\Program files\trojan.scr”,然後修改系統資料庫中的HKEY_USERS\.DEFAULT\Control Panel\desktop下的字元串值ScreenSaveTimeOut,把其鍵值改為60,則系統隻要閑置一分鐘該檔案就會被啟動!由此可以看出,如果這種方法被木馬或病毒等惡意程式所利用,後果非常可怕。防範這種攻擊的方法就是禁止使用螢幕保護功能

本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/88318,如需轉載請自行聯系原作者

繼續閱讀