端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc

上傳人:good****022 文檔編號(hào):116495857 上傳時(shí)間:2022-07-05 格式:DOC 頁(yè)數(shù):34 大?。?44.52KB
收藏 版權(quán)申訴 舉報(bào) 下載
端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc_第1頁(yè)
第1頁(yè) / 共34頁(yè)
端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc_第2頁(yè)
第2頁(yè) / 共34頁(yè)
端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc_第3頁(yè)
第3頁(yè) / 共34頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì)( 論論 文文) 端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn) 論論文作者姓名:文作者姓名: 申申請(qǐng)請(qǐng)學(xué)位學(xué)位專(zhuān)業(yè)專(zhuān)業(yè): : 申申請(qǐng)請(qǐng)學(xué)位學(xué)位類(lèi)別類(lèi)別: : 指指導(dǎo)導(dǎo)教教師師姓姓名名( (職職稱(chēng)稱(chēng)) ): : 論論文提交日期:文提交日期: 端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn)端口掃描與檢測(cè)技術(shù)的實(shí)現(xiàn) 摘摘 要要 隨著 Internet 日益廣泛的應(yīng)用,黑客攻擊行為也是有增無(wú)減。如何有效地 抵御這種攻擊行為,一直是信息安全領(lǐng)域的焦點(diǎn)。 而其中,端口掃描技術(shù)吸引了越來(lái)越多人的關(guān)注。端口掃描是黑客搜集目 標(biāo)主機(jī)信息的一種常用方法。為了有效地對(duì)付網(wǎng)絡(luò)入侵行為,對(duì)端口掃描進(jìn)行研 究是非常有

2、益和必要的。攻擊者在攻擊一個(gè)目標(biāo)時(shí),首先要獲取目標(biāo)的一些基 本信息,端口掃描就是其中最簡(jiǎn)單最重要的方法之一,它可以掃描目標(biāo)機(jī)器中 開(kāi)放的端口,從而確定目標(biāo)機(jī)器中提供的服務(wù),為下一步攻擊做準(zhǔn)備。針對(duì)端 口掃描技術(shù),相應(yīng)的端口掃描檢測(cè)技術(shù)顯的越發(fā)重要,作為網(wǎng)絡(luò)安全技術(shù)中的 一個(gè)重要課題,端口掃描檢測(cè)技術(shù)意義重大。 本文首先闡述了端口掃描技術(shù)以及端口掃描檢測(cè)技術(shù)的基本原理和常用方 法,然后在此基礎(chǔ)上設(shè)計(jì)了一個(gè)對(duì)基于網(wǎng)絡(luò)的端口進(jìn)行掃描,能判斷出目標(biāo)主 機(jī)端口開(kāi)放情況的程序以及一個(gè)從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,再通 過(guò)統(tǒng)計(jì)判斷是否存在端口掃描行為的程序,最后從攻擊和防御的角度對(duì)端口掃 描和檢測(cè)技術(shù)

3、作了演示及分析。 關(guān)鍵詞關(guān)鍵詞:端口;端口掃描;數(shù)據(jù)包捕獲;端口檢測(cè) The Realization of Port Scanning and Detecting Technology Abstract As the widely applying of Internet, the attacking behavior made by hacker is increasing but not decreasing. How to resist this kind of attacking behavior is always the key point of the domain of the

4、 information security. And the port scanning draws peoples attention more and more. Port scanning is a usual method which is used by the hacker to collect the information of the target main processor. In order to deal with the invading behavior of the Internet effectively, it is very useful and nece

5、ssary to work on the port scanning. When an attacker attacks to a target, he or she will firstly gets some basic information about the target, and the port scanning is one of the most simple and important methods which can scan the opening Port of the target machine to make sure the offering service

6、 made by the target machine, and it is a preparation to the next attacking. The port detecting seems more and more important referring to the port scanning. As an important task of the secure technique of Internet, the port detecting is of great significance. In this thesis, it firstly elaborates th

7、e basic principles and usual methods of the port scanning. On this basis, it then designs a program which can scan the Port of the Internet, and assess the opening situation of the target main processor, and the other program which begins on capturing and analyzing the information packet of Internet

8、, and then assess whether there is a behavior about port scanning through statistic analyses. Lastly, it demonstrates and analyses the technology of port scanning and port detecting from the viewpoint of attacking and resisting. Key Words:port; port scanning; packet capture; port detecting 目目 錄錄 論文總

9、頁(yè)數(shù):23 頁(yè) 1引言1 1.1本課題研究的意義1 1.2本課題的研究方法2 2端口掃描概述2 2.1基本概念2 2.2端口掃描原理3 2.3端口掃描技術(shù)簡(jiǎn)介5 3檢測(cè)端口掃描概述7 3.1端口掃描檢測(cè)的分析7 3.2普通端口掃描檢測(cè)技術(shù)概述8 3.3慢速端口掃描檢測(cè)技術(shù)概述9 3.4端口掃描的分布式檢測(cè)概述9 3.5主流的端口掃描工具.11 4端口掃描的實(shí)現(xiàn).12 4.1掃描程序的設(shè)計(jì)原理.12 4.2程序流程圖.12 5檢測(cè)端口掃描的實(shí)現(xiàn).13 5.1檢測(cè)程序的設(shè)計(jì)原理.13 5.2程序流程圖.13 5.3設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼.14 6性能測(cè)試.18 6.1端口掃描程序性能測(cè)試.18 6.2檢

10、測(cè)端口掃描程序性能測(cè)試.19 結(jié) 論.20 參考文獻(xiàn).21 致 謝.22 聲 明.23 第 1 頁(yè) 共 23 頁(yè) 1 1 引言引言 隨著科學(xué)技術(shù)的飛速發(fā)展,21 世紀(jì)的地球人已經(jīng)生活在信息時(shí)代。20 世紀(jì) 人類(lèi)的兩大科學(xué)技術(shù)成果計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù),均已深入到人類(lèi)社會(huì)的 各個(gè)領(lǐng)域,Internet 把“地球村”的居民們緊密聯(lián)系在一起, “天涯若比鄰” 已然成為現(xiàn)實(shí)。 互聯(lián)網(wǎng)之所以能這樣迅速蔓延,被世人所接受,是因?yàn)樗邆涮赜械男畔?資源。無(wú)論對(duì)商人、學(xué)者,還是對(duì)社會(huì)生活中的普通老百姓,只要你進(jìn)入網(wǎng)絡(luò) 的世界,就能找到其隱藏的奧妙,就能得到你所需要的信息。近年來(lái) Internet 的迅速發(fā)展,給

11、人們的日常生活帶來(lái)了全新的感受, “網(wǎng)絡(luò)生存”已經(jīng)成為時(shí)尚, 同時(shí)人類(lèi)社會(huì)諸如政治、科研、經(jīng)濟(jì)、軍事等各種活動(dòng)對(duì)信息網(wǎng)絡(luò)的依賴(lài)程度 已經(jīng)越來(lái)越強(qiáng), “網(wǎng)絡(luò)經(jīng)濟(jì)”時(shí)代已初露端倪。 然而,網(wǎng)絡(luò)技術(shù)的發(fā)展在給我們帶來(lái)便利的同時(shí)也帶來(lái)了巨大的隱患,尤 其是 Internet 和 Intranet 的飛速發(fā)展對(duì)網(wǎng)絡(luò)安全提出了前所未有的挑戰(zhàn)。技 術(shù)是一把雙刃劍,不法分子試圖不斷利用新的技術(shù)伺機(jī)攻入他人的網(wǎng)絡(luò)系統(tǒng), 而肩負(fù)保護(hù)網(wǎng)絡(luò)安全重任的系統(tǒng)管理員則要利用最新的網(wǎng)絡(luò)技術(shù)來(lái)防范各種各 樣的非法網(wǎng)絡(luò)入侵行為。事實(shí)已經(jīng)證明,隨著互聯(lián)網(wǎng)的日趨普及,在互聯(lián)網(wǎng)上 的犯罪活動(dòng)也越來(lái)越多,特別是 Internet 大范圍

