惡意程式分析—基礎知識
1
大綱
 系統處理程序之用途說明
 登錄檔說明之功用說明
 惡意程式判斷—基本檢查
 惡意程式判斷—工具使用
 識別移除惡意程式注意事項
Kaspersky Labs 6ht Annual Partner Conference ·Turkey, June 2-6 2004Kaspersky Labs 6th Annual Partner Conference ·Turkey, 2-6 June 2004
系統處理程序之用途說明
目的
了解電腦系統中,各類處理程序的名稱
、位置及對應之服務
3
「Windows工作管理員」,管理執行程序,
了解每個執行序使用資源狀況
 按下“Ctrl+Alt+Delete”鍵,跳出「Windows
工作管理員」視窗
 檢視 選擇欄位 (檢視每個執行序,資源使用狀況)
(CPU使用率、記憶體使用量、使用者名稱)
Windows系統中處理程序分類
1.系統服務程序
 svchost.exe、spoolsv.exe、csrss.exe、lsass.exe、
smss.exe、winlogon.exe、services.exe
(系統服務程序不可亂砍,系統可能會毀壞)
2. 一般程序
 explorer.exe、rundll32.exe、ctfmon.exe、
conime.exe
3. 應用軟體處理程序
 iexplore.exe
 其他: Office word, excel, Adobe…
1.系統服務程序(svchost.exe)
合法svchost.exe檔,路徑在C:WINDOWS\System32
負責啟動微軟Windows系統服務,包括Logical Disk
Manager、RPC、Automatic Updates、DHCP Client等
。系統服務多半是由載入動態連結程式庫(DLL)啟動,
而svchost.exe負責載入相對應DLL檔來啟動服務。
說明:Windows XP下svchost.exe不會超過5個執行序,大致有
netsvcs、LocalService、NetworkService、HTTPFilter及
imgsvc等5類,若超過的話,很有可能是惡意程式所偽裝
1.系統服務程序(svchost.exe)
1.系統服務程序( spoolsv.exe )
 路徑位置為“C:WINDOWSSystem32\”
 本程序是系統服務中“Print Spooler”服務所對
應的執行檔,其主要工作是將檔案載入記憶體中
,以待稍後列印,就是專門負責管理緩衝區中,
佇列之本地及網路列印作業,使用者若任意加以
停用,可能會造成原本的列印作業無法正常運作
1.系統服務程序( spoolsv.exe )
spoolsv.exe常被惡意程式所灌滿,導致無法列印
1.系統服務程序( spoolsv.exe )
1.系統服務程序 (csrss.exe)
 路徑放置 C:WINDOWSSystem32
 屬於Win32子系統程序,主要作用在於啟動或刪
除執行緒及16位元之DOS虛擬環境
1.系統服務程序 (lsass.exe)
 路徑放置 C:WINDOWSSystem32
 此服務程序負責,IP安全管理、帳號驗證、安全
儲存等服務,都是透過lsass.exe執行檔來啟動,
例如: IPSEC Service、 Net Logon、 NT LM
Security Support Provider、 Protected
Storage與Security Accounts Manager等。
1.系統服務程序 (smss.exe )
 路徑放置 C:WINDOWSSystem32
 連線對話管理子系統,專門負責啟動用戶之連線
對話。
System Restore Service
由 svchost.exe所啟動
1.系統服務程序 (winlogon.exe)
 路徑放置 C:WINDOWSSystem32
 負責用戶登錄狀態之更換,例如系統歡迎畫面、
登入、登出及工作站鎖定等狀態顯示的切換。它
會將使用者的認證操作要求,傳送給負責身分認
證之DLL檔,然後再接收DLL檔的指示,進行狀態
切換。
1.系統服務程序 (services.exe)
 路徑放置 C:WINDOWSSystem32
 專門啟動Event Log及Plug and Play,這2個系統
服務的執行檔
2.一般服務程序 (explorer.exe)
 路徑放置 C:WINDOWS
 資源管理器,它是使用者與系統核心之間的介面
-shell,使用者必須透過它,才能以桌面及工作
列上的圖示,存取並管理電腦中的各項資源
2.一般服務程序
rundll32.exe
 路徑放置 C:WINDOWSSystem32
 負責執行DLL內建函式的執行檔
ctfmon.exe
 路徑放置 C:WINDOWSSystem32
 啟動微軟入法之執行檔
conime.exe
 路徑放置C:WINDOWSSystem32
 輸入法設定檔控制台
