萬盛學電腦網

 萬盛學電腦網 >> 安全資訊防護 >> 木馬基礎:不可見窗體和隱藏文件

木馬基礎:不可見窗體和隱藏文件

  以前,我曾認為只要不隨便運行網友發來的文件就不會中病毒或木馬,但後來出現了利用漏洞傳播的沖擊波、震蕩波;以前,我曾認為不上小網站就不會中網頁木馬,但後來包括國內某知名游戲網站在內的多個大網站均在其首頁被黑客掛上了木馬。從此,我知道:安全,從來沒有絕對的。

  雖然沒有絕對的安全,但如果能知已知彼,了解木馬的隱藏手段,對於木馬即使不能百戰百勝,也能做到及時發現,使損失最小化。那麼,木馬究竟是如何躲在我們的系統中的呢?

  最基本的隱藏:不可見窗體+隱藏文件

  木馬程序無論如何神秘,但歸根究底,仍是Win32平台下的一種程序。Windows下常見的程序有兩種:

  1.Win32應用程序(Win32 Application),比如QQ、Office等都屬於此行列。

  2.Win32控制台程序(Win32 Console),比如硬盤引導修復程序FixMBR。

  其中,Win32應用程序通常會有應用程序界面,比如系統中自帶的“計算器”就有提供各種數字按鈕的應用程序界面。木馬雖然屬於Win32應用程序,但其一般不包含窗體或隱藏了窗體(但也有某些特殊情況,如木馬使用者與被害者聊天的窗口),並且將木馬文件屬性設置為“隱藏”,這就是最基本的隱藏手段,稍有經驗的用戶只需打開“任務管理器”,並且將“文件夾選項”中的“顯示所有文件”勾選即可輕松找出木馬(見圖1),於是便出現了下面要介紹的“進程隱藏”技術。

  第一代進程隱藏技術:Windows 98的後門

  在Windows 98中,微軟提供了一種能將進程注冊為服務進程的方法。盡管微軟沒有公開提供這種方法的技術實現細節(因為Windows的後續版本中沒有提供這個機制),但仍有高手發現了這個秘密,這種技術稱為RegisterServiceProcess。只要利用此方法,任何程序的進程都能將自己注冊為服務進程,而服務進程在Windows 98中的任務管理器中恰巧又是不顯示的,所以便被木馬程序鑽了空子。

  要對付這種隱藏的木馬還算簡單,只需使用其他第三方進程管理工具即可找到其所在,並且采用此技術進行隱藏的木馬在Windows 2000/XP(因為不支持這種隱藏方法)中就得現形!中止該進程後將木馬文件刪除即可。可是接下來的第二代進程隱藏技術,就沒有這麼簡單對付了。

  第二代進程隱藏技術:進程插入

  在Windows中,每個進程都有自己的私有內存地址空間,當使用指針(一種訪問內存的機制)訪問內存時,一個進程無法訪問另一個進程的內存地址空間,就好比在未經鄰居同意的情況下,你無法進入鄰居家吃飯一樣。比如QQ在內存中存放了一張圖片的數據,而MSN則無法通過直接讀取內存的方式來獲得該圖片的數據。這樣做同時也保證了程序的穩定性,如果你的進程存在一個錯誤,改寫了一個隨機地址上的內存,這個錯誤不會影響另一個進程使用的內存。

copyright © 萬盛學電腦網 all rights reserved