12、的開(kāi)放以及金融領(lǐng)域網(wǎng)絡(luò)的接 入,使得越來(lái)越多的系統(tǒng)遭到入侵攻擊的威脅。而作為黑客入侵的前奏,端口 掃描是最常見(jiàn)的信息獲取手段,端口掃描的檢測(cè)技術(shù)在當(dāng)今已經(jīng)越來(lái)越成為一 個(gè)重要的課題。 本文首先對(duì)端口掃描技術(shù)進(jìn)行研究,并開(kāi)發(fā)一個(gè)能查詢(xún)目標(biāo)主機(jī)端口開(kāi)放 情況的程序;然后重點(diǎn)研究端口掃描的檢測(cè)技術(shù),從對(duì)數(shù)據(jù)包的捕獲和分析著 手,再定義一個(gè)判斷是否掃描的條件,并通過(guò)統(tǒng)計(jì)由定義的掃描條件判斷是否 存在端口掃描行為,不但能對(duì)一般的掃描、快速掃描能夠檢測(cè),且在一定程度 上對(duì)慢速掃描也能很好的檢測(cè)。 1.11.1 本課題研究的意義本課題研究的意義 在今天快速發(fā)展的 Internet 中,黑客攻擊方法層出不窮,

13、網(wǎng)絡(luò)的安全性已 經(jīng)越來(lái)越受到威脅。要保證計(jì)算機(jī)資源的保密性、有效性、完整性也變得越來(lái) 越困難。 端口掃描作為黑客攻擊的一個(gè)重要方面,也在不停地向前發(fā)展,掃描手段 已經(jīng)變得越來(lái)越豐富,越來(lái)越隱蔽,越來(lái)越具有威脅性。如何有效的對(duì)端口掃 描行為進(jìn)行檢測(cè),已經(jīng)是越來(lái)越重要的一個(gè)課題,這對(duì)于保證我們網(wǎng)絡(luò)的安全 性有著重要的意義,也是入侵檢測(cè)系統(tǒng)(IDS)和入侵預(yù)防系統(tǒng)(IPS)的一個(gè) 重點(diǎn)。 第 2 頁(yè) 共 23 頁(yè) 1.21.2 本課題的研究方法本課題的研究方法 本文分別對(duì)端口掃描技術(shù)以及端口掃描的檢測(cè)技術(shù)作了研究,并設(shè)計(jì)出一 個(gè)根據(jù)掃描者向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測(cè)數(shù)據(jù)包,并記錄目標(biāo)

14、主機(jī) 的響應(yīng),通過(guò)分析響應(yīng)來(lái)判斷服務(wù)端口是打開(kāi)還是關(guān)閉,進(jìn)而得知端口的狀態(tài) 的端口掃描程序,以及一個(gè)從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,通過(guò)統(tǒng)計(jì) 判斷是否存在端口掃描行為的端口掃描檢測(cè)程序。 2 2 端口掃描概述端口掃描概述 2.12.1 基本概念基本概念 端口的含義: 在網(wǎng)絡(luò)技術(shù)中,端口(Port)大致有兩種意思:一是物理意義上的端口,比 如,ADSL Modem、集線器、交換機(jī)、路由器用于連接其他網(wǎng)絡(luò)設(shè)備的接口,如 RJ-45 端口、SC 端口等等。二是邏輯意義上的端口,一般是指 TCP/IP 協(xié)議中的 端口,端口號(hào)的范圍從 0 到 65535,比如用于瀏覽網(wǎng)頁(yè)服務(wù)的 80 端口,用于 F

15、TP 服務(wù)的 21 端口等等。 我們這里將要介紹的就是邏輯意義上的端口。 端口分類(lèi): 邏輯意義上的端口有多種分類(lèi)標(biāo)準(zhǔn),下面將介紹兩種常見(jiàn)的分類(lèi): 按端口號(hào)分布劃分: (1)知名端口(Well-Known Ports) 知名端口即眾所周知的端口號(hào),范圍從 0 到 1023,這些端口號(hào)一般固定分 配給一些服務(wù)。比如 21 端口分配給 FTP 服務(wù),25 端口分配給 SMTP(簡(jiǎn)單郵件 傳輸協(xié)議)服務(wù),80 端口分配給 HTTP 服務(wù),135 端口分配給 RPC(遠(yuǎn)程過(guò)程調(diào) 用)服務(wù)等等。 (2)動(dòng)態(tài)端口(Dynamic Ports) 動(dòng)態(tài)端口的范圍從 1024 到 65535,這些端口號(hào)一般不固定

16、分配給某個(gè)服務(wù), 也就是說(shuō)許多服務(wù)都可以使用這些端口。只要運(yùn)行的程序向系統(tǒng)提出訪問(wèn)網(wǎng)絡(luò) 的申請(qǐng),那么系統(tǒng)就可以從這些端口號(hào)中分配出一個(gè)供該程序使用。比如 1024 端口就是分配給第一個(gè)向系統(tǒng)發(fā)出申請(qǐng)的程序。在關(guān)閉程序進(jìn)程后,就會(huì)釋放 所占用的端口號(hào)。 不過(guò),動(dòng)態(tài)端口也常常被病毒木馬程序所利用,如冰河默認(rèn)連接端口是 7626、WAY 2.4 是 8011、Netspy 3.0 是 7306、YAI 病毒是 1024 等等。 按協(xié)議類(lèi)型劃分: 第 3 頁(yè) 共 23 頁(yè) 按協(xié)議類(lèi)型劃分,可以分為 TCP、UDP、IP 和 ICMP(Internet 控制消息協(xié) 議)等端口。下面主要介紹 TCP 和

17、UDP 端口: (1)TCP 端口 TCP 端口,即傳輸控制協(xié)議端口,需要在客戶(hù)端和服務(wù)器之間建立連接, 這樣可以提供可靠的數(shù)據(jù)傳輸。常見(jiàn)的包括 FTP 服務(wù)的 21 端口,Telnet 服務(wù) 的 23 端口,SMTP 服務(wù)的 25 端口,以及 HTTP 服務(wù)的 80 端口等等。 (2)UDP 端口 UDP 端口,即用戶(hù)數(shù)據(jù)包協(xié)議端口,無(wú)需在客戶(hù)端和服務(wù)器之間建立連接, 安全性得不到保障。 常見(jiàn)的有 DNS 服務(wù)的 53 端口,SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)服務(wù)的 161 端口, QQ 使用的 8000 和 4000 端口等等。 2.22.2端口掃描原理端口掃描原理 掃描者向目標(biāo)主機(jī)的 TCP/

18、IP 服務(wù)端口發(fā)送探測(cè)數(shù)據(jù)包,通過(guò)探測(cè)性數(shù)據(jù)包 得到目標(biāo)主機(jī)的響應(yīng)并記錄下來(lái),通過(guò)分析響應(yīng)來(lái)判斷服務(wù)端口是打開(kāi)還是關(guān) 閉,進(jìn)而得知端口的狀態(tài)。 通常通過(guò)調(diào)用套接字函數(shù)connect ()連接到目標(biāo)計(jì)算機(jī)上,完成一個(gè)完整 的3次握手程。如果端口處于偵聽(tīng)狀態(tài),那么connect()就能成功返回。否則, 該端口不可用,即沒(méi)有提供服務(wù)。 端口掃描的第一步是向目標(biāo)主機(jī)的TCP/UDP端口發(fā)送探測(cè)數(shù)據(jù)包,然后根據(jù) 對(duì)方的回應(yīng)判斷端口是否開(kāi)放。由于網(wǎng)絡(luò)環(huán)境的差異以及操作系統(tǒng)對(duì)連接請(qǐng)求 的應(yīng)答并不一致,在端口掃描中支持多種掃描方式,以保證掃描的準(zhǔn)確和快速。 大多數(shù)掃描技術(shù)要發(fā)送原始套接字包來(lái)進(jìn)行探測(cè)。因?yàn)橹挥?/p>

19、原始套接字支持對(duì) IP 報(bào)頭的設(shè)置,即構(gòu)造IP 數(shù)據(jù)包。同時(shí),原始套接字也支持發(fā)送和接收IP數(shù) 據(jù)包。這樣,原始套接字接口實(shí)際上成為網(wǎng)絡(luò)層向上提供的接口。實(shí)現(xiàn)時(shí)可通 過(guò)調(diào)用Winsock2庫(kù)中的函數(shù)setsockopt()來(lái)設(shè)置選項(xiàng)IP_HDRINCL,以獲取自定 義IP報(bào)頭的權(quán)限。由于Windows2000僅支持Raw ICMP和Raw IGMP,不支持 RawTCP,因此,發(fā)送TCP數(shù)據(jù)包,必須通過(guò)設(shè)置選項(xiàng)IP_HDRINCL來(lái)構(gòu)造IP報(bào)頭。 首先創(chuàng)建原始套接字,定義IP首部。 IPHEADER, TCP偽首部TCPSOCHEADER和TCP首部TCPHEADER,再填充IP首部和 TCP

