有關*.sys driver病毒的查找方式?



贊助商連結


頁 : [1] 2

cpthk
2007-03-18, 02:07 PM
請問現在很流行的*.sys病毒,做成driver,植入到windows\system32\drivers底下,這種病毒就算是進安全模式,一樣會起作用,而且一般都是作來保護另一個*.exe檔,因為它會封鎖修改機碼(regedit)的函數,讓你在HKLM\Software\Microsoft\Windows\CurrentVersion\Run等等有關啟動程序的地方都無法刪除那個病毒的*.exe

一般來說刪除機碼,讓*.exe病毒下次開機不起作用,這招簡單因為HKLM\Software\Microsoft\Windows\CurrentVersion\Run底下沒有很多,中毒後很容易看出來多出來哪些,但是*.sys在drivers目錄底下有好幾百個,根本不知道哪個是多出來,哪個是病毒,除了上網找以外的方法,有人還知道哪些好方法呢?

贊助商連結


rien
2007-03-18, 03:06 PM
SREng、HijackThis的StartupList log都會將登錄執行的Services及Drivers部分顯示出來

琥珀
2007-03-18, 03:30 PM
用 sc queryex type= driver > svc.txt 檢查。

大灰芒果
2007-03-18, 04:50 PM
聽說只有 Rootkit 等級的木馬病毒有此能力,一般的 driver 在進安全模式時是不會被載入的,至少我的 xp pro sp2 會問我要不要讓它載入。

有一支程式叫 rootkit unhooker 很好用。:D


請問現在很流行的*.sys病毒,做成driver,植入到windows\system32\drivers底下,這種病毒就算是進安全模式,一樣會起作用,而且一般都是作來保護另一個*.exe檔,因為它會封鎖修改機碼(regedit)的函數,讓你在HKLM\Software\Microsoft\Windows\CurrentVersion\Run等等有關啟動程序的地方都無法刪除*.exe

一般來說刪除機碼來讓*.exe病毒,讓下次開機不起作用,這招簡單因為HKLM\Software\Microsoft\Windows\CurrentVersion\Run底下沒有很多,中毒後很容易看出來多出來哪些,但是*.sys在drivers目錄底下有好幾百個,根本不知道哪個是多出來,哪個是病毒,除了上網找以外的方法,有人還知道哪些好方法呢?

cpthk
2007-03-18, 07:03 PM
聽說只有 Rootkit 等級的木馬病毒有此能力,一般的 driver 在進安全模式時是不會被載入的,至少我的 xp pro sp2 會問我要不要讓它載入。

有一支程式叫 rootkit unhooker 很好用。:D

我想大概決定於哪種driver,像是硬體的很多就不會,但是還是有很多會,你選了安全模式後,畫面從上到下列出正在載入的driver,都是*.sys,那些都是。


用 sc queryex type= driver > svc.txt 檢查。

你的那指令好像有錯,我會顯示error

顯示driver程式我是一大堆,不過我的問題是顯示出400個,要怎麼知道病毒是哪個?

star000star
2007-03-18, 10:43 PM
exe檔會加載的地方可不只有這一段。
HKLM\Software\Microsoft\Windows\CurrentVersion\Run

就算威脅在Drivers目錄,在Safe Mode下不一定會起動。

您再版上問的dll注入式跟現在問的sys形,都可以使用SREng檢查,就算是利用API Hook藏起來的,新版SREng有辦法修復使其現行。

cpthk
2007-03-19, 05:09 AM
exe檔會加載的地方可不只有這一段。
HKLM\Software\Microsoft\Windows\CurrentVersion\Run

謝謝大大回覆,我知道不只那一種,我上面只是舉例,我是說HKLM\Software\Microsoft\Windows\CurrentVersion\Run"等等"。


就算威脅在Drivers目錄,在Safe Mode下不一定會起動。

您再版上問的dll注入式跟現在問的sys形,都可以使用SREng檢查,就算是利用API Hook藏起來的,新版SREng有辦法修復使其現行。

我蠻確定他在safemode還是會被啟動的,因為我這幾天去幫我兩個朋友殺毒,都是這種毒,我進安全模式,用微軟內建的regedit,還是無法殺除機碼,我最後是用Icesword殺,才解決殺不掉這個問題。

我知道SREng對dll, sys都可以看到,不過我個問題是說要怎麼找到是哪個? 因為他找出超過60個,大大是都看名稱嗎?還是檔名?

請問大大對注入在explorer.exe的*.dll檔,用SREng怎麼看出來,是用它的哪個功能? 是在System Repair -> Browser Add-ons? 好像不是耶!?

DIRECTNORM
2007-03-19, 08:15 PM
我蠻確定他在safemode還是會被啟動的,因為我這幾天去幫我兩個朋友殺毒,都是這種毒,我進安全模式,用微軟內建的regedit,還是無法殺除機碼,我最後是用Icesword殺,才解決殺不掉這個問題。

在 safe mode 會啟動:o ,應該不會吧~
Windows 的 safe mode 只會啟動必要的 deriver 跟 service,有機會丟個 sample 來玩玩嗎?

