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