由於木馬是基於遠程控制的程序,因此,中木馬的機器會開有特定的端口。一般一臺個人用的系統在開機後最多隻有137、138、139三個端口。若上網,會有其他端口,這是本機與網上主機通訊時打開的,如IE一般會打開連續的端口:1025,1026,1027等。
如果發現自己的硬盤總是莫明其妙地讀盤,軟驅燈經常自己亮起,網絡連接及鼠標、屏幕出現異常現象,很可能就是因爲有木馬潛伏在你的機器裏面,此時,就應該想辦法清除它們了。
當發現可疑文件時,可以試試能不能刪除它,因爲木馬多是以後臺方式運行,通過按“Ctrl+Alt+Del”是找不到的,而後臺運行的應是系統進程。如果在前臺進程裏找不到,而又刪不了(提示正在被使用),那就應該注意了。
在DOS命令行下用”netstat -na”命令可以看到本機所有打開的端口。如果發現除了以上所說的端口外,還有其他端口被佔用(特別是木馬常用端口被佔用),那可要好好查查了,很有可能中了木馬。
在電腦越來越普及的今天, 使用殺毒軟件明顯已經不夠,如果能知道病毒的運行方式和藏身之處,必定事半功倍,經過N久的收集,木馬通常自啓動是通過以下幾種方式:
一. 系統啓動文件夾
可能這種方式比較多,假設你當前用戶名爲 yexj00,系統盤爲C盤, 那麼對你有影響的有兩個系統啓動文件夾,就是C:\Documents and Settings\yexj00\「開始」菜單\程序\啓動和C:\Documents and Settings\All Users\「開始」菜單\程序\啓動。
[注:"All Users"即對所有用戶都有作用] 在開始菜單的“啓動”文件夾是可更改的,如果用戶更改了啓動文件夾,則以上註冊表的鍵值均會改變爲相應的名稱。
值得注意的是:開始菜單的“啓動”文件夾中的內容雖然在默認的狀態下可以被用戶看得一清二楚。但通過改動還是可以達到相當隱蔽地啓動的目的的:
首先,“啓動”文件夾中的快捷方式或其他文件的屬性可以改變爲“隱藏”。這樣可以達到系統不啓動被隱藏的文件,等到需要啓動的時候又可以通過更改回文件屬性而恢復啓動的作用。
其次,其實“啓動”文件夾只是一個普通的文件夾,但是由於系統監視了這個文件夾,所以變得有些特殊,但文件夾有的功能該文件夾也是有的。譬如“啓動”文件夾的名稱是可以更改的,並且“啓動”文件夾也可以設置屬性。如果把屬性設置爲“隱藏”,則在系統中的【開始】--【程序】菜單中是看不到“啓動”文件夾的(即使在“文件夾選項”中已經設定了“顯示所有文件”)。而系統還會啓動這個被隱藏的文件夾中的非隱藏文件。敏感的人們也許已經發現問題。舉一個例子:如果我想啓動A木馬的server端服務器,我可以把原來的“啓動”菜單的名稱更改爲“StartUp”(這裏是隨便改的,註冊表相應的鍵值也會自動更改。)之後再創建一個名爲“啓動”的文件夾,把“StartUp”菜單中的文件全部複製(這裏用複製,可以騙過用戶的檢查)到“啓動”菜單中,然後把A木馬的server程序放入“StartUp”文件夾中,最後把“StartUp”文件夾隱藏。大功告成!
從外表看來,用戶的【開始】--【啓動】目錄還在,而且要啓動的文件也在。但系統此時啓動的文件不是名爲“啓動”的文件夾中的文件,而是名爲“StartUp”的文件夾中的文件。如果木馬做的好的話,完全可以在每次啓動的時候把“StartUp”中的文件複製到“啓動”目錄中來達到實時更新啓動目錄的目的。由於“StartUp”文件夾被隱藏,從【開始】?【程序】中是無法看到真正的啓動菜單“StartUp”的,所以達到了隱蔽啓動的目的!這個啓動方式雖然比較隱蔽,但通過msconfig依舊可以在“啓動”頁中看出來。
二. 註冊表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx(winXP)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer/Shell Folders\Startup
最常用的:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
不大常用的:
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load
HKEY_USERS/Default/Software/Microsoft/Windows/CurrentVersion下所有以“Run”開頭的鍵值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit //這個不大常用,一般寫成:userinit.exe,xx.exe
注意:
(1).如果需要運行.dll文件,則需要特殊的命令行。
如:
Rundll32.exe C:WINDOWSFILE.DLL,Rundll32
(2).解除這裏相應的自啓動項只需刪除該鍵值即可,但注意不要刪除如SystemTray、ScanRegistry等這樣的系統鍵值。
(3).如果只想不啓動而保留鍵值,只需在該鍵值加入rem即可。如:
“rem C:Windowsa.exe”
(4).在註冊表中的自啓動項中沒有這項:
[HKEY_CURREN SoftwareMicrosoftWindowsCurrentVersionRunServices]
(5).Run和RunServices的區別在於:Run中的程序是在每次系統啓動時被啓動,RunServices則是會在每次登錄系統時被啓動。
關於:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx]
有特殊的語法:
例如,運行notepad.exe
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx
\"Title\"=\"My Setup Title\"
\"Flag\"=dword:00000002
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001
\"RunMyApp\"=\"||notepad.exe\"
語法爲:
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx
Flags = 0x0000000
Title = \"Status Dialog Box Title\"
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceExDepend
0001 = \"xxx1\"
000X = \"xxxx\"
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx001
Entry1 = \"MyApp1.exe\"
EntryX = \"MyApp2.exe\"
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx00x
...
注意:
(1).“xxx1,xxxx”是一個動態鏈接庫(DLL)或.OCX文件名(如My.ocx或My.dll)。
Windows自啓動方式大全(下)
2).“0001,000x”是部分名字。可以是數字和文字。
(3).“entry1,entryX”是指向一個要運行的程序文件的註冊表串值。
鍵值的說明:
Flags是一個定位在RunOnceEx鍵用來激活/禁止的DWORD值,具體如下:
值 功能 功能定義
0x00000000 默認 所有功能被禁止
0x00000004 檢查殼狀況 打開殼的讀寫校驗準備接受OLE命令
0x00000008 無報錯對話 錯誤對話框不顯示
0x00000010 創建錯誤報告文件 創建 C:WindowsRunOnceEx.err 文件如果有錯誤出現
0x00000020 創建執行報告文件 創建一個有命令狀態的C:WindowsRunOnceEx.log文件
0x00000040 無例外限制 當註冊DLL時不限制例外
0x00000080 無狀態對話 當RunOnceEx運行時狀態對話框不顯示
由於涉及篇幅較多,具體做法請瀏覽微軟網頁:
http://support.microsoft.com/support/kb/articles/Q232/5/09.ASP
2.特殊啓動1:
在註冊表中除了上述的普通的啓動方式以外,還可以利用一些特殊的方式達到啓動的目的:
[HKEY_CLASSES_ROOTexefileshellopencommand] @=\"%1\" %*
[HKEY_CLASSES_ROOTcomfileshellopencommand] @=\"%1\" %*
[HKEY_CLASSES_ROOTbatfileshellopencommand] @=\"%1\" %*
[HKEY_CLASSES_ROOThtafileshellopencommand] @=\"%1\" %*
[HKEY_CLASSES_ROOTpiffileshellopencommand] @=\"%1\" %*
[HKEY_LOCAL_MACHINESoftwareCLASSESbatfileshellopencommand] @=\"%1\" %*
[HKEY_LOCAL_MACHINESoftwareCLASSEScomfileshellopencommand] @=\"%1\" %*
[HKEY_LOCAL_MACHINESoftwareCLASSESexefileshellopencommand] @=\"%1\" %*
[HKEY_LOCAL_MACHINESoftwareCLASSEShtafileshellopencommand] @= \"%1\" %*
[HKEY_LOCAL_MACHINESoftwareCLASSESpiffileshellopencommand] @=\"%1\" %*
其實從註冊表的路徑上也許就隱約可以看出,這些都是一些經常被執行的可執行文件的鍵值。往往有些木馬是可以更改這些鍵值從而達到加載的目的:
如果我把“”%1”%*”改爲“file.exe”%1”%*”則文件file.exe就會在每次執行某一個類型的文件(要看改的是哪一個文件類型)的時候被執行! 當然,可以被更改的不一定只是可執行文件,譬如冰河就利用了TXT文件的鍵值:
[HKEY_CLASSES_ROOTtxtfileshellopencommand]實現木馬的一種啓動方式。
3.特殊啓動2:
在註冊表中:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD
的位置上有這樣的地址。該地址是系統啓動VxD驅動文件放置的地址,就像PrettyPark這個蠕蟲一樣,可以建立一個主鍵之後把VxD文件添加到註冊表中在這裏。
注意:不可以直接把一個EXE文件改名爲VxD文件,需要另外進行編程,生成的VxD文件。
三. 在Win.ini中啓動
在Win.ini的[windows]字段中有啓動命令“load=”和“run=”,在一般情況下“=”後面是空白的,如果有程序,比方說是: run=c:/windows/file.exe或load=c:/windows/file.exe,要小心了,這個file.exe很可能就是木馬。
四. 在System.ini中啓動
System.ini位於Windows的安裝目錄下,其[boot]字段的shell=Explorer.exe是木馬喜歡的隱蔽加載之所,木馬通常的做法是將該句變爲這樣:shell=Explorer. exe window.exe,注意這裏的window.exe就是木馬程序。另外,在System.ini中的[386Enh]字段,要注意檢查在此段內的“driver=路徑/程序名”,這裏也有可能被木馬所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]這三個字段,這些段也是起到加載驅動程序的作用,但也是增添木馬程序的好場所。
五. 在Autoexec.bat和Config.sys中加載運行
這種加載方式一般都需要控制端用戶與服務端建立連接後,將已添加木馬啓動命令的同名文件上傳到服務端覆蓋這兩個文件才行,而且採用這種方式不是很隱蔽,所以這種方法並不多見,但也不能因此而掉以輕心。
六. 在Winstart.bat中啓動
Winstart.bat是一個特殊性絲毫不亞於Autoexec.bat的批處理文件,也是一個能自動被Windows加載運行的文件。它多數情況下爲應用程序及Windows自動生成,在執行了Win.com並加載了多數驅動程序之後開始執行。由於Autoexec.bat的功能可以由Winstart.bat代替完成,因此木馬完全可以像在Autoexec.bat中那樣被加載運行,危險由此而來。
七. 在“開始→運行”中執行“Gpedit.msc”。 打開“組策略”,可看到“本地計算機策略”中有兩個選項:“計算機配置”與“用戶配置”,展開“用戶配置→管理模板→系統→登錄”,雙擊“在用戶登錄時運行這些程序”子項進行屬性設置,選定“設置”項中的“已啓用”項並單擊“顯示”按鈕彈出“顯示內容”窗口,再單擊“添加”按鈕,在“添加項目”窗口內的文本框中輸入要自啓動的程序的路徑,單擊“確定”按鈕就完成了。
八. 修改文件關聯
修改文件關聯是木馬常用手段(主要是國產木馬,老外的木馬大都沒有這個功能),比方說,正常情況下txt文件的打開方式爲Notepad.EXE文件,但一旦中了文件關聯木馬,則txt文件打開方式就會被修改爲用木馬程序打開,如著名的冰河就是這樣乾的。一旦你雙擊一個txt文件,原本應用Notepad打開該文件的,現在卻變成啓動木馬程序了。請大家注意,不僅僅是txt文件,其他諸如HTM、EXE、ZIP、COM等都是木馬的目標。對付這類木馬,只能檢查HKEY_CLASSES_ROOT/文件類型/shell/open/command主鍵,查看其鍵值是否正常。
九. 捆綁文件
實現這種觸發條件首先要控制端和服務端已通過木馬建立連接,然後,控制端用戶用工具軟件將木馬文件和某一應用程序捆綁在一起,然後上傳到服務端覆蓋原文件,這樣,即使木馬被刪除了,只要運行捆綁了木馬的應用程序,木馬又會被安裝上去了。綁定到某一應用程序中,如綁定到系統文件,那麼,每一次Windows啓動均會啓動木馬。
十. 僞裝在普通文件中這個方法出現的比較晚,不過現在很流行,對於不熟練的windows操作者,很容易上當。具體方法是把可執行文件僞裝成圖片或文本----在程序中把圖標改成Windows的默認圖片圖標,再把文件名改爲*.jpg.exe,由於Win98默認設置是"不顯示已知的文件後綴名",文件將會顯示爲*.jpg,不注意的人一點這個圖標就中木馬了(如果你在程序中嵌一張圖片就更完美了)。
十一.其他啓動方式:
(一).C:Explorer.exe啓動方式:
這是一種特殊的啓動方式,很少有人知道。
在Win9X下,由於SYSTEM.INI只指定了Windows的外殼文件EXPLORER.EXE的名稱,而並沒有指定絕對路徑,所以Win9X會搜索EXPLORER.EXE文件。
搜索順序如下:
(1). 搜索當前目錄。
(2). 如果沒有搜索到EXPLORER.EXE則系統會獲取
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironmentPath]的信息獲得相對路徑。
(3). 如果還是沒有文件系統則會獲取[HKEY_CURRENEnvironmentPath]的信息獲得相對路徑。
其中:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironmentPath]和[HKEY_CURRENEnvironmentPath]所保存的相對路徑的鍵值爲:“%SystemRoot%System32;%SystemRoot%”和空。
所以,由於當系統啓動時,“當前目錄”肯定是%SystemDrive%(系統驅動器),這樣系統搜索EXPLORER.EXE的順序應該是:
(1). %SystemDrive%(例如C:)
(2). %SystemRoot%System32(例如C:WINNTSYSTEM32)
(3). %SystemRoot%(例如C:WINNT)
此時,如果把一個名爲EXPLORER.EXE的文件放到系統根目錄下,這樣在每次啓動的時候系統就會自動先啓動根目錄下的EXPLORER.EXE而不啓動Windows目錄下的EXPLORER.EXE了。
在WinNT系列下,WindowsNT/Windows2000更加註意了EXPLORER.EXE的文件名放置的位置,把系統啓動時要使用的外殼文件(EXPLORER.EXE)的名稱放到了:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogonShell]
這個位置。
作爲默認這個位置是不存在的,默認爲是Explorer.exe。
具體請參考:http://www.microsoft.com/technet/security/bulletin/fq00-052.asp
注意:
一定要確定根目錄下的EXPLORER.EXE要能啓動Windows目錄下的EXPLORER.EXE,否則會導致Windows無法啓動!
現在流行的病毒CodeRed就會在C:和D:目錄下放置兩個約8KB的EXPLORER.EXE的文件!
在Windows 2000 SP2中微軟已經更改了這一方式。
(二).屏幕保護啓動方式:
Windows的屏幕保護程序是一個.scr文件。這是一個PE格式的可執行文件。如果把屏幕保護程序.scr更名爲.exe的文件,則該程序仍然可以正常啓動。類似的.exe文件更名爲.scr文件也是一樣可以被運行!
.scr文件默認存在於C:Windows目錄中,他的名字就是在“顯示”屬性中的“屏幕保護程序”中的名稱。在C:Windows目錄下的所有*.scr文件都會被Windows的“屏幕保護程序”顯示,而文件路徑本身保存在System.ini中的SCRNSAVE.EXE=的這條中。有意思的是在SCRNSAVE.EXE=這條中,其規定的路徑也包含了目錄名稱。即如果我想安裝一個.scr文件時,譬如安裝路徑爲D:SCR1.scr,而D:SCR這個目錄中還有2.scr,則在這個目錄中的所有.scr(1.scr,2.scr)文件都會被顯示在“屏幕保護程序”設置中。如果屏幕保護程序設爲“(無)”,則SCRNSAVE.EXE=這條不存在。但如果SCRNSAVE.EXE=這條所指的文件或目錄是錯誤的,則在“屏幕保護程序設置”中仍然會顯示“(無)”。
屏幕保護程序的啓動時間保存在註冊表中的這個位置上:
HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveTimeOut
時間單位爲秒,不過雖然是秒,可啓動時間卻爲分,即從60秒開始記錄,如果記錄時間小於60秒,則自動定爲1分鐘。
屏幕保護是否設置密碼的鍵值爲:
HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveUsePassword
有密碼則值爲1沒有密碼則值爲0。
由此可見,如果有人把自己所作的.exe程序更名爲.scr的程序,並使程序能夠在SYSTEM.INI中添加“SCANSAVE.EXE=/%Path%”f/ile.scr”(/%Path%/file.scr爲所需要設置的文件的路徑和文件名,如C:Program filestrojan.scr),修改註冊表中的HKEY_USERS.DEFAULTControl PaneldesktopScreenSaveTimeOut,定時間爲60,則系統只要閒置一分鐘該文件就會被啓動!
另外一個簡單的破壞方式就是可以隨機產生屏幕保護密碼並寫入相應文件的相應位置,定時間爲1分鐘,則系統只要閒置一分鐘則會被被鎖!(由於涉及問題並非自啓動問題,所以不加以討論。)
注意:由於SCANSAVE.EXE=這裏還會定義.scr文件的路徑,所以最好不要把要啓動的文件放置在.scr文件較多的一些目錄,否則容易引起懷疑。(Windows目錄除外) (三).依附啓動:
這類啓動方式已經有幾分類似病毒了。這種方法是利用病毒的傳染機制把要啓動的EXE文件附着在另外的一個和多個EXE文件上,從而達到啓動這個EXE文件就可以啓動要啓動的文件的目的。記得1999年YAI這個木馬流行的時候,它就使用了依附一個EXE文件而達到啓動的目的,但是由於BUGS和方式問題該木馬的破壞作用卻體現在了它“病毒”的一面。
使用這種啓動方法一定要注意不能破壞EXE文件(否則會很容易被發現),而且最好把木馬定位在固定的一個或者幾個EXE文件上。如:IEXPLORE.EXE(IE的EXE文件),RNAPP.EXE(撥號網絡的EXE文件)等等。
注意:這種方法的使用比較危險,技術上也需要相當功底,而且和病毒的距離很近,慎用。
(四).計劃任務啓動方式:
Windows的計劃任務是Windows的一個預置實現某些操作而使用的一個功能。但是如果利用這個功能也是能夠實現自啓動的目的的!由於很多電腦都會自動加載“計劃任務”所以隱蔽性相對不錯。
在Windows默認的情況下,計劃任務是一個個保存在C:WindowsTasks目錄下的.job文件。.job文件裏包括了啓動方式、文件路徑等一系列的信息。編制出或者使軟件自己可以寫出.job文件,則是關鍵。之後在相關地方寫入標記啓動即可。
由於時間關係,這個方法沒有來得及試驗,讀者可以自己試驗一下。
(五).AutoRun.inf啓動方式:
Autorun.inf這個標識也許大家都見過。是的,這個最常出現在光盤中,用於光盤自啓動。每次把光盤放入光驅中的時候,系統會通過這個文件來決定是否自動啓動光盤。但是有沒有想過,這個文件也可以用來自啓動一些文件!
Autorun.inf的內容通常是:
[AUTORUN]
OPEN=file.exe
ICON=icon.ico
OPEN中是插入光盤或者雙擊光盤盤符就會運行的可執行文件的名稱。
ICON中是該光驅驅動器的圖標文件。該文件可以是其他文件。如:
[AUTORUN]
OPEN=file.exe
ICON=icon.exe,2
其中icon.exe是一個有圖標文件的可執行文件,“,2”則是該文件中的第3個圖標。(“,0”是第一個圖標,無數字則默認爲第一個圖標)。
最關鍵的是該Autorun.inf文件是可以被用在硬盤的驅動器上的。也就是說,如果把光盤上的所有文件及目錄原封不動的複製到某一硬盤的根目錄下,則雙擊盤符會出現自動運行文件!
如果是木馬的話,打一個比方:一個木馬如果執行後被命名爲aaa.exe放置在C:Windows目錄下。那麼該木馬可以生成一個autorun.inf
文件於C:下,內容如下: [AUTORUN]
OPEN=Windows\aaa.exe
ICON=aaa.exe
這樣的話,盤符圖標爲aaa.exe的第一個圖標文件。則在每次雙擊C盤的時候都會執行aaa.exe文件了。但要注意的是,aaa.exe文件
最好能夠打開C盤目錄。(比較容易僞裝)
注意:
(1).autorun.inf的屬性被改爲隱藏後仍可以正常使用。
(2).autorun.inf中的路徑對相對路徑和絕對路徑都是可以實現的。也就是說,如果autorun.inf被放在1盤符下,也可以2盤符上的文件!如:
如果把autorun.inf文件放在C盤根目錄下,內容爲
[AUTORUN]
OPEN=D:CCCbbb.exe
ICON=bbb.exe
則這時如果雙擊C盤則可以執行D盤CCC目錄上的bbb.exe文件!
(3).如果沒有OPEN項目,則系統不執行任何文件,而去執行下一個命令。
(4).如果沒有ICON項目,則該盤符的圖標爲原Windows盤符圖標,但如果有ICON項卻設置錯誤,或者所設置的文件沒有圖標,則系統會顯示爲默認的空白圖標。
(5).自動啓動相關:
a.代啓動:
這種啓動方式其實只是一個方法的問題。即可以用啓動一個正常文件來啓動另一個文件,SubSeven就用過啓動Windos.exe從而啓動SubSeven的Sever文件的方法。
b.Start啓動:
在“運行“中或“MS-DOS”方式中輸入start回車,則會顯示
Runs a Windows program or an MS-DOS program.
START [options] program [arg...]
START [options] document.ext
/m[inimized] Run the new program minimized (in the background).
/max[imized] Run the new program maximized (in the foreground).
/r[estored] Run the new program restored (in the foreground). [default]
/w[ait] Does not return until the other program exits.
如果要啓動的程序配合這個命令,則可以更加隱蔽,如:
start/m file.exe
但似乎有些有啓動畫面的軟件(如金山詞霸)對這條命令並沒有反映。
c.控制面板啓動:
這是利用控制面板程序可以被類似DLL執行,從而達到啓動目的。
在控制面板中,.cpl文件是控制面板的原文件。默認的這些文件都會被放置在/%WINDOWS%/SYSTEM/目錄下的,如desk.cpl是桌面屬性、inetcpl.cpl是Internet選項之類。但這些.cpl文件全都是PE格式文件,也就是說如果用戶把一個可執行的類似DLL的.cpl文件放入%Windows%System中,則在控制面板中可看到其圖標,並可執行!
由於.cpl文件的特殊性,需要使用rundll32.exe來啓動該文件。rundll32.exe是Windows用來調用動態連接庫函數時所使用的文件,在運行中輸入: rundll32 shell32.dll,Control_RunDLL /%path%/desk.cpl,,X
其中shell32.dll爲被調用的DLL文件,意思爲調用shell32.dll中的Control_RunDLL來打開desk.cpl文件;/%path%/爲.cpl文件的路徑,默認爲C:WindowsSystem;最後的X爲desk.cpl文件的頁數:從0開始,0爲第一頁(如“顯示屬性”的“背景”),1爲第二頁(如“桌面屬性”的“屏幕保護程序”),依此類推。
但如果照上面的方法做,則該文件會在控制面板中被顯示。有兩種方法可以不讓其顯示:
(1). 不要把自己的.cpl文件放在C:WINDOWS\SYSTEM中。因爲默認的情況下Windows會加載的所有.cpl文件。如果想讓其顯示則打開C:WINDOWS下的Control.ini文件,在[MMCPL]中寫入類似:
file.cpl=D:pathfile.cpl
的命令,從而達到顯示的目的。
(2). 當你看到Control.ini文件的時候一定可以看到在[MMCPL]上面的[don‘t load]。是的,如果把你的文件以file.cpl=no的格式寫入到這裏面,那麼文件就不被加載了。反之恢復。
d.其他:
註冊表中:
HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced
的“HideFileExt”這個鍵值是確定Windows是不是顯示擴展名的值,如果其值爲1就隱藏擴展名,爲0則不隱藏。
EXE文件中:
如SirCam蠕蟲一樣,*.EXE文件的擴展名可以改名稱爲.BAT、.COM、.PIF、.SCR等,並且運行效果一樣,反過來不一定。但.EXE文件並不能更名爲.LNK文件,這也許也是SirCam的一個BUG。
寫在最後:
病毒,木馬自啓動方式日新月異,除了以上的方法外,再介紹幾種: 添加到計劃任務,將自身註冊爲服務,更改exe打開方式以及在某驅動器或文件夾下含有autorun.inf和病毒兩個文件的自啓動方式.