查看單個文章
舊 2005-07-08, 06:51 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 木馬各種隱藏技術全方位大披露

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

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

  最基本的隱藏:不可見表單+隱藏文件

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

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

  2.Win32控制台程序(Win32 Console),比如硬碟啟始修復程序FixMBR。

  其中,Win32應用程式通常會有應用程式界面,比如系統中原有的的「計算器」就有提供各種數位按鈕的應用程式界面。

木馬雖然屬於Win32應用程式,但其一般不包含表單或隱藏了表單(但也有某些特殊情況,如木馬使用者與被害者聊天的視窗),並且將木馬文件內容設定為「隱藏」,這就是最基本的隱藏手段,稍有經驗的用戶只需開啟「工作管理器」,並且將「資料夾選項」中的「顯示所有文件」勾選即可輕鬆找出木馬,於是便出現了下面要介紹的「工作隱藏」技術。

第一代工作隱藏技術:Windows 98的後門

  在Windows 98中,微軟提供了一種能將工作註冊為服務工作的方法。儘管微軟沒有公開提供這種方法的技術實現細節(因為Windows的後續版本中沒有提供這個機制),但仍有高手發現了這個秘密,這種技術稱為RegisterServiceProcess。

只要利用此方法,任何程序的工作都能將自己註冊為服務工作,而服務工作在Windows 98中的工作管理器中恰巧又是不顯示的,所以便被木馬程序鑽了空子。

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

  在Windows中,每個工作都有自己的私有記憶體位址空間,當使用游標(一種訪問記憶體的機制)訪問記憶體時,一個工作無法訪問另一個工作的記憶體位址空間,就好比在未經鄰居同意的情況下,你無法進入鄰居家吃飯一樣。

比如QQ在記憶體中存放了一張圖片的資料,而MSN則無法通過直接讀取記憶體的方式來獲得該圖片的資料。

這樣做同時也保證了程序的穩定性,如果你的工作存在一個錯誤,改寫了一個隨機位址上的記憶體,這個錯誤不會影響另一個工作使用的記憶體。

  你知道嗎——工作(Process)是什麼

  對應用程式來說,工作就像一個大容器。

在應用程式被執行後,就相當於將應用程式裝進容器裡了,你可以往容器裡加其他東西(如:應用程式在執行時所需的變數資料、需要引用的DLL文件等),當應用程式被執行兩次時,容器裡的東西並不會被倒掉,系統會找一個新的工作容器來容納它。

  一個工作可以包含若幹線程(Thread),執行緒可以說明 應用程式同時做幾件事(比如一個執行緒向磁牒寫入文件,另一個則接收用戶的按鍵操作並及時做出反應,互相不干擾),在程序被執行後中,系統首先要做的就是為該程序工作建立一個預設執行緒,然後程序可以根據需要自行增加或移除相關的執行緒(見圖2 工作關係圖)。

1.工作插入是什麼

  獨立的位址空間對於編程人員和用戶來說都是非常有利的。對於編程人員來說,系統更容易捕獲隨意的記憶體讀取和寫入操作。

對於用戶來說,操作系統將變得更加健壯,因為一個應用程式無法破壞另一個工作或操作系統的執行。


當然,操作系統的這個健壯特性是要付出代價的,因為要編寫能夠與其他工作進行通信,或者能夠對其他工作進行操作的應用程式將要困難得多。

但仍有很多種方法可以打破工作的界限,訪問另一個工作的位址空間,那就是「工作插入」(Process Injection)。


一旦木馬的DLL插入了另一個工作的位址空間後,就可以對另一個工作為所欲為,比如下文要介紹的盜QQ密碼。

  2.木馬是如何盜走QQ密碼的

  普通情況下,一個應用程式所接收的鍵盤、滑鼠操作,別的應用程式是無權「過問」的。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次