3.應用軟體處理程序
 應用軟體的執行檔,多屬於一般程序,但是仍有
一些應用程式,例如防毒軟體,會同時啟動屬於
系統服務程序及一般程序的執行檔。
 常見的應用軟體程序:
iexplore.exe: IE瀏覽器的執行程序。
注意1 : 開機之後若沒有執行IE,但是卻在Windows工
作管理員視窗中發現該程序檔,必定為惡意程式。
C:Program FilesInternet Explorer
注意2: iexplorer.exe,為惡意程式
Kaspersky Labs 6ht Annual Partner Conference ·Turkey, June 2-6 2004Kaspersky Labs 6th Annual Partner Conference ·Turkey, 2-6 June 2004
登錄檔說明之功用說明
19
開啟登錄檔編輯視窗
惡意程式常修改分類
一、Auto-start Registry Locations
 Autostart Registry Locations: 當使用者登入系統時
,在這個機碼(key)下的的程式或Script會被自動執行
起來
二、Folder Autostart Locations
三、File AutoStart Locations
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
HKLMSoftwareMicrosoftWindowsCurrentVersionRun
HKCUSoftwareMicrosoftWindowsCurrentVersionRun
HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnce
HKCUSoftwareMicrosoftWindowsCurrentVersionRunOnce
HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnceSetup
HKLMSoftwareMicrosoftWindowsCurrentVersionRunOnceEx
HKLMSoftwareMicrosoftWindowsCurrentVersionRunServices
HKLMSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce
HKCUSoftwareMicrosoftWindows NTCurrentVersionWindowsload
HKCUSoftwareMicrosoftWindows NTCurrentVersionWindowsrun
HKLMSoftwarePoliciesMicrosoftWindowsSystemScripts
HKCUSoftwarePoliciesMicrosoftWindowsSystemScripts
1. : 當使用者登入系統,
在這個機碼(key)下的的程式或Script會被自動執行
2. 當IE啟動時,一定會被載入工具列
 HKLMSoftwareMicrosoftWindowsCurrentVersi
onExplorerBrowser Helper Objects
3.每次啟動CMD.exe時,在這個機碼下的命令會被
執行
 HKLMSoftwareMicrosoftCommand Processor
AutoRun
 HKCUSoftwareMicrosoftCommand Processor
AutoRun
4. 當執行特定種類檔案時,惡意程式會一併被執行
 預設值為:“%1” %*
 惡意程式將會改成
malware :“%1” %*
 HKLMSoftwareClassesexefileshellopencommand
 HKEY_CLASSES_ROOTvbsfileshellopencommand
(Visual Basic Script檔(.vbs))
 HKEY_CLASSES_ROOTvbefileshellopencommand
(編碼過的Visual Basic Script檔(.vbe))
5. 在這機碼下的CLSID會對應到
HKLMSoftwareClassesCLSID{GUID}InProcServer
每當IE啟動時,它們會被IE載入:
 HKLMSoftwareMicrosoftWindowsCurrentVersi
onShellServiceObjectDelayLoad
 HKCUSoftwareMicrosoftWindowsCurrentVersio
nShellServiceObjectDelayLoad
6.可以自訂不同的使用者介面:
 HKCUSoftwareMicrosoftWindowsCurrentVers
ionPoliciesSystemShell
7.包含被允許的Shell Extensions表列:
 HKLMSoftwareMicrosoftWindowsCurrentVer
sionShell ExtensionsApproved
8. 當使用者登入系統時,在這個機碼裡的DLLs會被
Windows-based應用程式載入
 HKLMSoftwareMicrosoftWindows
NTCurrentVersionWindowsAppInit_DLLs
9. 當Windows NT會執行標準的GINA DLL
(MSGina.d)。當GinaDLL機碼存在時,在這機碼
下面的DLL會被Winlogon在載入。
 HKLMSoftwareMicrosoftWindows
NTCurrentVersionWinlogonGinaDLL
10.更改原來的SHell(explorer.exe)且在這機碼下的
執行檔會被Userinit.exe啟動
 HKLMSoftwareMicrosoftWindows NT
CurrentVersionWinlogonShell
 HKCUSoftwareMicrosoftWindows NT
CurrentVersionWinlogonShell
11. 在這機碼下的程式會在System Mode被啟動
 HKLMSoftwareMicrosoftWindows NT
CurrentVersionWinlogonSystem
12. 可以定義系統所使用的工作管理員
 HKLMSoftwareMicrosoftWindows NT
