查看單個文章
舊 2005-07-08, 06:53 AM   #2 (permalink)
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 金幣
預設

可盜號木馬是怎麼偷偷記錄下我的密碼的呢?

木馬首先將1個DLL文件插入到QQ的工作中並成為QQ工作中的一個執行緒,這樣該木馬DLL就赫然成為了QQ的一部分!然後在用戶輸入密碼時,因為此時木馬DLL已經進入QQ工作內部,所以也就能夠接收到用戶傳送給QQ的密碼按鍵輸入了,真是「家賊難防」啊!
  (插入cxtrojan0a.tif)

  3.如何插入工作

  (1)使用註冊表插入DLL

  早期的工作插入式木馬的伎倆,通過修改註冊表中的[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs]來達到插入工作的目的。缺點是不既時,修改註冊表後需要重新啟動才能完成工作插入。

  (2)使用掛鉤(Hook)插入DLL

  比較進階和隱蔽的方式,通過系統的掛鉤機制(即「Hook」,類似於DOS時代的「中斷」)來插入工作(一些盜QQ木馬、鍵盤記錄木馬以Hook方式插入到其他工作中「偷雞摸狗」),需要使用SetWindowsHookEx函數(也是一個Win32 API函數)。缺點是技術門檻較高,程序偵錯困難,這種木馬的製作者必須具有相當的Win32編程水準。

  你知道嗎——什麼是API

  Windows中提供各種功能實現的接頭稱為Win32 API(Application Programming Interface,即「應用程式編程接頭」),如一些程序需要對磁牒上的文件進行讀寫,就要先通過對相應的API(文件讀寫就要使用文件相關的API)發出使用請求,然後API根據程序在使用其函數時提供的參數(如讀寫文件就需要同時指出需要讀寫的文件的檔案名及路徑)來完成請求實現的功能,最後將使用結果(如寫入文件成功,或讀取文件失敗等)返回給程序(見 應用程式、Win32 API、系統的關係)。

(3)使用遠端執行緒函數(CreateRemoteThread)插入DLL

  在Windows 2000及以上的系統中提供了這個「遠端工作」機制,可以通過一個系統API函數來向另一個工作中新增執行緒(插入DLL)。


缺點很明顯,僅支持Windows 2000及以上系統,在國內仍有相當多用戶在使用Windows 98,所以採用這種工作插入方式的木馬缺乏平台通用性。

  木馬將自身作為DLL插入別的工作空間後,用檢視工作的方式就無法找出木馬的蹤跡了,你能看到的僅僅是一些正常程序的工作,但木馬卻已經偷偷潛入其中了。


解決的方法是使用支持「工作模組檢視」的工作系統管理工具(如「Windows最佳化大師」提供的工作檢視),木馬的DLL模組就會現形了。

  不要相信自己的眼睛:恐怖的工作「蒸發」

  嚴格地來講,這應該算是第2.5代的工作隱藏技術了,可是它卻比前幾種技術更為可怕得多。這種技術使得木馬不必將自己插入到其他工作中,而可以直接消失!

  它通過Hook技術對系統中所有程式的工作檢測相關API的使用進行了監控,「工作管理器」之所以能夠顯示出系統中所有的工作,也是因為其使用了EnumProcesses等工作相關的API函數,工作訊息都包含在該函數的返回結果中,由發出使用請求的程序接收返回結果並進行處理(如「工作管理器」在接收到結果後就在工作列表中顯示出來)。

  而木馬由於事先對該API函數進行了Hook,所以在「工作管理器」(或其他使用了列舉工作函數的程序)使用EnumProcesses函數時(此時的API函數充當了「內線」的角色),木馬便得到了通知,並且在函數將結果(列出所有工作)返回給程序前,就已將自身的工作訊息從返回結果中抹去了。


就好比你正在看電視節目,卻有人不知不覺中將電視接上了DVD,你在不知不覺中就被欺騙了。

  所以無論是「工作管理器」還是殺毒軟體,想對這種木馬的工作進行檢測都是徒勞的。這種木馬目前沒有非常有效的查殺手段,只有在其執行前由殺毒軟體檢測到木馬文件並阻止其病毒體的執行。


當時還有一種技術是由木馬程序將其自身的工作訊息從Windows系統用以記錄工作訊息的「工作鏈表」中移除,這樣工作系統管理工具就無法從「工作鏈表」中獲得木馬的工作訊息了。但由於缺乏平台通用性而且在程序執行時有一些問題,所以沒有被廣泛採用。

你知道嗎——什麼是Hook

  Hook是Windows中提供的一種用以取代DOS下「中斷」的一種系統機制,中文譯名為「掛鉤」或「鉤子」。


在對特定的系統事件(包括上文中的特定API函數的使用事件)進行Hook後,一旦發生已Hook的事件,對該事件進行Hook的程序(如:木馬)就會收到系統的通知,這時程序就能在第一時間對該事件做出回應(木馬程序便搶在函數返回前對結果進行了修改)。

  毫無蹤跡:全方位立體隱藏

  利用剛才介紹的Hook隱藏工作的手段,木馬可以輕而易舉地實現文件的隱藏,只需將Hook技術套用在文件相關的API函數上即可,這樣無論是「檔案總管」還是殺毒軟體都無法找出木馬所在了。更令人吃驚的是,現在已經有木馬(如:灰鴿子)利用該技術實現了文件和工作的隱藏。要防止這種木馬最好的手段仍是利用殺毒軟體在其執行繼續行攔截。

  跟殺毒軟體對著干:反殺毒軟體外殼

  木馬再狡猾,可是一旦被殺毒軟體定義了特徵碼,在執行前就被攔截了。要躲過殺毒軟體的追殺,很多木馬就被加了殼,相當於給木馬穿了件衣服,這樣殺毒軟體就認不出來了,但有部分殺毒軟體會嘗試對常用殼進行脫殼,然後再查殺(小樣,別以為穿上件馬夾我就不認識你了)。


除了被動的隱藏外,最近還發現了能夠主動和殺毒軟體對著干的殼,木馬在加了這種殼之後,一旦執行,則外殼先得到程序控制權,由其通過各種手段對系統中安裝的殺毒軟體進行破壞,最後在驗證安全(殺毒軟體的保護已被瓦解)後由殼解壓縮包裹在自己「體內」的木馬體並執行之。對付這種木馬的方法是使用具有脫殼能力的殺毒軟體對系統進行保護。

  你知道嗎——什麼是殼

  顧名思義,你可以很輕易地猜到,這是一種包在外面的東西。沒錯,殼能夠將文件(比如EXE)包住,然後在文件被執行時,首先由殼獲得控制權,然後解壓縮並執行包裹著的文件體。很多殼能對自己包住的文件體進行加密,這樣就可以防止殺毒軟體的查殺。



比如原先殺毒軟體定義的該木馬的特徵是「12345」,如果發現某文件中含有這個特徵,就認為該檔案是木馬,而帶有加密功能的殼則會對文件體進行加密(如:原先的特徵是「12345」,加密後變成了「54321」,這樣殺毒軟體當然不能靠文件特徵進行檢查了)。脫殼指的就是將文件外邊的殼去除,恢覆文件沒有加殼前的狀態。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次