20、首部,其中,TCP首部中的結(jié)構(gòu)體變量tcpHeader的tcpHeade.th_flag=2,表 示發(fā)送的是SYN數(shù)據(jù)包,修改它可以實(shí)現(xiàn)不同的標(biāo)志位探測(cè),如2是SYN,0是 NULL,1是FIN,16是ACK探測(cè)等等。因?yàn)槭亲约禾畛銲P首部和TCP首部,所以還 需定義一個(gè)計(jì)算校驗(yàn)和函數(shù)checksum來(lái)計(jì)算IP報(bào)頭和TCP報(bào)頭的校驗(yàn)和。在填充 TCP首部時(shí),通過(guò)TCP偽首部填充TCP數(shù)據(jù)包的IP選項(xiàng)。事實(shí)上TCP偽首部并不是 第 4 頁(yè) 共 23 頁(yè) 真正存在的,只是用于填充TCP的一些選項(xiàng)和計(jì)算校驗(yàn)和。調(diào)用setsockopt()設(shè) 置選項(xiàng)IP_HDRINCL,根據(jù)填充TCP、IP報(bào)頭的內(nèi)容

21、構(gòu)造IP 數(shù)據(jù)包。設(shè)置偵聽(tīng)原 始套接字的同步和超時(shí)之后,調(diào)用sendto()發(fā)送IP 數(shù)據(jù)包。 發(fā)送原始套接字包流程圖如圖1所示: 圖 1 發(fā)送原始套接字包流程圖 原始套接字包發(fā)送完后,就可以接收目標(biāo)主機(jī)的回應(yīng)。當(dāng)發(fā)送原始套接字 包時(shí)(如TCP SYN數(shù)據(jù)包),操作系統(tǒng)核心并不知道,也沒(méi)有此數(shù)據(jù)發(fā)送或者連接 建立的記錄。因此,當(dāng)遠(yuǎn)端主機(jī)回應(yīng)時(shí),系統(tǒng)核心就把這些包都全部丟掉,從 而到達(dá)不了應(yīng)用程序上。所以,程序中不能簡(jiǎn)單地使用接收函數(shù)來(lái)接收這些數(shù) 據(jù)包。要達(dá)到接收數(shù)據(jù)包的目的,必須采用嗅探,接收所有通過(guò)的數(shù)據(jù)包,然 后進(jìn)行篩選,留下符合需要的。為此可以再定義一個(gè)原始套接字,用來(lái)接收數(shù) 據(jù),并在套

22、接字I/0控制函數(shù)中設(shè)置SIO_RCVALL,表示接收所有的數(shù)據(jù)。通過(guò)設(shè) 置原始套接字的I/0控制命令,便可以調(diào)用recv()接收返回的數(shù)據(jù)包。一般情況 下使用的是TCP SYN半連接掃描,由于TCPConnect()全連接掃描擁有很好的穩(wěn)定 第 5 頁(yè) 共 23 頁(yè) 性,這種技術(shù)用得非常多。通常通過(guò)調(diào)用套接字函數(shù)connect()連接到目標(biāo)計(jì)算 機(jī)上,完成一個(gè)完整的3 次握手過(guò)程。如果端口處于偵聽(tīng)狀態(tài),那么connect() 就能成功返回。否則,該端口不可用,即沒(méi)有提供服務(wù)。以上實(shí)現(xiàn)的端口掃描, 可以得到每個(gè)端口的狀態(tài),此處的狀態(tài)并非端口本身的性質(zhì),而是對(duì)掃描結(jié)果 的描述。端口狀態(tài)可以分為5

23、種:open(開(kāi)放的)、closed(關(guān)閉的)、 filtered(被過(guò)濾的)、unfiltered(未被過(guò)濾的)和open filtered(開(kāi)放或者 被過(guò)濾的)。 2.32.3端口掃描技術(shù)簡(jiǎn)介端口掃描技術(shù)簡(jiǎn)介 常用的端口掃描技術(shù)主要有以下幾種: (1)TCP connect() 掃描 這是最基本的TCP掃描。 利用操作系統(tǒng)提供的connect系統(tǒng)調(diào)用,用來(lái)與每一個(gè)感興趣的目標(biāo)計(jì)算機(jī) 的端口進(jìn)行連接。如果端口處于偵聽(tīng)狀態(tài),則connect就能成功。否則,這個(gè)端 口是不能用的,即沒(méi)有提供服務(wù)。 這個(gè)技術(shù)的最大的優(yōu)點(diǎn)是,用戶(hù)不需要任何權(quán)限,系統(tǒng)中的任何用戶(hù)都有 權(quán)利使用這個(gè)調(diào)用。另一個(gè)好處就是速

24、度快。如果對(duì)每個(gè)目標(biāo)端口以串行的方 式,使用單獨(dú)的connect()調(diào)用,那么將會(huì)花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,用戶(hù)可以通過(guò)同 時(shí)打開(kāi)多個(gè)套接字,從而加速掃描。使用非阻塞I/O允許設(shè)置一個(gè)較低的超時(shí)時(shí) 限,同時(shí)觀察多個(gè)套接字。但這種方法的缺點(diǎn)是很容易被發(fā)覺(jué),并且被過(guò)濾掉。 目標(biāo)計(jì)算機(jī)的logs文件會(huì)顯示一連串的連接和連接是否出錯(cuò)的服務(wù)消息,并且 能很快地使它關(guān)閉。 (2)TCP SYN掃描 這種技術(shù)通常認(rèn)為是“半開(kāi)放”掃描,這是因?yàn)閽呙璩绦虿槐匾蜷_(kāi)一個(gè) 完全的TCP連接。 掃描程序發(fā)送的是一個(gè)SYN數(shù)據(jù)包,好象準(zhǔn)備打開(kāi)一個(gè)實(shí)際的連接并等待反 應(yīng)一樣(參考TCP的三次握手建立一個(gè)TCP連接的過(guò)程)。一個(gè)S

25、YN/ACK 的返回 信息表示端口處于偵聽(tīng)狀態(tài)。一個(gè)RST返回,表示端口沒(méi)有處于偵聽(tīng)?wèi)B(tài)。如果收 到一個(gè)SYN/ACK,則掃描程序必須再發(fā)送一個(gè)RST信號(hào),來(lái)關(guān)閉這個(gè)連接過(guò)程。 這種掃描技術(shù)的優(yōu)點(diǎn)在于一般不會(huì)在目標(biāo)計(jì)算機(jī)上留下記錄,但這種方法的缺 點(diǎn)是,必須要有root權(quán)限才能建立自己的SYN數(shù)據(jù)包,不過(guò)這個(gè)條件一般都是很 容易滿足的。 (3)TCP FIN掃描 有的時(shí)候有可能SYN掃描都不夠秘密。一些防火墻和包過(guò)濾器會(huì)對(duì)一些指定 的端口進(jìn)行監(jiān)視,有的程序能檢測(cè)到這些掃描。相反,F(xiàn)IN數(shù)據(jù)包可能會(huì)順利通 第 6 頁(yè) 共 23 頁(yè) 過(guò)。 這種掃描方法的思想是關(guān)閉的端口會(huì)用適當(dāng)?shù)腞ST來(lái)回復(fù)FIN數(shù)

26、據(jù)包。另一 方面,打開(kāi)的端口會(huì)忽略對(duì)FIN數(shù)據(jù)包的回復(fù)。這種方法和系統(tǒng)的實(shí)現(xiàn)有一定的 關(guān)系。如果有的系統(tǒng)不管端口是否打開(kāi),都回復(fù)RST,那么這種掃描方法就不適 用了。但這種方法在區(qū)分Unix和NT時(shí)是十分有用的。 (4)IP段掃描 這種不能算是新方法,只是其他技術(shù)的變化。 它并不是直接發(fā)送TCP探測(cè)數(shù)據(jù)包,是將數(shù)據(jù)包分成二個(gè)較小的IP段。這樣 就將一個(gè)TCP頭分成好幾個(gè)數(shù)據(jù)包,從而過(guò)濾器就很難探測(cè)到。但一些程序在處 理這些小數(shù)據(jù)包時(shí)會(huì)有些問(wèn)題。 (5)FTP返回攻擊 FTP協(xié)議的一個(gè)的特點(diǎn)是它支持代理FTP連接。即入侵者可以從自己的計(jì)算 機(jī)和目標(biāo)主機(jī)的FTP server-PI(協(xié)議解釋器)連

