劉陽 秦為 王宇賓
摘要:目前,Internet已經(jīng)得到非常廣泛的使用,但是同時,各種黑客工具和網(wǎng)絡(luò)攻擊手段也層出不窮。黑客入侵給人們造成的各種損失也越來越大,其中木馬就是被廣泛使用的黑客工具之一,它對網(wǎng)絡(luò)安全造成了極大的威脅。該文使用VC++ 6.0為開發(fā)平臺設(shè)計的一個簡單的木馬程序,主要實現(xiàn)了獲取遠程被控計算機的基本信息、鎖定其鼠標和鍵盤、注銷重啟和關(guān)閉被控計算機、隱藏并開啟其任務(wù)欄、向被控計算機發(fā)送消息等功能。
關(guān)鍵詞:木馬;遠程控制;VC;Windows Socket
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2012)23-5573-02
以Internet為代表的全球性信息化浪潮日益高漲,信息網(wǎng)絡(luò)技術(shù)的應(yīng)用正日益普及,伴隨網(wǎng)絡(luò)的普及,安全問題日益成為影響網(wǎng)絡(luò)效能的重要問題。該文詳細分析了遠程監(jiān)控模式的木馬的工作原理和設(shè)計方法,對木馬技術(shù)有詳細的認識,能夠為預(yù)防和治理黑客入侵有極大的幫助。
1系統(tǒng)總體設(shè)計
本程序利用VC6.0++這一集成開發(fā)平臺,在Windows環(huán)境下開發(fā)的一個基于遠程控制的簡單木馬實現(xiàn)。木馬編寫采用C/S結(jié)構(gòu),包括服務(wù)端Server和客戶端Client。Client上單擊每一個按鈕,就向Server端發(fā)送一個字母消息,Server端收到對應(yīng)的字母消息后,用相應(yīng)的函數(shù)進行判斷,根據(jù)收到的具體字母,Server端調(diào)用相應(yīng)的函數(shù)來具體實現(xiàn)每一個功能。系統(tǒng)客戶端和服務(wù)端通信如圖1所示。
圖1
程序中將對遠程被控主機實現(xiàn)以下操作:獲取遠程被控計算機系統(tǒng)基本信息、鎖定遠程被控計算機的鼠標操作、鎖定遠程被控計算機的鍵盤操作、注銷重啟和關(guān)閉被控計算機、隱藏并開啟被控計算機的任務(wù)欄、向被控計算機發(fā)送消息、獲取并殺死遠程被控計算機的進程。
2具體功能實現(xiàn)
當Server先在被控計算機上啟動以后,Client輸入被控計算機IP如:192.168.0.5,就可以連接上服務(wù)端,Client端單擊獲取信息按鈕,Server端收到Client發(fā)過來的消息并響應(yīng),然后Server端調(diào)用四個API函數(shù):調(diào)用函數(shù)GetSystemInfo()來返回當前系統(tǒng)的信息,調(diào)用函數(shù)GlobalMemoryStatus()來獲得當前可用的物理和虛擬內(nèi)存信息,調(diào)用函數(shù)GetVersionEx()來返回當前操作系統(tǒng)的版本信息,調(diào)用函數(shù)GetSystemMetrics()來返回與Windows環(huán)境有關(guān)的信息。Server通過調(diào)用以上函數(shù),得到系統(tǒng)消息,并返回給Client. Client端收到Server返回的消息并顯示在文本框中如圖2所示。
當Client接收到Server返回的系統(tǒng)信息和進程信息以后,單擊Client上面的清除信息按鈕就可以清除掉文本框中的信息。本功能不需要要Server和Client進行通信,client通過調(diào)用成員函數(shù)CClientDlg::OnClean(){}中的函數(shù)CClientDlg::OnClean(){}就可以實現(xiàn)。
注銷、重啟和關(guān)機這三個功能都是調(diào)用ExitWindowsEx函數(shù)實現(xiàn),所不同的是遠程重啟和關(guān)機所需要的權(quán)限較高,需要把程序進程提權(quán)。遠程重啟和關(guān)機的實現(xiàn)比較類似,只是ExitWindowsEx的調(diào)用不同(重啟EWX_REBOOT,關(guān)機EWX_SHUTDOWN)。服務(wù)端添加注銷計算機函數(shù)LogOff(),重啟計算機函數(shù)Reboot()和關(guān)機函數(shù)poweroff()。
當server與client連接以后,在client的文本框中寫入“你中木馬了”,然后單擊client的發(fā)送消息按鈕,就可以將“你中木馬了”發(fā)送到server端。Client可以不斷向server端發(fā)送消息,來干擾server端用戶的正常工作。Server接收到這條消息后通過調(diào)用API函數(shù)AfxMessageBox(),將“你中木馬了”顯示到屏幕上。
對木馬程序進行偽裝主要是希望不被殺毒軟件或網(wǎng)絡(luò)防護程序找出來,同時也不希望被有經(jīng)驗的用戶一眼就看出來,如此才能順利的進行黑客任務(wù)。利用壓縮工具對木馬進行偽裝易容是非常有技巧的應(yīng)用。
對木馬進行偽裝易容的方法和工具有很多種,但是有些木馬使用用所工具后仍然會被殺毒軟件查出來,由于他們是木馬偽裝的幫兇,因此殺毒軟件把這些工具也列入追捕之列。這里用軟件ASPack對服務(wù)端程序server.exe進行第一次壓縮易容,殺毒軟件不會將此工具當作病毒。使用此工具的作用是其一改變殺server.exe的大小,其二逃避殺毒軟件查殺。
4結(jié)論
本畢業(yè)設(shè)計主要實現(xiàn)用Visual C++6.0制作的一個基于遠程控制模式的木馬的設(shè)計。本木馬主要是對遠程控制模塊的設(shè)計方法和設(shè)計環(huán)境進行詳細的介紹。主要運用了MFC中的Socket編程技術(shù)設(shè)計的遠程控制技術(shù)的木馬,實現(xiàn)的功能比較多,主要起到了控制遠程計算機的操作,并妨礙遠程計算機正常運行的作用。同時由于時間和水平的限制,該程序還是有很多不足:1).如果操作系統(tǒng)裝有防火墻,木馬就無法運行。2).該程序忽視了木馬的植入技術(shù)的實現(xiàn),在功能設(shè)計方面還需要多加改進,如:竊聽鍵盤信息等,這樣可以使木馬的功能更豐富。
參考文獻:
[1]程秉輝,霍克.木馬攻防全攻略[M].北京:中國鐵道出版社,2005.
[2]黃維通.Visual C++面向?qū)ο笈c可視化程序設(shè)計[M].北京:清華大學(xué)出版社,2003.
[3]付慧青,黎圣,馮慶輝,李剛.黑客日記[M].濟南:山東電子音像出版社,2005.
[4]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.
[5]張仕斌,譚三.網(wǎng)絡(luò)安全技術(shù)[M].北京:清華大學(xué)出版社,2004.
[6]鄧吉.黑客攻防實戰(zhàn)入門[M].北京:電子工業(yè)出版社,2004.