資源描述:
《木馬與遠(yuǎn)程控制技術(shù)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第6章木馬與遠(yuǎn)程控制技術(shù)計(jì)算機(jī)病毒分析與防治教程清華大學(xué)出版社教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程7/20/20211教學(xué)目標(biāo)木馬的網(wǎng)絡(luò)通信木馬的隱藏技術(shù)木馬的控制技術(shù)發(fā)現(xiàn)和清除木馬的方法7/20/20212教學(xué)重點(diǎn)套接字與網(wǎng)絡(luò)編程遠(yuǎn)程控制的通信的實(shí)現(xiàn)遠(yuǎn)程控制的控制技術(shù)木馬技術(shù)揭露木馬的清除方法7/20/202136.1預(yù)備知識7/20/20214套接字API函數(shù)socket建立套接字bind將套接字和本地ip地址綁定connect和一個套接字建立連接accept接受一個套接字的連接請求listen服務(wù)端套接字偵聽連接請求send向一個套接字發(fā)送數(shù)據(jù)recv
2、從一個套接字接收數(shù)據(jù)setsockopt設(shè)置套接字選項(xiàng)7/20/202156.2木馬分類介紹從通信方式上分從存在方式上分從破壞方式上分7/20/20216ping的結(jié)果7/20/202176.3遠(yuǎn)程控制的控制技術(shù)屏幕的截取鍵盤操作鼠標(biāo)操作進(jìn)程管理系統(tǒng)管理和文件操作7/20/20218屏幕的截取截取屏幕或窗口要用到圖形操作函數(shù)。API函數(shù)有CreateCompatibleDC、StretchBlt等。類CDC封裝了這些函數(shù)。7/20/20219虛擬鼠標(biāo)的操作鼠標(biāo)操作過程是當(dāng)控制端產(chǎn)生某種鼠標(biāo)操作如移動鼠標(biāo),按左鍵或右鍵時(shí),在被控制端產(chǎn)生相應(yīng)的鼠標(biāo)操
3、作??刂贫耸髽?biāo)的捕獲使用窗口消息和消息函數(shù),主要有WM_LBUTTONDOWN、WM_LBUTTONDBLCLK、WM_RBUTTONDOWN、WM_RBUTTONDBLCLK等消息和它們對應(yīng)的消息函數(shù)。消息函數(shù)中還包含了鼠標(biāo)的位置信息。控制端將鼠標(biāo)信息發(fā)送給被控制端,控制端調(diào)用mouse_event或SendInput產(chǎn)生虛擬的鼠標(biāo)操作。7/20/202110虛擬鍵盤的操作虛擬鍵盤的操作是指在控制端的鍵盤操作,被控制端進(jìn)行同樣的操作。如PCAnywhere和QQ都提供了同樣的功能。使用鍵盤鉤子可以捕獲控制端的鍵盤操作,調(diào)用SendInput可以
4、在被控制端產(chǎn)生虛擬的鍵盤操作。7/20/202111鉤子是一個處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當(dāng)特定的消息發(fā)出,在沒有到達(dá)目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。鉤子的種類很多,每種鉤子可以截獲并處理相應(yīng)的消息,如鍵盤鉤子可以截獲鍵盤消息,外殼鉤子可以截取、啟動和關(guān)閉應(yīng)用程序的消息等。遠(yuǎn)程控制實(shí)現(xiàn)鍵盤同步時(shí)使用鍵盤鉤子捕獲鍵盤信息,某些木馬也用鍵盤鉤子來竊取鍵盤信息。在Windows中,鍵盤鉤子程序表現(xiàn)為dll文件形式,為主程序調(diào)用。主程序使用函數(shù)SetWindowsHookEx安裝鉤子,其中其中,第一個參數(shù)
5、是鉤子的類型,鍵盤鉤子可以是WH_KEYBOARD,第二個參數(shù)是鉤子函數(shù)的地址,第三個參數(shù)是包含鉤子函數(shù)的模塊句柄,第四個參數(shù)指定監(jiān)視的線程。SendInput可以產(chǎn)生虛擬的鍵盤或鼠標(biāo)信息,它的第二個參數(shù)是一個INPUT結(jié)構(gòu)指針。注意,按下一個按鈕和釋放一個按鈕是兩個不同的動作,所以必須創(chuàng)建兩個不同的INPUT結(jié)構(gòu)。7/20/202112進(jìn)程管理列舉進(jìn)程刪除進(jìn)程執(zhí)行程序控制系統(tǒng)7/20/2021136.4木馬技術(shù)揭露因?yàn)槟抉R是未經(jīng)授權(quán)而使用的遠(yuǎn)程控制程序,因此,木馬還要使用一些正常遠(yuǎn)程控制程序所不使用的方法,以達(dá)到其目的。主要表現(xiàn)在竊取鍵盤信息、
6、欺騙用戶安裝、執(zhí)行和隱藏等。竊取鍵盤信息所使用的鉤子技術(shù)已經(jīng)在上節(jié)介紹,本節(jié)主要介紹木馬安裝、執(zhí)行和隱藏。7/20/202114木馬程序的安裝利用系統(tǒng)漏洞利用瀏覽網(wǎng)頁冒名欺騙捆綁下載7/20/202115木馬的啟動集成到程序中隱藏在配置文件中潛伏在Win.ini中偽裝在普通文件中內(nèi)置到注冊表中隱形于啟動組中捆綁在啟動文件中7/20/202116舉例:文件關(guān)聯(lián)啟動木馬通過修改注冊表,例如若讓擴(kuò)展名為.txt的文件和木馬程序關(guān)聯(lián),那么木馬程序會啟動。木馬程序再調(diào)用記事本再打開被雙擊的文件,這樣木馬就悄悄地被啟動且用戶還難以發(fā)覺。7/20/202117
7、木馬的隱藏技術(shù)分析遠(yuǎn)線程技術(shù)使用注冊表插入DLL反向連接技術(shù)隱藏在回收站7/20/2021186.5一個完整的遠(yuǎn)程控制程序7/20/202119控制命令的傳送控制命令是控制端向被控制端發(fā)出的要求執(zhí)行的命令。從圖6-5界面可看出,命令有“取窗口”、“鼠標(biāo)操作”、“取進(jìn)程”、“刪進(jìn)程”、“看文件”、“刪文件”、“執(zhí)行程序”、“上傳”、“下載”、“關(guān)機(jī)”、“重啟”、“注銷”??刂泼钣米址硎荆绨l(fā)送“*windows*”表示取窗口,發(fā)送“*process*”表示取進(jìn)程信息。7/20/202120文件與圖象的傳遞文件與圖象屬于長數(shù)據(jù),發(fā)送和接收的時(shí)
8、間比較長,需要使用多線程來完成。例如,當(dāng)控制端要求取被控制端桌面,發(fā)送控制命令“*windows*”,同時(shí)啟動一個子線程,在1801端口