27、接,建立一個(gè) 控制通信連接。然后,請(qǐng)求這個(gè)server-PI激活一個(gè)有效的server-DTP(數(shù)據(jù)傳 輸進(jìn)程)來(lái)給Internet上任何地方發(fā)送文件。對(duì)于一個(gè)User-DTP,這是個(gè)推測(cè), 盡管RFC明確定義請(qǐng)求一個(gè)服務(wù)器發(fā)送文件到另一個(gè)服務(wù)器是可以的,但當(dāng)前的 大多數(shù)實(shí)現(xiàn)并不支持,因?yàn)檫@個(gè)特性“能用來(lái)發(fā)送不能跟蹤的郵件和新聞,給 許多服務(wù)器造成打擊,用盡磁盤(pán),企圖越過(guò)防火墻”。 利用FTP返回攻擊的目的是從一個(gè)代理的FTP服務(wù)器來(lái)掃描TCP端口。這樣, 用戶(hù)能在一個(gè)防火墻后面連接到一個(gè)FTP服務(wù)器,然后掃描端口。如果FTP服務(wù) 器允許從一個(gè)目錄讀寫(xiě)數(shù)據(jù),你就能發(fā)送任意的數(shù)據(jù)到發(fā)現(xiàn)的打開(kāi)的端

28、口。對(duì) 于端口掃描,這個(gè)技術(shù)是使用PORT命令來(lái)表示被動(dòng)的User DTP正在目標(biāo)計(jì)算機(jī) 上的某個(gè)端口偵聽(tīng)。然后入侵者試圖用LIST命令列出當(dāng)前目錄,結(jié)果通過(guò) Server-DIP發(fā)送出去。如果目標(biāo)主機(jī)正在某個(gè)端口偵聽(tīng),傳輸就會(huì)成功,(產(chǎn) 生一個(gè)150或226的回應(yīng))否則,會(huì)出現(xiàn)“425 Cant build data connection:Connection refused.”。然后,使用另一個(gè)PORT命令,嘗試目標(biāo) 計(jì)算機(jī)上的下一個(gè)端口。這種方法的優(yōu)點(diǎn)很明顯,難以跟蹤,能穿過(guò)防火墻。 主要缺點(diǎn)是速度很慢,有的FTP服務(wù)器最終能得到一些線索,關(guān)閉代理功能。 (6)UDP ICMP端口不能到

29、達(dá)掃描 這種方法與上面幾種方法的不同之處在于使用的是UDP協(xié)議。由于這個(gè)協(xié)議 很簡(jiǎn)單,所以掃描變得相對(duì)困難。 這是由于打開(kāi)的端口對(duì)掃描探測(cè)并不發(fā)送一個(gè)確認(rèn),關(guān)閉的端口也并不需 要發(fā)送一個(gè)錯(cuò)誤數(shù)據(jù)包。幸運(yùn)的是,許多主機(jī)在你向一個(gè)未打開(kāi)UDP端口發(fā)送一 個(gè)數(shù)據(jù)包時(shí),會(huì)返回一個(gè)ICMP_PORT_UNREACH錯(cuò)誤。這樣你就能發(fā)現(xiàn)哪個(gè)端口是 第 7 頁(yè) 共 23 頁(yè) 關(guān)閉的。UDP和ICMP錯(cuò)誤都不保證能到達(dá),因此,這種掃描器必須還實(shí)現(xiàn)一個(gè)在 包看上去是丟失的時(shí)候能重新傳輸。這種掃描方法是很慢的,因?yàn)镽FC對(duì)ICMP錯(cuò) 誤消息的產(chǎn)生速率作了規(guī)定。同樣,這種掃描方法需要具有root權(quán)限。 (7)UDP

30、 recvfrom()和write()掃描。 當(dāng)非root用戶(hù)不能直接讀到端口不能到達(dá)錯(cuò)誤時(shí),Linux能間接地在它們到 達(dá)時(shí)通知用戶(hù)。比如,對(duì)一個(gè)關(guān)閉的端口的第二個(gè)write()調(diào)用將失敗。在非阻 塞的UDP套接字上調(diào)用recvfrom()時(shí),如果ICMP出錯(cuò)還沒(méi)有到達(dá)時(shí)會(huì)返回 EAGAIN-重試。如果ICMP到達(dá)時(shí),返回ECONNREFUSED-連接被拒絕。這就是用來(lái) 查看端口是否打開(kāi)的技術(shù)。 (8)TCP 反向 ident 掃描 ident 協(xié)議(rfc1413)允許看到通過(guò) TCP 連接的任何進(jìn)程的擁有者的用戶(hù) 名,即使這個(gè)連接不是由這個(gè)進(jìn)程開(kāi)始的。 例如,掃描者能連接到 Http 端

31、口,然后用 ident 來(lái)發(fā)現(xiàn)服務(wù)器是否正在以 root 權(quán)限運(yùn)行。這種方法只能在和目標(biāo)端口建立了一個(gè)完整的 TCP 連接后才能 看到。 總之,為了避過(guò)目標(biāo)系統(tǒng)的日志審計(jì)和防火墻的阻截,為了避過(guò)目標(biāo)系統(tǒng) 的端口掃描檢測(cè),入侵者往往會(huì)采用一系列方法來(lái)改變正常的端口掃描方式, 以達(dá)成端口掃描的隱蔽性,這些方法包括:改變掃描端口的順序、慢速掃描、 端口掃描間隔隨機(jī)化、隨機(jī)化掃描包的其它區(qū)域、偽造源地址掃描和分布式掃 描等。 3 3 檢測(cè)端口掃描概述檢測(cè)端口掃描概述 3.13.1 端口掃描檢測(cè)的分析端口掃描檢測(cè)的分析 端口掃描是一臺(tái)主機(jī)對(duì)多個(gè)目標(biāo)端口進(jìn)行試探,包括打開(kāi)的和沒(méi)有打開(kāi)的 端口。這就為檢測(cè)端

32、口掃描提供了兩條“線索”:一是“是否存在試圖連接已 經(jīng)關(guān)閉端口的行為” ;二是“在一段時(shí)間內(nèi),是否存在從一個(gè)源地址發(fā)出的數(shù)據(jù) 包到達(dá)多個(gè)目的地址的行為” 。 檢測(cè)端口掃描的方法主要有兩種: 一種是對(duì)主機(jī)沒(méi)有對(duì)外提供服務(wù)的端口進(jìn)行監(jiān)聽(tīng),如果檢測(cè)到有對(duì)這樣的 端口的連接請(qǐng)求,就認(rèn)為有掃描發(fā)生; 另一種檢測(cè)方法是對(duì)整個(gè)網(wǎng)絡(luò)流量進(jìn)行監(jiān)控,檢查網(wǎng)絡(luò)中所有的數(shù)據(jù),并 對(duì)異常情況進(jìn)行記錄。 在本文中,為了便于對(duì)端口掃描檢測(cè)進(jìn)行研究,從端口掃描檢測(cè)的角度出 發(fā),把端口掃描技術(shù)分為普通掃描,慢速掃描及分布式掃描,并在后面的介紹 第 8 頁(yè) 共 23 頁(yè) 中分別對(duì)不同的檢測(cè)方法作了介紹。 3.23.2普通普通端口

33、掃描檢測(cè)技術(shù)概述端口掃描檢測(cè)技術(shù)概述 目前比較常見(jiàn)的端口掃描就是一對(duì)一的掃描關(guān)系,如下圖2所示,即只有一 個(gè)掃描者,且掃描者從本身出發(fā),不經(jīng)過(guò)任何隱藏通過(guò)發(fā)送探測(cè)性數(shù)據(jù)包來(lái)判 斷目標(biāo)主機(jī)的端口開(kāi)放情況。 圖2 普通掃描技術(shù) 針對(duì)這種一對(duì)一的普通或快速的端口掃描技術(shù),目前端口掃描的檢測(cè)技術(shù) 采用的方法有Snort方法、Watcher方法和PortSentry方法等三種,都能很好的 檢測(cè)出這種掃描。 它們進(jìn)行端口掃描檢測(cè)采用的算法大致可以概括如下:在M秒內(nèi),監(jiān)測(cè)從同 一源端發(fā)出的數(shù)據(jù)包, 如果其目的IP與目的端口的組合數(shù)目超出N的話, 則認(rèn)為 是一次掃描。 Snort是一個(gè)輕量級(jí)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)

