RootkitRevealer v1.71作者:Bryce Cogswell 和 Mark Russinovich
發佈日期: 2006 年 11 月 1 日
介紹RootkitRevealer 是進階的 Rootkit 偵測公用程式。它可在 Windows NT 4 及較新的版本上執行,而且其輸出會列出登錄值與檔案系統 API 的差異,這樣就可以指出是否有使用者模式或核心模式的 Rootkit。RootkitRevealer 可以成功地偵測到在 www.rootkit.com 中發佈的所有持續性 Rootkit,包括 AFX、Vanquish 和 HackerDefender (請注意:RootkitRevealer 並不是用以偵測像 Fu 這一類不會嘗試隱藏其檔案或登錄機碼的 Rootkit)。如果您使用它來識別 Rootkit 的存在,請讓我們知道! 不再有命令列版本的原因是因為惡意程式碼作者已開始使用 RootkitRevealer 的可執行檔名稱,以其掃描為攻擊目標。因此我們更新了 RootkitRevealer,以 Windows 服務的方式執行隨機命名的複本來執行其掃描。這種類型的執行無益於命令列介面。請注意,您可以使用命令列選項來執行會將結果記錄到檔案的自動掃描,這等同於命令列版本的行為。 回到頁首 Rootkit 是什麼Rootkit 一詞是用以描述惡意程式碼 (包括病毒、間諜軟體以及木馬程式) 嘗試隱藏其蹤跡,不讓間諜軟體封鎖程式、防毒軟體和系統管理公用程式發現所使用的機制與技術。視惡意程式碼是否能在重新開機後仍然存在以及它是在使用者模式或核心模式執行而定,有數種 Rootkit 分類。 持續性 Rootkit 以記憶體為基礎的 Rootkit 使用者模式 Rootkit Windows 原生 API 可做為使用者模式用戶端與核心模式服務之間的介面,而且更複雜的使用者模式 Rootkit 會攔截檔案系統、登錄並處理原生 API 的列舉功能。這將可防止掃描程式偵測到它們,因為這些掃描程式會比較 Windows API 列舉的結果以及原生 API 列舉所傳回的結果。 核心模式 Rootkit 回到頁首 RootkitRevealer 如何運作由於持續性 Rootkit 透過變更 API 結果的方式來運作,好讓使用 API 的系統檢視與儲存的實際檢視不同,所以 RootkitRevealer 會比較最高層級與最低層級的系統掃描結果。最高層級是 Windows API,而最低層級則是檔案系統磁碟區或是登錄 Hive 的原始內容 (Hive 檔案是登錄在磁碟上的儲存格式)。因此,無論是使用者模式或是核心模式的 Rootkit,透過操作 Windows API 或原生 API 以便從目錄清單移除其存在,都會被 RootkitRevealer 視為在以下兩者之間的差異:Windows API 傳回的資訊以及對 FAT 或 NTFS 磁碟區的檔案系統結構所執行的原始掃描中所看到的資訊。 Rootkit 是否可以躲避 RootkitRevealer 是否有方法能夠確保知道 Rootkit 的存在 最重要的是永遠都不會有萬能的 Rootkit 掃描程式,但是最強大的掃描程式將會是與防毒軟體整合在一起的線上/離線比較掃描程式。 回到頁首 使用 RootkitRevealerRootkitRevealer 需要已經指派這些執行權限的帳戶:備份檔案和目錄、載入驅動程式並執行磁碟區維護工作 (在 Windows XP 及更新的版本上)。 Administrators 群組預設已經指派這些權限。以便能最小化誤判在閒置系統上執行 RootkitRevealer。 為了獲最佳結果,請在 RootkitRevealer 掃描程序期間,結束所有的應用程式,並使系統保持在閒置的狀態。 如果您有任何問題,請造訪 Sysinternals RootkitRevealer 論壇。 回到頁首 手動掃描若要掃描系統,請在系統上啟動它並按 [掃描] 按鈕。RootkitRevealer 會掃描系統以便在其視窗底部的狀態區域中報告其動作,並在輸出清單中標示差異。您可以設定的選項有:
回到頁首 啟動一個自動掃描RootkitRevealer 支援自動掃描系統的數個選項: 用法:rootkitrevealer [-a [-c] [-m] [-r] outputfile] -a 自動掃描當完成時離開。 -c 格式輸出為 CSV。 -m 顯示 NTFS 中繼資料檔案。 -r 不要掃描登錄。 請注意檔案輸出位置必須在本機磁碟區上。 如果您指定 -c 選項,它將不會報告進度,而且會以 CSV 格式來列印差異,以利輕鬆地匯入資料庫中。您可以執行遠端系統的掃描,方法是使用如下的命令列,透過 Sysinternals PsExec 公用程式來執行它: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log 回到頁首 解譯輸出這是 RootkitRevealer 偵測到常見 HackerDefender Rootkit 存在的螢幕擷取畫面。登錄機碼差異顯示登錄機碼會儲存 HackerDefender 的裝置驅動程式,而 Windows API 無法看到服務設定,但是這些設定會出現在登錄 Hive 資料的的原始掃描中。同樣地,Windows API 目錄掃描看不到與 HackerDefender 關聯的檔案,但是會出現在原始檔案系統資料的掃描中。
您應該檢查所有的差異並判斷它們指出 Rootkit 存在的可能性。不幸的是,沒有明確的方法可以根據輸出來判斷 Rootkit 是否存在,但是您應該檢查所有報告的差異以確定它們是可解釋的。如果您判斷已安裝 Rootkit,請搜尋網站以取得移除指示。如果您不確定如何移除 Rootkit,您應該重新格式化系統的硬碟並重新安裝 Windows。 除了以下可能的 RootkitRevealer 差異之資訊之外,在 Sysinternals 的 RootkitRevealer 論壇中討論了偵測到的 Rootkit 與特定的誤判。 回到頁首 對 Windows API 隱藏這些差異是大部分 Rootkit 顯示的差異,不過,如果您尚未檢查「隱藏 NTFS」的中繼資料檔案,則應該會在任何 NTFS 磁碟區上看到許多這類的項目,因為 NTFS 會對 Windows API 隱藏其中繼資料檔案,例如 $MFT 和 $Secure。顯示在 NTFS 上的中繼資料檔案,會因 NTFS 的版本以及已經在該磁碟區上啟用的 NTFS 功能而異。也有防毒軟體產品 (例如 Kaspersky Antivirus) 使用 Rootkit 技術以隱藏它們儲存在 NTFS 替用資料串流中的資料。如果您正在執行這類的病毒掃描程式,將會看到對 Windows API 隱藏每個 NTFS 檔案的替用資料串流差異。RootkitRevealer 並不支援輸出篩選器,因為 Rootkit 有可能利用任何篩選。最後,如果在掃描期間刪除了檔案,您也可以看到這個差異。 Windows Server 2003 的 NTFS 中繼資料檔案定義清單:
拒絕存取。 RootkitRevealer 應該永遠都不要報告這個差異,因為它所使用的機制,可讓它存取系統上的任何檔案、目錄或登錄機碼。 顯示在 Windows API、目錄索引中,不在 MFT 中。 檔案系統掃描是由三個元件所組成:Windows API、NTFS 主檔案表格 (MFT) 以及 NTFS 在磁碟上的目錄索引結構。這些差異指出檔案出現在僅一兩個掃描中。常見的理由是在掃描期間建立或刪除了檔案。這是 RootkitRevealer 針對在掃描期間所建立的檔案之差異報告範例: C:\newfile.txt Windows API 長度與原始 Hive 資料不一致。 Rootkit 有可能透過顯示錯誤的登錄值大小,讓 Windows API 看不到其內容以隱藏自己。您應該檢查任何這類的差異,雖然它有可能只是在掃描期間變更登錄值的結果。 在 Windows API 與原始 Hive 資料之間不相符的類型。 登錄值都有一個類型,例如 DWORD 與 REG_SZ,而且此差異會指出透過 Windows API 報告的值類型與原始 Hive 資料的值類型不同。例如,Rootkit 隱藏其資料的方式是透過將它儲存為 REG_BINARY 值,並使 Windows API 相信它是 REG_SZ 值;如果它在資料開頭儲存 0,則 Windows API 將無法存取後續的資料。 機碼名稱包含內嵌 Null。 Windows API 將機碼名稱視為 Null 終止字串,然而核心將它們視為計數的字串。因此有可能建立作業系統看得見的錄登機碼,但是只有像 Regedit 這一類的登錄工具才可以部分看得見。在 Sysinternal 的 Reghide 範例示範了惡意程式碼與 Rootkit 隱藏登錄資料的這個技術。使用 Sysinternals Regdellnull 公用程式以刪除具有內嵌 Null 的機碼。 在 Windows API 與原始 Hive 資料之間不相符的資料。 如果在登錄掃描進行期間更新了登錄值,就會發生這個差異。經常變更的值包括如 Microsoft SQL Server 執行時間值的時間戳記 (如下所示) 以及病毒掃描程式「最後掃描」值。您應該調查任何報告的值以確定它是有效的應用程式或系統登錄值。 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc 回到頁首 Rootkit 資源下列是有關 rootkits 的網站及書籍資源: Understanding Malware: Viruses, Spyware and Rootkits Sony、Rootkit 和數位版權管理太過份了 Unearthing Rootkits Rootkit:破壞 Windows 核心 www.phrack.org research.microsoft.com/rootkit/ The Art of Computer Virus Research and Defense, by Peter Szor Malware: Fighting Malicious Code, by Ed Skoudis and Lenny Zeltser Windows Internals, 4th Edition, by Mark Russinovich and Dave Solomon (the book doesn't talk about rootkits, but understanding the Windows architecture is helpful to understanding rootkits). 回到頁首 |