CurrentVersionWinlogonTaskMan
13. 當使用者登入系統時,在這機碼下的程式會被
Winlogon執行。預設是Userinit.exe
 HKLMSoftwareMicrosoftWindows NT
CurrentVersionWinlogonUserInit
14.這機碼下的DLLs會接收和處理由Winlogon產生
的事件(event)
 HKLMSoftwareMicrosoftWindows NT
CurrentVersionWinlogonNotify
15. 當系統啟動時,在這個機碼裡的程式會被執行
 HKLMSystemCurrentControlSetControlSessio
n ManagerBootExecute
16.在這機碼下的服務,大部份會以LocalSystem的
權限啟動
 HKLMSystemCurrentControlSetServices
17.微軟使用這個機碼來設定已經安裝的視窗元件
(Windows component)
 HKLMSoftwareMicrosoftActive Setup
Installed Components
18.記錄現行使用者(Current User)的啟動目錄(「開
始」功能表=>程式集=>啟動,亦即,
%USERPROFILE%「開始」功能表程式集啟
動)
 HKCUSoftwareMicrosoftWindowsCurrentVers
ionExplorerUser Shell FoldersStartup
 HKLMSoftwareMicrosoftWindowsCurrentVer
sionexplorerUser Shell FoldersCommon
Startup
19. 這機碼下的子機碼記載每個程式的路徑和完整
的執行路徑名稱
 HKLMSoftwareMicrosoftWindowsCurrentVer
sionApp Paths
20. 這是用來檢查應用程式的問題,但惡意程式會
利用它,以達到執行的目的
 HKLMSOFTWAREMicrosoftWindows NT
CurrentVersionImage File Execution Options
21.在這機碼下COM Objects會記錄執行的命令。
預設值是shell32.dll:
 HKLMSoftwareMicrosoftWindowsCurrentVer
sionExplorerShellExecuteHooks
二、Folder Autostart Locations
 %USERPROFILE%「開始」功能表程式集啟動
 %ALLUSERSPROFILE%「開始」功能表程式集啟動
 %SystemRootTasks (排程工作的目錄)
三、File AutoStart Locations
 在%SystemRoot%目錄內。某些人會使用的一個
技巧,就是在C:目錄底下產生一個同樣取名為
explorer.exe。 當Windows在開機時,並未指定
explorer.exe應該在哪個目錄底下,所以,開機
時會從根目錄開始尋找該檔案來執行
 %SystemDrive%autoexec.bat
 %SystemDrive%config.sys
 wininit.ini: 是Windows在開機時用來預先載入某
些應用程式的方法。
舉例說明:
[boot]
shell=explorer.exe virusfile.exe
 winstart.bat
 win.ini: 是載入系統設定,例如驅動程式、桌布畫
面等等。
舉例說明:
[Windows]
load=virusfile.exe
run=virusfile.exe
Kaspersky Labs 6ht Annual Partner Conference ·Turkey, June 2-6 2004Kaspersky Labs 6th Annual Partner Conference ·Turkey, 2-6 June 2004
惡意程式判斷—基本檢查
36
第一招:檢查合法及惡意程序
 執行程序之正確拼法、大小寫、路徑位置檢查
第二招:
檢查惡意程式最常更改的機碼位置
(資料來源: F-Secure 2007)
HKLMSoftwareMicrosoftWindowsCurrentVersio
nRun,佔了總數的 39.8%
Kaspersky Labs 6ht Annual Partner Conference ·Turkey, June 2-6 2004Kaspersky Labs 6th Annual Partner Conference ·Turkey, 2-6 June 2004
識別及移除惡意程式注意事項
39
注意事項
1. 防毒軟體有更新過新的病毒碼就先使用新的病毒
碼再掃過一遍
2. 關閉系統還原功能
步驟:
開始
控制台
系統
系統還原 
關閉所有磁碟上的系統還原
注意事項 (Cont.)
3. 在「安全模式」可以刪除病毒及綁架程式,但無
法刪除在Boot Mode(出現Logo時)就載入啟動的
惡意程式
4.儘量不要馬上刪容易引起當機的系統程式,如:
 winlogon.exe,
 svchost.exe
 explorer.exe,
 lsass.exe,
 services.exe。
若是萬一被注入DLL Injection請使用Live CD光碟開機後
再去刪DLL檔案
注意事項 (Cont.)
 惡意程式清除成功是指「開機後沒再出現」,也
就是Disable惡意程式的行為使其不能運作,而不
是一定要刪除中毒的所有檔案。

Malware Analysis - Basic and Concept