在 Microsoft Sysinternals (http://www.microsoft.com/technet/sysinternals/default.mspx) 的網站上,有一個工具叫 Autoruns (http://www.microsoft.com/technet/sysinternals/Utilities/Autoruns.mspx),可以用來列出 Windows 作業系統所有用來啟動"程式"的設定,包括了驅動程式。
通常我會把 options 中的 "verify code signaturs" 跟 "hide signed Microsoft entries" 選項打開,剩下有不明項目,就利用 google search 做功課

star000star
2007-03-19, 08:24 PM
謝謝大大回覆,我知道不只那一種,我上面只是舉例,我是說HKLM\Software\Microsoft\Windows\CurrentVersion\Run"等等"。
我蠻確定他在safemode還是會被啟動的,因為我這幾天去幫我兩個朋友殺毒,都是這種毒,我進安全模式,用微軟內建的regedit,還是無法殺除機碼,我最後是用Icesword殺,才解決殺不掉這個問題。

我知道SREng對dll, sys都可以看到,不過我個問題是說要怎麼找到是哪個? 因為他找出超過60個,大大是都看名稱嗎?還是檔名?

請問大大對注入在explorer.exe的*.dll檔,用SREng怎麼看出來,是用它的哪個功能? 是在System Repair -> Browser Add-ons? 好像不是耶!?
並不是所有Drivers都會在Safe Mode中啟動的,一個案例不能代表全部。

至於explorer的dll加載,看SREng日誌的Running Processes。

至於Drivers怎麼辨別異常,沒什麼好方法,經驗+Google,沒有經驗就一個一個拿去Goolge搜吧。

warzero
2007-03-19, 09:45 PM
主要還是看是中了什麼樣的病毒。就一般的驅動型病毒在進入安全模式下是不會被啟動的。
不過小弟最近看過的win32:QQHelper這類病毒就會在安全模式下被啟動。
應該說它修改系統登錄讓系統誤以為這病毒是主要驅動而被一起加入下去。
這病毒的驅動名字是隨機的,所以每個人中了這病毒後的 xxxxxxnn.sys 名可能會不一樣。

至於要怎麼判斷的話,唯一的還是看Google + 時間 + 精神 + 自我判斷 + 經驗 。
判斷很簡單,你的全部例出來的驅動文件名一個一個去google搜索。
被搜索的正確路徑和正確名字,大部分是正常的驅動。
如果好運搜索到的xxx.sys說是病毒,那更可以直接肯定了。
如果某 xxxx.sys 連google都搜索不到,那 xxxxx.sys 99.9%來說是隨機命名的病毒。

至於另一種判斷的方法,在文件右鍵>屬性。然後查看版本。通常版本都會寫上公司的名字、文件版本等資訊。
一般病毒是不會寫下這些資訊的。就算某些在冒充微軟文件,它的版本未必正確。
大部分正確的格式為: 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) 等等...
然後再來看文件被創建、修改的日期/時間。
這些都可以拿來作為一種參考。

接下來如果懷疑到驅動是病毒的話,先用Process Explorer/Unlocker等將它從記憶體釋放出來。
然後再來用防毒軟體進行掃瞄。一般上有些驅動病毒在執行著,某防毒軟體會無法正確偵測到。 可能因為在執行而沒有足夠的權利去掃吧?

如果肯定掃到的是病毒的話,再來直接刪除。如果刪除失敗的話,先檢查病毒是否從記憶體已經被釋放?
如果可以成功刪除後又被再生,這樣的病毒你可以用IceSword做清除。
不過就小弟自己用的方法很簡單,自己製作個空白唯讀的xxxx.sys。
注意要跟那病毒一樣的名稱。當然可能會對某些病毒會自解唯讀的病毒無效。

然後再來直接覆蓋掉。由於是唯讀的關係,所以病毒就無法一直再生了。
這時候再來到登錄值刪除掉相關驅動病毒的載入,以免它在執行中又重寫。
啟動後如果遇到無法正常進入系統的話,請用F8。然後選擇"Last Known Good Configuration"就可以修正無法啟動的問題。

至於遇到rootkit型病毒的話。
首先可以使用rootkit revealer尋找出來。然後可以用IceSword做移除。
不過小弟是用cmd > reg delete xxxx /va xxx 指令來刪除登錄值載入的。
刪除後的rootkit型病毒重心啟動後就會現身了,因為沒有被執行的關係。那時候再來直接刪除掉即可。

以上所說的一切只是小弟的個人經驗,可以拿來作為參考。但不一定適通用在於全部的病毒。
當然以上提供的方法極其非常危險,一不小心就會搞到系統崩潰。
可以的話,建議去找專用的移除程式會比以上的方法來得安全多。




你的那指令好像有錯,我會顯示error

要注意你有沒有打錯誤,包括空行,格式要完全的跟著。
如果是 sc queryex type=driver > svc.txt --> 當然會錯誤
如果是 sc queryex type =driver > svc.txt -->當然也會錯誤

小弟用 sc queryex type= driver > svc.txt 這個指令執行當然完全沒問題。