34、。它的探測(cè)引擎采用模塊化的插件 結(jié)構(gòu),允許開(kāi)發(fā)者擴(kuò)展Snort的功能, 也可以使得用戶(hù)可以按自己的需要定制功 能。Snort檢測(cè)端口掃描的方法是:在Y秒內(nèi), 如果檢測(cè)到從同一個(gè)源發(fā)出,目的 為不同的主機(jī)和端口的組合的TCP或UDP包的數(shù)目超出閾值X, 則認(rèn)為是掃描。其 中X和Y的值可以由用戶(hù)自己設(shè)定。另外, Snort也同樣可以檢測(cè)有奇異標(biāo)志的 TCP包。 Watcher是一個(gè)比較完整的基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)的設(shè)計(jì)代碼。它檢測(cè)所 有通過(guò)的信息包, 并且將它認(rèn)為是惡意的攻擊行為記錄在syslog中。它的檢測(cè) 原理是:如果在短時(shí)間內(nèi)有超過(guò)7個(gè)以上的端口收到信息包(不管類(lèi)型如何) , 那么這一事件就

35、被當(dāng)成端口掃描記錄下來(lái)。 PortSentry是基于主機(jī)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的一個(gè)組成部分,主要用來(lái)檢 測(cè)外部對(duì)主機(jī)的端口掃描,它能夠?qū)Χ喾N掃描方法進(jìn)行檢測(cè)。它的檢測(cè)原理是: 對(duì)沒(méi)有開(kāi)放服務(wù)的端口的訪問(wèn)有可能是一次掃描。通過(guò)監(jiān)測(cè)沒(méi)有開(kāi)放服務(wù)的端 口,在最近n次連接里由同一個(gè)源發(fā)起的連接超過(guò)X次則判斷為一次掃描。 以上幾種掃描檢測(cè)方法對(duì)端口掃描所采用的檢測(cè)技術(shù)都比較簡(jiǎn)單,且存在 第 9 頁(yè) 共 23 頁(yè) 以下缺點(diǎn): (1)無(wú)法檢測(cè)慢速掃描, 因?yàn)樵跈z測(cè)中時(shí)間窗是個(gè)固定值, 只要掃描速度 低于這個(gè)閾值, 攻擊者就可以成功地逃避檢測(cè)。當(dāng)設(shè)定的時(shí)間閾值大到一定程 度時(shí),需要從相當(dāng)長(zhǎng)時(shí)間的網(wǎng)絡(luò)連接記錄中找

36、出掃描行為,系統(tǒng)資源消耗較大,無(wú) 法適應(yīng)寬帶網(wǎng)絡(luò)尤其是高速網(wǎng)絡(luò)環(huán)境; 從理論上講,黑客總能夠以略大于系統(tǒng)設(shè) 定閾值的時(shí)間間隔進(jìn)行端口掃描; (2)未考慮到受保護(hù)網(wǎng)段的特點(diǎn), 對(duì)網(wǎng)段內(nèi)所有主機(jī)都采用相同的檢測(cè)策 略, 效率不高而且容易導(dǎo)致誤報(bào)。 3.33.3慢慢速端口掃描檢測(cè)技術(shù)概述速端口掃描檢測(cè)技術(shù)概述 慢速端口掃描是在普通端口掃描技術(shù)上進(jìn)化而來(lái)的,可以說(shuō)是黑客技術(shù)提 高的體現(xiàn)。 通常普通端口掃描的掃描者對(duì)被掃描者發(fā)送探測(cè)性數(shù)據(jù)包都是快速的,被 掃描者在進(jìn)行捕包判斷上就會(huì)顯得比較容易,而慢速掃描與普通掃描一樣,都 是一對(duì)一,即掃描者和被掃描者都只有一個(gè),但是其對(duì)目標(biāo)主機(jī)發(fā)送探測(cè)性數(shù) 據(jù)包的時(shí)間

37、間隔上就變化很大,可以在1分鐘發(fā)送一個(gè)探測(cè)性數(shù)據(jù)包后20分鐘再 繼續(xù)發(fā)送探測(cè)性數(shù)據(jù)包,也或者在發(fā)送一個(gè)探測(cè)性數(shù)據(jù)包后時(shí)間就遞增,產(chǎn)生 一個(gè)時(shí)間上的變化,總之給檢測(cè)端口掃描帶來(lái)了極大的困難,這就需要用新的 規(guī)則,新的技術(shù)來(lái)進(jìn)行端口檢測(cè)。 在目前的慢速掃描檢測(cè)技術(shù)中,模糊技術(shù)是應(yīng)用的比較好的能檢測(cè)出慢速 端口掃描的新型技術(shù)。 3.43.4端口端口掃描的分布式檢測(cè)概述掃描的分布式檢測(cè)概述 在當(dāng)前端口掃描技術(shù)中,比較難以檢測(cè)的是分布式掃描,針對(duì)分布式掃描, 不能采取對(duì)普通掃描及慢速掃描的檢測(cè)方法。 如下圖 3 所示,分布掃描是指掃描者通過(guò)控制其他多臺(tái)計(jì)算機(jī)對(duì)目標(biāo)主機(jī) 進(jìn)行數(shù)據(jù)包探測(cè),這樣,被掃描者所捕

38、獲的數(shù)據(jù)包就是來(lái)自于不同的 IP,但是 實(shí)際掃描者通過(guò)所控制的計(jì)算機(jī)對(duì)應(yīng)答數(shù)據(jù)包的分析依然能夠判斷出目標(biāo)主機(jī) 的端口開(kāi)放情況,被掃描者雖然所捕獲到的探測(cè)性數(shù)據(jù)包其 IP 是正確的,但是 受到了 IP 欺騙,并沒(méi)有判斷出真正的掃描者,在這種情況下通常的檢測(cè)方法對(duì) 分布式掃描是無(wú)效的。當(dāng)然,在分布式掃描的基礎(chǔ)上加以慢速掃描,則是更加 難以檢測(cè)的掃描技術(shù)。 第 10 頁(yè) 共 23 頁(yè) 圖 3 分布式掃描技術(shù) 在當(dāng)前的分布式掃描檢測(cè)技術(shù)中,最常用的是在進(jìn)行端口掃描檢測(cè)時(shí),將 系統(tǒng)分成兩個(gè)部分: 第一部分是傳感器,它的功能是判斷一個(gè)包的異常程度,賦給包一個(gè)異常 值。如果一個(gè)包有異常,則從網(wǎng)絡(luò)數(shù)據(jù)中過(guò)濾出

39、來(lái),進(jìn)行下一步的處理;如果 一個(gè)包沒(méi)有異常,則簡(jiǎn)單地丟棄。 第二部分是分析器,它對(duì)異常包進(jìn)行匯集、分類(lèi)、分析。首先將異常包根 據(jù)其不同特性分成不同的類(lèi),然后再對(duì)不同的類(lèi)計(jì)算一個(gè)類(lèi)的異常值總和。如 果一個(gè)類(lèi)的異常值總和超過(guò)了閾值,則判斷為掃描。在分布式端口掃描檢測(cè)系 統(tǒng)中,傳感器分布在一個(gè)大網(wǎng)的各個(gè)子網(wǎng)內(nèi),采集網(wǎng)絡(luò)上的各種有關(guān)掃描異常 數(shù)據(jù);而分類(lèi)器是一個(gè)匯總的分析器,通過(guò)匯總分析網(wǎng)絡(luò)內(nèi)各個(gè)子網(wǎng)的數(shù)據(jù), 可以更好地分析網(wǎng)絡(luò)上出現(xiàn)的掃描情況。 分布式檢測(cè)方法具有很多優(yōu)點(diǎn): 首先,它能夠?qū)崿F(xiàn)分布式掃描的檢測(cè)。因?yàn)榉植际綊呙杵鋻呙璋哂幸欢?的異常性,所以這些包可以被第一步的檢測(cè)從網(wǎng)絡(luò)數(shù)據(jù)中過(guò)濾出來(lái)。

40、在第二步 進(jìn)行分類(lèi)分析的時(shí)候,由于這些分布式掃描的包具有一個(gè)共同的特性,即掃描 對(duì)象是同一個(gè)主機(jī)或同一個(gè)端口,因此它們可以被聚集到一個(gè)類(lèi)里,從而被檢 測(cè)為掃描。其次,這種方法也能夠檢測(cè)慢速的掃描。由于網(wǎng)絡(luò)上巨大的通信量, 所以在以前的檢測(cè)方法里檢測(cè)時(shí)間窗T必須很小,否則會(huì)消耗掉太多的內(nèi)存和 CPU時(shí)間而癱瘓。而采用該方法,由于分析器只需分析處理異常包,因此可以取 一個(gè)很大的時(shí)間窗T,從而檢測(cè)出慢速的掃描。 另外,分布式檢測(cè)方法具有很好的實(shí)時(shí)性。由于傳感器只需要判斷一個(gè)包 的異常程度,而不需要判斷是否屬于掃描,因此可以實(shí)現(xiàn)一個(gè)很快的異常包過(guò) 濾器。而傳統(tǒng)的檢測(cè)方法,例如,SNORT在接收到一個(gè)包

41、以后,首先檢查包的結(jié) 第 11 頁(yè) 共 23 頁(yè) 構(gòu),然后檢查現(xiàn)有的掃描列表,相對(duì)來(lái)說(shuō)是很費(fèi)時(shí)間的。 異常包的檢測(cè): 首先,需要有一個(gè)準(zhǔn)則來(lái)確定網(wǎng)絡(luò)上一個(gè)包的異常程度。通過(guò)分析已有的 一些檢測(cè)工具、掃描工具、以及入侵者用以躲避掃描檢測(cè)的方法,總結(jié)出下面 的包是異常的包: (1)帶有奇怪標(biāo)志位的包有可能是掃描包; (2)沒(méi)有正確的執(zhí)行TCP協(xié)議握手過(guò)程的包有可能是掃描包; (3)連接后馬上斷開(kāi),沒(méi)有具體協(xié)議內(nèi)容的包,有可能是掃描包; (4)對(duì)沒(méi)有開(kāi)放服務(wù)的端口的連接包有可能是掃描包。 掃描技術(shù)在進(jìn)步,相應(yīng)的檢測(cè)技術(shù)也在相應(yīng)提高,現(xiàn)今還出現(xiàn)了一種新的 檢測(cè)分布式掃描的方法,其原理是靠統(tǒng)計(jì)流量來(lái)進(jìn)行

42、判斷,也能很好的檢測(cè)出 分布式掃描。但是由于網(wǎng)絡(luò)上的流量非常的大,且相當(dāng)?shù)牟还潭?,要定義一定 時(shí)間內(nèi)的流量有很大的困難,所以這種檢測(cè)方法還存在很多缺陷,容易產(chǎn)生誤 判為端口掃描,也容易放過(guò)真正的端口掃描行為。 3.53.5主流的端口掃描工具主流的端口掃描工具 常用的幾種端口掃描檢測(cè)器有: NSM(The Network Security Monitor)、Gr IDS、Snort和Portsentry等。 NSM是最早的基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng),它認(rèn)為所有與大于15個(gè)其它主機(jī)建 立連接的主機(jī)都是掃描者。這種算法是許多檢測(cè)系統(tǒng)檢測(cè)算法的雛形。 Gr IDS通過(guò)建立網(wǎng)絡(luò)連接拓?fù)鋱D來(lái)檢測(cè)端口掃描。它使

43、用節(jié)點(diǎn)代表主機(jī), 如果主機(jī)間存在數(shù)據(jù)交換,就在相應(yīng)的節(jié)點(diǎn)間連線。一次掃描試探就會(huì)在掃描 者的主機(jī)和被掃描者的主機(jī)之間建立一條連線,Gr IDS通過(guò)計(jì)算一個(gè)節(jié)點(diǎn)上存 在多少連線的方法判斷是不是有端口掃描行為。這種方法不能檢測(cè)秘密掃描, 速度相對(duì)較慢,具體的端口掃描行為的判斷需要人工完成。 Snort是基于libpcap的一個(gè)源代碼公開(kāi)的輕量級(jí)的入侵檢測(cè)系統(tǒng)。它的端 口檢測(cè)功能是通過(guò)一個(gè)嵌入程序來(lái)完成。Snort的掃描檢測(cè)器通過(guò)計(jì)算“在時(shí)間 X秒內(nèi)有Y個(gè)TCP或UDP數(shù)據(jù)包從一個(gè)源地址發(fā)往不同的目的地址”來(lái)確定是否有 端口掃描行為;Snort能查找單個(gè)不正常的TCP包。缺點(diǎn)是不能檢測(cè)分布式掃描、

44、慢速掃描,不能處理分片。 Portsentry是基于主機(jī)的端口掃描檢測(cè)器。它指定多個(gè)TCP/UDP端口進(jìn)行監(jiān) 聽(tīng),當(dāng)這些端口被試圖連接或掃描時(shí),能在瞬間捕捉連接或掃描企圖;它能有 效捕捉非連續(xù)隨機(jī)掃描,生成外界掃描動(dòng)作的詳細(xì)日志記錄,并將發(fā)起掃描的 主機(jī)地址寫(xiě)入tcp_wrapper的host.deny文件中,并重指掃描者路由,把信息流 第 12 頁(yè) 共 23 頁(yè) 重定向到一個(gè)不存在的主機(jī)。缺點(diǎn)是僅限于對(duì)一臺(tái)單機(jī)進(jìn)行端口掃描分析;判 斷規(guī)則過(guò)于嚴(yán)格,正常的掃描容易被誤認(rèn)為是端口掃描行為。 4 4 端口掃描的實(shí)現(xiàn)端口掃描的實(shí)現(xiàn) 4.14.1掃描程序的設(shè)計(jì)原理掃描程序的設(shè)計(jì)原理 在進(jìn)行端口掃描的設(shè)

45、計(jì)與開(kāi)發(fā)中,利用三次握手的原理,建立原始套接字, 通過(guò)向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測(cè)性數(shù)據(jù)包,并記錄目標(biāo)主機(jī)的響應(yīng) 情況,最后通過(guò)分析響應(yīng)情況來(lái)判斷目標(biāo)主機(jī)服務(wù)端口是打開(kāi)還是關(guān)閉,進(jìn)而 得知端口的狀態(tài)。 4.24.2程序流程圖程序流程圖 如下圖 4 所示,所開(kāi)發(fā)的端口掃描流程圖: 圖 4 端口掃描流程圖 第 13 頁(yè) 共 23 頁(yè) 5 5 檢測(cè)端口掃描的實(shí)現(xiàn)檢測(cè)端口掃描的實(shí)現(xiàn) 5.15.1檢測(cè)程序的設(shè)計(jì)原理檢測(cè)程序的設(shè)計(jì)原理 在檢測(cè)端口掃描程序的設(shè)計(jì)與開(kāi)發(fā)中,這里首先是采取通過(guò)套接字來(lái)進(jìn)行 數(shù)據(jù)包的捕獲,再通過(guò)解 IP 包,然后對(duì)所解出的 TCP 包和 UDP 包分別再進(jìn)行解 包

46、,并記錄下到達(dá)的端口,以及源 IP 地址,目的 IP 地址,目的端口,再設(shè)計(jì) 一種算法,通過(guò)算法對(duì)數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)分析,最后設(shè)定一個(gè)判斷發(fā)生掃描行為 的條件,當(dāng)滿足條件有三次及三次以上的相同源 IP 且到達(dá)端口的不同的數(shù)據(jù)包 即判斷發(fā)生端口掃描行為。 此檢測(cè)端口掃描程序的設(shè)計(jì)不但可以檢測(cè)一般的掃描和快速掃描,在一定 的程度上也能檢測(cè)慢速掃描。 以前的端口掃描檢測(cè)方法都是采用在一個(gè)固定的時(shí)間窗 T 內(nèi)查看從同一個(gè) 源地址發(fā)起的連接數(shù) X , 如果 X 超出了設(shè)定的閥值, 則判斷為一次掃描。由于 網(wǎng)絡(luò)上的通信量非常大, 所以以前的端口掃描方法都會(huì)設(shè)定一個(gè)很小的時(shí)間窗 T ,防止消耗掉過(guò)多的內(nèi)存和 C

47、PU 時(shí)間。由于本文提出的方法與時(shí)間窗無(wú)關(guān), 所 以在不降低系統(tǒng)整體性能的前提下,在慢速掃描發(fā)送探測(cè)性數(shù)據(jù)包時(shí)間間隔上 不超出所設(shè)計(jì)程序所能記錄數(shù)據(jù)包的最大上限的情況下仍能很好的檢測(cè)慢速掃 描。 5.25.2程序流程圖程序流程圖 如下圖 5 所示,所開(kāi)發(fā)的檢測(cè)端口掃描程序基本流程圖: 第 14 頁(yè) 共 23 頁(yè) 圖 5 端口檢測(cè)流程圖 5.35.3設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼 在此端口掃描檢測(cè)程序設(shè)計(jì)中,重點(diǎn)在于設(shè)計(jì)一個(gè)算法,用于研究是否存 在端口掃描行為,算法是此設(shè)計(jì)的重點(diǎn)。 就此設(shè)計(jì)的檢測(cè)程序來(lái)說(shuō),在捕獲數(shù)據(jù)包后所解的 TCP 包和 UDP 包,由于 在分析中要分別考慮 TCP 包和

48、UDP 包,但是對(duì)兩種包的分析都是一樣的,現(xiàn)我 們只詳細(xì)闡述分析 TCP 包的情況。 在所設(shè)計(jì)用于檢測(cè)端口掃描的算法中,首先是一個(gè)統(tǒng)計(jì)函數(shù),用于對(duì)通過(guò) 第 15 頁(yè) 共 23 頁(yè) 套接字捕獲數(shù)據(jù)包的統(tǒng)計(jì): void statistics(char szProtocol,char szSourceIP,int iSourcePort,char szDestIP) if(strcmp(szProtocol,“TCP“) if(TCP_MAX=MAX_LEN_REC) TCP_MAX=0; if(TCP_MAX=0) strcpy(TCP_RECTCP_MAX.szProtocol,szProtoc

49、ol); strcpy(TCP_RECTCP_MAX.szSourceIP,szSourceIP); TCP_RECTCP_MAX.iSourcePort=iSourcePort; strcpy(TCP_RECTCP_MAX.szDestIP,szDestIP); +TCP_MAX; else if(check(TCP_REC,szDestIP,iSourcePort,TCP_MAX-1) /調(diào)用 check 函數(shù) strcpy(TCP_RECTCP_MAX.szProtocol,szProtocol); strcpy(TCP_RECTCP_MAX.szSourceIP,szSourceIP)

50、; TCP_RECTCP_MAX.iSourcePort=iSourcePort; strcpy(TCP_RECTCP_MAX.szDestIP,szDestIP); +TCP_MAX; 在統(tǒng)計(jì)的時(shí)候這里需要調(diào)用一個(gè) check 函數(shù)即檢測(cè)函數(shù),此函數(shù)的作用是 用于排除完全相同的數(shù)據(jù)包,由于在分析中不需要對(duì)完全相同的數(shù)據(jù)包進(jìn)行分 析,以免出現(xiàn)重復(fù)情況產(chǎn)生誤判,所以在統(tǒng)計(jì)時(shí)候這里需要先把完全相同的數(shù) 據(jù)包進(jìn)行排除,以保證存入 TCP_REC中的數(shù)據(jù)包是完全沒(méi)有任何是一個(gè)是相 同的。 bool check(STATISTIC TYPE,char szDestIP,int port,int coun

51、t) /check 函數(shù),比 較協(xié)議類(lèi)型,目的 IP,端口,計(jì)數(shù)(count) int i=0; bool flag=true; for(i=count;i=0;i-) if(!strcmp(TYPEi.szDestIP,szDestIP) break; return flag; 對(duì)所捕獲的數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)后,接著是對(duì)所捕獲的 TCP 包以及 UDP 數(shù)據(jù) 包進(jìn)行分析的分析函數(shù),首先是一個(gè)用于存放不同 IP 的 rec,在這里我們用 到一個(gè)臨時(shí)變量 temp,用于幫助對(duì)不同 IP 的提取,最后再根據(jù)所記錄的不同 IP 到 TCP_REC中進(jìn)行提取符合 IP 的數(shù)據(jù)包信息,再存入 tcp_tem中

52、,在 tcp_tem中就是經(jīng)過(guò)統(tǒng)計(jì)分析后的所捕獲的探測(cè)性數(shù)據(jù)包。 void analysis_tcp(STATISTIC tcp)/對(duì) IP,端口進(jìn)行分析的函數(shù),判定是否為端 口掃描行為 STATISTIC tcp_temMAX_LEN_REC,recMAX_LEN_REC,temp; int i=0;int count=0,reccount=0; strcpy(temp.szProtocol,tcp0.szProtocol); strcpy(temp.szSourceIP,tcp0.szSourceIP); temp.iSourcePort=tcp0.iSourcePort; strcpy(

53、temp.szDestIP,tcp0.szDestIP); /臨時(shí)變量記錄第一條數(shù)據(jù)包的情況 strcpy(recreccount.szProtocol,tcp0.szProtocol); strcpy(recreccount.szSourceIP,tcp0.szSourceIP); recreccount.iSourcePort=tcp0.iSourcePort; strcpy(recreccount.szDestIP,tcp0.szDestIP); /將第一條記錄保存到地址列表中 for(i=0;i=0;t-) /進(jìn)入 for 循環(huán),將 reccount 的值賦給 t,t 大于等于 0,t

54、 的值減 1 if(!strcmp(temp.szDestIP,rect.szDestIP) flag=false; break; /反向搜索地址記錄表如果有相同的則不記錄 if(flag) +reccount; strcpy(recreccount.szProtocol,temp.szProtocol); strcpy(recreccount.szSourceIP,temp.szSourceIP); recreccount.iSourcePort,temp.iSourcePort; strcpy(recreccount.szDestIP,temp.szDestIP); /沒(méi)有相同的則將該不同

55、的地址記錄到數(shù)組中 /if 條件判斷 /如果相同則不記錄 /for 循環(huán) system(“cls“); printf(“nTCP_REC 中的數(shù)據(jù)是:n“); for(i=0;iTCP_MAX;i+) printf(“%s:%dn“,TCP_RECi.szDestIP,TCP_RECi.iSourcePort); for(i=0;i=reccount;i+) int j=0;count=0; memset(tcp_tem,0,100*sizeof(STATISTIC); for(j;jTCP_MAX;j+) 第 18 頁(yè) 共 23 頁(yè) if(!strcmp(reci.szDestIP,tcpj

56、.szDestIP) strcpy(tcp_temcount.szProtocol,tcpj.szProtocol); strcpy(tcp_temcount.szSourceIP,tcpj.szSourceIP); tcp_temcount.iSourcePort=tcpj.iSourcePort; strcpy(tcp_temcount.szDestIP,tcpj.szDestIP); +count; 在程序的最后,由于此設(shè)計(jì)是需要判斷是否發(fā)生端口掃描行為,這里就需 要設(shè)定一個(gè)條件來(lái)定義端口掃描行為。 在此設(shè)計(jì)中,我們定義掃描行為是當(dāng)有 3 個(gè)或 3 個(gè)以上的探測(cè)性數(shù)據(jù)包且 其源 IP 一

57、致的數(shù)據(jù)包存在的時(shí)候就判斷為端口掃描行為,當(dāng)然在這里能夠定義 更多或者更少的探測(cè)性數(shù)據(jù)包為發(fā)生端口掃描行為條件,只要檢測(cè)程序在當(dāng)記 錄到有 3 個(gè)或 3 個(gè)以上的數(shù)據(jù)包且源 IP 一致的數(shù)據(jù)包對(duì)本機(jī)進(jìn)行連接的時(shí)候能 顯示出來(lái)所發(fā)出的探測(cè)性數(shù)據(jù)包并判斷為存在端口掃描行為,并顯示出掃描者 的 IP 信息以及對(duì)本機(jī)所掃描的端口。 此檢測(cè)端口掃描程序設(shè)計(jì)對(duì)一般的以及快速掃描均能很好的掃描,在一定 程度上能很好的檢測(cè)慢速掃描,雖然并沒(méi)有設(shè)定時(shí)間閾值,不會(huì)存在當(dāng)設(shè)定的 時(shí)間閾值大到一定程度時(shí),需要從相當(dāng)長(zhǎng)時(shí)間的網(wǎng)絡(luò)連接記錄中找出掃描行為, 系統(tǒng)資源消耗較大,無(wú)法適應(yīng)寬帶網(wǎng)絡(luò)尤其是高速網(wǎng)絡(luò)環(huán)境;但是畢竟所分

58、析的 數(shù)據(jù)包有個(gè)定量,掃描者總能以略大于系統(tǒng)設(shè)定數(shù)據(jù)包捕獲定量的時(shí)間間隔進(jìn) 行端口掃描,所以說(shuō)針對(duì)慢速掃描只能在一定程度上實(shí)現(xiàn)。 6 6 性能測(cè)試性能測(cè)試 6.16.1端口掃描程序性能測(cè)試端口掃描程序性能測(cè)試 在端口掃描程序設(shè)計(jì)完成后,用開(kāi)發(fā)出的端口掃描程序作了一個(gè)性能演示, 如下圖 6 所示,掃描者通過(guò)掃描命令向 IP 為 192.168.1.102 的目標(biāo)主機(jī)的 1- 10000 端口進(jìn)行了發(fā)送探測(cè)性數(shù)據(jù)包掃描,并根據(jù)回應(yīng)顯示目標(biāo)主機(jī)的端口開(kāi) 放情況。 第 19 頁(yè) 共 23 頁(yè) 圖 6 端口掃描效果顯示圖 如圖 6 顯示,IP 為 192.168.1.102 的目標(biāo)主機(jī)在 1-10000

59、 端口中,開(kāi)放的 端口有 21,25,81,82,83,110,119,139,143。 6.26.2檢測(cè)端口掃描程序性能測(cè)試檢測(cè)端口掃描程序性能測(cè)試 再用所開(kāi)發(fā)的檢測(cè)端口掃描程序作了測(cè)試,針對(duì)攻擊者的掃描行為,捕獲 探測(cè)性數(shù)據(jù)包,并進(jìn)行分析,當(dāng)收到同一地址而且目的端口不同的數(shù)據(jù)包有3個(gè) 時(shí),能準(zhǔn)確判斷出來(lái)自掃描者的端口掃描行為。 如下圖7所示,當(dāng)程序運(yùn)行并有IP為192.168.1.7的掃描者向本機(jī)發(fā)起掃描 時(shí)候,能顯示IP為192.168.1.7的掃描者發(fā)起了端口掃描行為,能作出判斷并顯 示出相應(yīng)的信息。 圖 7 檢測(cè)端口掃描效果顯示圖 第 20 頁(yè) 共 23 頁(yè) 如圖 7 顯示當(dāng)本機(jī)遭受

60、到掃瞄者掃描時(shí),程序能對(duì)掃描者發(fā)起的探測(cè)性的 數(shù)據(jù)包進(jìn)行捕獲,并記錄下來(lái),當(dāng)有 3 個(gè)來(lái)自于同一 IP,且目的端口不同的時(shí) 候程序就判定為遭到了來(lái)自于所捕獲數(shù)據(jù)包源 IP 主機(jī)的掃描。 這種情況是在只有一個(gè)掃描者的時(shí)候能正確顯示出掃描者的信息以及掃描 者對(duì)本機(jī)哪些端口進(jìn)行了掃描。 當(dāng)程序運(yùn)行并且有 IP 為 192.168.1.7 和 192.168.1.103 的兩個(gè)掃描者向本 機(jī)發(fā)起掃描時(shí)候,能顯示 IP 為 192.168.1.7 和 192.168.1.7 的掃描者對(duì)本機(jī)發(fā) 起了端口掃描行為,并能將探測(cè)性數(shù)據(jù)包顯示出來(lái)且能作出判斷并顯示出相應(yīng) 的信息,對(duì)用戶(hù)作出報(bào)警,由此可見(jiàn)掃描者的個(gè)

61、數(shù)并不會(huì)影響程序的正常檢測(cè), 如下圖 8 所示: 圖 8 多掃描者進(jìn)行掃描時(shí)檢測(cè)端口掃描效果顯示圖 如圖 8 顯示當(dāng)本機(jī)遭受到有兩個(gè)掃瞄者掃描時(shí),程序能對(duì)掃描者發(fā)起的探 測(cè)性的數(shù)據(jù)包進(jìn)行捕獲,并記錄下來(lái),當(dāng)有 3 個(gè)來(lái)自于同一 IP,且目的端口不 同的時(shí)候程序就判定為遭到了來(lái)自于所捕獲數(shù)據(jù)包源 IP 主機(jī)的掃描。在這種情 況下有兩個(gè)不同 IP 的掃描者對(duì)本機(jī)進(jìn)行掃描,程序能分辨出不同的 IP 并顯示 出來(lái)遭受到來(lái)自?xún)蓚€(gè)掃描者的掃描。 結(jié)結(jié) 論論 本文首先介紹了各種掃描技術(shù),以及分析入侵者可以逃避檢測(cè)的各種方法。 其后又介紹了現(xiàn)有的各種端口掃描檢測(cè)工具,并對(duì)它們的原理和功能進(jìn)行了分 析。 檢測(cè)端

62、口掃描是防止系統(tǒng)被攻擊的一個(gè)重要手段,是 IDS 的主要內(nèi)容。文中 第 21 頁(yè) 共 23 頁(yè) 分析了端口掃描基本原理,總結(jié)了現(xiàn)有檢測(cè)工具存在的主要問(wèn)題,對(duì)現(xiàn)有檢測(cè)工具 原理進(jìn)行了闡述。 本文所設(shè)計(jì)的端口掃描程序是基于 TCP 連接設(shè)計(jì);端口檢測(cè)是基于捕獲數(shù) 據(jù)包進(jìn)行統(tǒng)計(jì)分析,能較好的解決普通掃描,并在一定程度上能檢測(cè)出慢速掃 描,尚未解決分布式掃描,本人水平有限和時(shí)間倉(cāng)促,很多問(wèn)題考慮不周全甚 至可能有錯(cuò)誤。所以請(qǐng)老師多多指正。 參考文獻(xiàn)參考文獻(xiàn) 1 Andrew S.Tanenbaum美.計(jì)算機(jī)網(wǎng)絡(luò)M.北京:清華大學(xué)出版社,1998。 2 Anonymous美.網(wǎng)絡(luò)最高安全技術(shù)指南M.北京

63、:機(jī)械工業(yè)出版社,1998。 3 David A.Solomon美.計(jì)算機(jī)網(wǎng)絡(luò)管理M.北京:清華大學(xué)出版社,1999。 4 Douglas E.Comer美.TCP/IP 網(wǎng)絡(luò)互連技術(shù)M.北京:清華大學(xué)出版社,1998。 5 David J.Kruglinski美.Visual C+ 技術(shù)內(nèi)幕M.北京:清華大學(xué)出版社,1999。 6 Anonymous美.網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)分析與設(shè)計(jì)M.北京:機(jī)械工業(yè)出版社,1998。 7 W.Richard Stevens美.TCP/IP 詳解M.北京:機(jī)械工業(yè)出版社,2000。 8 張仕斌.網(wǎng)絡(luò)安全技術(shù)M.北京:清華大學(xué)出版社,2004。 第 22 頁(yè) 共

64、23 頁(yè) 致致 謝謝 本文是在趙攀老師和盛志偉老師的熱情關(guān)心和指導(dǎo)下完成的,他們淵博的 知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。 在此向他表示我最衷心的感謝! 在論文完成過(guò)程中,本人還得到了同事和同學(xué)的熱心幫助,本人向他們表 示深深的謝意! 最后向在百忙之中評(píng)審本文的各位專(zhuān)家、老師表示衷心的感謝! 作者簡(jiǎn)介: 姓 名:謝欣 性別:男 出生年月:1983 年 11 月 18 日 民族:漢 E-mail: 第 23 頁(yè) 共 23 頁(yè) 聲聲 明明 本論文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程 系完成的。文中除了特別加以標(biāo)注地方外,

65、不包含他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研 究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書(shū)而使 用過(guò)的材料。除非另有說(shuō)明,本文的工作是原始性工作。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說(shuō)明: 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: (1)學(xué)校有權(quán)保管并向有關(guān)部門(mén)遞交學(xué)位論文的原件與復(fù)印件。 (2)學(xué)??梢圆捎糜坝 ⒖s印或其他復(fù)制方式保存學(xué)位論文。 (3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。 (4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 (5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后 遵守此規(guī)定) 。 除非另有科研合同和其他法律文書(shū)的制約,本論文的科研成果屬于成都信息 工程學(xué)院。 特此聲明! 作者簽名: 年 月 日 第 24 頁(yè) 共 23 頁(yè) “Are you hungry now?“ “No, I am tired and lazy now; if I pursue you I will not catch you, and if I catch you-through y

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!