《網(wǎng)絡(luò)嗅探器》課程設(shè)計報告_第1頁
《網(wǎng)絡(luò)嗅探器》課程設(shè)計報告_第2頁
《網(wǎng)絡(luò)嗅探器》課程設(shè)計報告_第3頁
《網(wǎng)絡(luò)嗅探器》課程設(shè)計報告_第4頁
《網(wǎng)絡(luò)嗅探器》課程設(shè)計報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上網(wǎng)絡(luò)與信息安全技術(shù)課程報告課題名稱: 網(wǎng)絡(luò)嗅探器提交報告時間:2010年12月17日各成員的工作量劃分表網(wǎng)絡(luò)嗅探器專業(yè)組號 指導(dǎo)老師 摘要 隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)安全問題越來越被人重視。嗅探技術(shù)作為網(wǎng)絡(luò)安全攻防中最基礎(chǔ)的技術(shù),既可以用于獲取網(wǎng)絡(luò)中傳輸?shù)拇罅棵舾行畔?,也可以用于網(wǎng)絡(luò)管理。通過獲取網(wǎng)絡(luò)數(shù)據(jù)包的流向和內(nèi)容等信息,可以進行網(wǎng)絡(luò)安全分析和網(wǎng)絡(luò)威脅應(yīng)對。因此對網(wǎng)絡(luò)嗅探器的研究具有重要意義。本課程設(shè)計通過分析網(wǎng)絡(luò)上常用的嗅探器軟件,在了解其功能和原理的基礎(chǔ)上,以VC為開發(fā)平臺,使用Windows環(huán)境下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲開發(fā)庫WinPcap,按照軟件工程的思想進行

2、設(shè)計并實現(xiàn)了一個網(wǎng)絡(luò)嗅探工具。該嗅探工具的總體架構(gòu)劃分為5部分,分別是最底層的數(shù)據(jù)緩存和數(shù)據(jù)訪問,中間層的數(shù)據(jù)捕獲,協(xié)議過濾,協(xié)議分析和最頂層的圖形畫用戶界面。本嗅探器工具完成了數(shù)據(jù)包捕獲及分析,協(xié)議過濾的主要功能,實現(xiàn)了對網(wǎng)絡(luò)協(xié)議,源IP地址,目標(biāo)IP地址及端口號等信息的顯示,使得程序能夠比較全面地分析出相關(guān)信息以供用戶參考決策。關(guān)鍵詞:網(wǎng)絡(luò)嗅探;WinPcap編程接口;數(shù)據(jù)包;網(wǎng)絡(luò)協(xié)議;多線程(中文摘要在150字左右。摘要正文盡量用純文字?jǐn)⑹觥S梦逄査误w字。姓名與摘要正文之間空二行。關(guān)鍵詞與摘要之間不空行?!罢边@兩個字加粗)關(guān)鍵詞:入侵檢測系統(tǒng);感應(yīng)器;分析器;分布式入侵檢測系統(tǒng)模型N

3、etwork snifferMajor: software engineeringGroup Number: 29 Abstract With the rapid development of network technology, network security is increasingly being attention. Sniffing network security technology as the most basic offensive and defensive techniques, both used to obtain a large number of netw

4、ork transmission of sensitive information can also be used for network management. Access to network packets through the flow and content and other information, can be network security threat analysis and response networks. Therefore, the network sniffer is of great significance.The course is design

5、ed by analyzing the commonly used network sniffer software, to understand the functions and principles, based on the VC as a development platform, using the Windows environment, the development of network packet capture library WinPcap, according to software engineering design And implementation of

6、a network sniffer tool. The overall structure of the sniffer is divided into five parts, namely, the bottom of the data caching and data access, middle layer of the data capture, protocol filtering, protocol analysis and top graphic art user interface.The completed tool sniffer packet capture and an

7、alysis of data, protocol filtering of the main functions, the realization of network protocol, source IP address, destination IP address and port number and other information display, makes the program out to a more comprehensive analysis of relevant information Decision-making for user referenceKey

8、word network sniffer; WinPcap programming interface; data packet; network protocol; multi-threaded第一章 緒論嗅探器是一種利用計算機網(wǎng)絡(luò)接口監(jiān)視網(wǎng)絡(luò)數(shù)據(jù)運行,截獲網(wǎng)絡(luò)數(shù)據(jù)的工具,可用于網(wǎng)絡(luò)管理,網(wǎng)絡(luò)協(xié)議分析以及網(wǎng)絡(luò)安全等眾多方面。在網(wǎng)絡(luò)攻防技術(shù)中,嗅探器技術(shù)是最為基礎(chǔ)的一種技術(shù)。從攻防的角度,黑客可以利用嗅探器程序非法獲取網(wǎng)絡(luò)中傳輸?shù)拇罅棵舾行畔?,如賬號和口令等,對網(wǎng)絡(luò)安全極具威脅;從防守的角度,嗅探技術(shù)是基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)的最底層環(huán)節(jié),是整個系統(tǒng)的數(shù)據(jù)來源。1.1背景隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,

9、加速了全球信息化進程,各種重要數(shù)據(jù)在網(wǎng)上的傳播日益普遍,使得網(wǎng)絡(luò)安全問題越來越為人們所關(guān)注。網(wǎng)絡(luò)嗅探器作為一種網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽程序,在網(wǎng)絡(luò)安全攻防方面扮演了很重要的角色,目前已經(jīng)有不少的嗅探工具,譬如在Windows環(huán)境下,最富盛名的工具是Netxray,Sniffer pro,在UNIX環(huán)境下是sniffer和snoop,以及同時支持Linux和windows平臺的Ethereal等工具都是比較常見的。網(wǎng)絡(luò)嗅探器實際是一把雙刃劍,通過使用網(wǎng)絡(luò)嗅探器可以把網(wǎng)卡設(shè)置于混雜模式,并可以實現(xiàn)對網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包的捕獲與分析,此分析結(jié)果可供網(wǎng)絡(luò)安全分析之用,也可以為黑客發(fā)動進一步的攻擊提供有價值的信息。而

10、在網(wǎng)絡(luò)安全方面,目前使用最廣泛的TCP/IP協(xié)議存在很多安全缺陷,網(wǎng)絡(luò)嗅探器可以有效地探測在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包信息,通過對這些信息的分析利用是有助于網(wǎng)絡(luò)安全維護的。我們通過對網(wǎng)絡(luò)嗅探器的數(shù)據(jù)包捕獲與分析功能進一步了解,才能做到知己知彼,有針對性的獲取所需要的信息,利用對這些休息進行網(wǎng)絡(luò)安全協(xié)議和網(wǎng)絡(luò)威脅應(yīng)對。根據(jù)網(wǎng)絡(luò)安全技術(shù)發(fā)展分析一文中的數(shù)據(jù),2007年以來網(wǎng)絡(luò)監(jiān)聽技術(shù)出現(xiàn)了新的重要特征,傳統(tǒng)的Sniffer技術(shù)是被動的監(jiān)聽網(wǎng)絡(luò)通信,用戶名和口令,而新的Sniffer技術(shù)則主動地控制通信數(shù)據(jù)。我們通過對網(wǎng)絡(luò)嗅探器的數(shù)據(jù)包捕獲與分析功能的進一步了解,才能做到知己知彼,有針對行地獲取所需要的信息

11、,利于對這些信息進行網(wǎng)絡(luò)安全分析和網(wǎng)絡(luò)威脅應(yīng)對。因此,對網(wǎng)絡(luò)嗅探器的研究具有重要意義。1.2國內(nèi)外現(xiàn)狀Sniffer中文翻譯過來就是嗅探器,在當(dāng)前網(wǎng)絡(luò)技術(shù)中使用的非常得廣泛。Sniffer既可以做為網(wǎng)絡(luò)故障的診斷工具,已可以做為黑客嗅探和監(jiān)聽的工具。最近兩年,網(wǎng)絡(luò)嗅探監(jiān)聽(sniffer)技術(shù)出現(xiàn)了新的重要特征。傳統(tǒng)的sniffer技術(shù)是被動地監(jiān)聽網(wǎng)絡(luò)通信,用戶名和口令。而新的sniffer技術(shù)出現(xiàn)了主動地控制通信數(shù)據(jù)的特點,把sniffer技術(shù)擴展到了一個新的領(lǐng)域,Sniffer技術(shù)除了目前在傳統(tǒng)的網(wǎng)絡(luò)偵測管理外,也開始被應(yīng)用于在咨詢保全的領(lǐng)域??梢赃@樣說,sniffer技術(shù)是一把雙刃劍,如

12、何更好的利用它,了解它的一些特性,將能使用這項技術(shù)更好的為我們需求帶來便利。Sniffer的編程方法比較通用的有以下幾種:1) .winpcap這是一個比較通用的庫,相信做過抓包的工具大多人都不會陌生。2) .raw socket在2000以后的版本都比較支持此項功能,2000server有個網(wǎng)絡(luò)監(jiān)視器就是基于raw socket。3) .tdi,ndis,spi,hook socket技術(shù),這種技術(shù)比較大的不同是,可以將包截取而不僅僅是獲得包的一份拷貝。實際應(yīng)用中的Sniffer還分軟,硬兩種。軟件Sniffer的優(yōu)點在于比較便宜,易于學(xué)習(xí)使用,同時也易于交流,缺點是往往無法抓取網(wǎng)絡(luò)上所有的

13、傳輸(不如碎片),某些情況下也就可能無法真正了解網(wǎng)絡(luò)的故障和運行情況;硬件的Sniffer通常稱為協(xié)議分析儀,一把都比較昂貴,它的優(yōu)點恰恰是軟件Sniffer所欠缺的,但是昂貴是它的致命的缺點。因此目前流行的Sniffer工具都是軟件的。1.3本文工作作為論文的主要部分,本文正文的安排如下:第一部分提出相關(guān)技術(shù),剖析網(wǎng)絡(luò)嗅探器的作用和危害的同時提出論題,并介紹出現(xiàn)網(wǎng)絡(luò)嗅探器工具的原理和方法,以及本次設(shè)計中用到的Winpcap技術(shù);第二部分描述研究內(nèi)容,包括程序需求分析和系統(tǒng)的設(shè)計與實現(xiàn)。討論用戶類及特征,用戶需求,功能需求,性能需求,運行環(huán)境等因素,對嗅探工具開發(fā)的思想和過程作初步的分析和論證

14、。此外。還詳細(xì)介紹使用Winpcap開發(fā)程序的一般流程及相關(guān)功能函數(shù),以及數(shù)據(jù)包捕獲,分析,過濾等各個模塊的具體實現(xiàn)。第三部分介紹測試環(huán)境及過程,作為課程設(shè)計的最后一部分,網(wǎng)絡(luò)嗅探器的結(jié)尾工作,我們將嚴(yán)格地對我們的網(wǎng)絡(luò)嗅探器進行測試。第四部分總結(jié)這次課程設(shè)計的心得以及列出我們的參考文獻。第二章 相關(guān)技術(shù)2.1嗅探原理嗅探器是一種常用的收集有用數(shù)據(jù)的方法,嗅探器是利用計算機的網(wǎng)絡(luò)接口截獲目的地為其它計算機的數(shù)據(jù)報文的一種工具。由于組網(wǎng)方式不同,嗅探器的工作原理也有所不同,總共可以分為三類:(1) 基于網(wǎng)卡混雜模式的嗅探原理;(2) 基于ARP欺騙的網(wǎng)絡(luò)嗅探原理;(3) 基于中間人攻擊的嗅探原理。

15、本次課程設(shè)計就是利用第一種方式來實現(xiàn)嗅探器的功能,可見監(jiān)聽到所有流經(jīng)同一以太網(wǎng)網(wǎng)段的數(shù)據(jù)包,這是一種被動嗅探的方式。從以太網(wǎng)的工作原理來看,數(shù)據(jù)傳輸是基于“共享”的,所有的同一本地網(wǎng)范圍內(nèi)的計算機共同接收到相同的數(shù)據(jù)包,這意味著計算機直接的通訊都是透明可見的。正是因為這樣的原因,以太網(wǎng)卡都構(gòu)造了硬件的“過濾器”,這個過濾器將忽略掉一切和自己無關(guān)的網(wǎng)絡(luò)信息,事實上時忽略掉了與自身MAC地址不符合的信息。從網(wǎng)卡原理上來說,在一個實際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的,網(wǎng)卡接收到傳輸來的數(shù)據(jù)包,網(wǎng)卡內(nèi)的單片程序接收數(shù)據(jù)幀的目的MAC地址,根據(jù)計算機上的網(wǎng)卡驅(qū)動程序設(shè)置的接收模式判斷該不該接收,認(rèn)為

16、該接收就接收后產(chǎn)生中斷信號通知CPU,認(rèn)為不該接收就丟掉不管,所以不該接收的數(shù)據(jù)網(wǎng)卡就截斷了,計算機根本就不知道。對于網(wǎng)卡來說一般有四種接收模式:(1) 廣播方式:該模式下的網(wǎng)卡能夠接收網(wǎng)絡(luò)中的廣播信息;(2) 組播方式:設(shè)置在該模式下的網(wǎng)卡能夠接收組播數(shù)據(jù);(3) 直接方式:在這種模式下,只有目的網(wǎng)卡才能接收該數(shù)據(jù);(4) 混雜模式:在這種模式下的網(wǎng)卡能夠接收一切通過它的數(shù)據(jù)。而本次設(shè)計嗅探工具正是利用了這個特點,把網(wǎng)卡設(shè)置為“混雜模式”。因此,嗅探程序就能夠接收到整個以太網(wǎng)內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)信息了,而不管該數(shù)據(jù)是否是傳給它的。正常模式和混雜模式的兩者對比如圖2.1所示:圖2.1 網(wǎng)卡對數(shù)據(jù)包的處

17、理方式2.2捕獲機制很多網(wǎng)絡(luò)安全系統(tǒng)最首要的任務(wù)就是捕獲網(wǎng)絡(luò)上的數(shù)據(jù)信息,而網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)就解決了這個問題。網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)是從網(wǎng)絡(luò)上捕獲所有的或特定的網(wǎng)絡(luò)數(shù)據(jù)包信息,供其他網(wǎng)絡(luò)安全系統(tǒng)使用。不同的網(wǎng)絡(luò)有不同的捕獲技術(shù),不同的操作系統(tǒng)其捕獲機理也有所不同。以太網(wǎng)采用了CSMA/CD技術(shù),它使用了廣播機制,所有與網(wǎng)絡(luò)連接的機器都可以看到網(wǎng)絡(luò)上傳播的數(shù)據(jù),操作系統(tǒng)提供的捕獲機制主要有以下三種:(1) SOCK_PACKET類型套接口;(2) 數(shù)據(jù)鏈路提供者接口(Data Link Provider Interface,DLPI);(3) 伯克利數(shù)據(jù)包過濾器(Berkeley Packet F

18、ilter,BPF)。BPF主要由兩部分組成:網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分和數(shù)據(jù)包過濾部分。網(wǎng)絡(luò)轉(zhuǎn)發(fā)部分是從鏈路層中捕獲數(shù)據(jù)包并把它們轉(zhuǎn)發(fā)給數(shù)據(jù)包過濾部分,數(shù)據(jù)包過濾部分是從接收到的數(shù)據(jù)包中接受過濾規(guī)則決定的網(wǎng)絡(luò)數(shù)據(jù)包,其他數(shù)據(jù)包就拋棄。捕獲數(shù)據(jù)包和過濾數(shù)據(jù)包都是在操作系統(tǒng)內(nèi)核中完成的,而且使用了數(shù)據(jù)緩存機制。從效率上來講,BPF在三種機制中是性能最高的,而SOCK_PACKET是最弱的。在實際應(yīng)用中,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)的代表是Libpcap。它是一個專業(yè)的跨平臺的網(wǎng)絡(luò)數(shù)據(jù)包捕獲開發(fā)包。使用Libpcap可以很輕松地實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲功能,它的捕獲機制就是BPF捕獲機制。在Windows平臺下有與Lib

19、pcap兼容的WinPcap開發(fā)包,它是專門針對Windows平臺而開發(fā)的,本次程序的開發(fā)就是利用WinPcap庫函數(shù)實現(xiàn)的。2.3Winpcap功能介紹WinPcap(Windows Packet Capture)是Windows平臺下的一個免費、公平的專業(yè)網(wǎng)絡(luò)數(shù)據(jù)包捕獲開發(fā)包,也是其它一些安全工具的應(yīng)用基礎(chǔ)。使用該開發(fā)包的軟件主要有:Windump、Analyzer、Ethereal、Dsniff等。WinPcap包括三部分,即數(shù)據(jù)包捕獲和過濾塊NPF、較低層的網(wǎng)絡(luò)編程接口packer.dll、較高層的編程接口wpcap.dll。使用該開發(fā)包可以提高應(yīng)用效率,WinPcap充分考慮了各種性

20、能和效率的優(yōu)化,在內(nèi)核層實現(xiàn)了數(shù)據(jù)包的捕獲和過濾,這是由NPF來實現(xiàn)的,NPF是WinPcap的核心部分,它實現(xiàn)了內(nèi)核的統(tǒng)計功能,對于設(shè)計網(wǎng)絡(luò)流量的程序很有好處。WinPcap是Libpcap在Windows平臺下的版本,在設(shè)計WinPcap時參照了Libpcap,對Windows進行了優(yōu)化處理和發(fā)展,主要功能:(1) 數(shù)據(jù)包捕獲。跟Libpcap一樣,WinPcap主要的功能還是完成了對網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,它可以捕獲在共享網(wǎng)絡(luò)上傳輸?shù)母鞣N網(wǎng)絡(luò)數(shù)據(jù)包。(2) 數(shù)據(jù)包過濾。WinPcap也具備數(shù)據(jù)包的過濾功能,在接收網(wǎng)絡(luò)數(shù)據(jù)包和發(fā)送個應(yīng)用程序之前在內(nèi)核層對數(shù)據(jù)包進行過濾,其 過濾規(guī)則與BPF過濾規(guī)

21、則兼容。(3) 數(shù)據(jù)包發(fā)送。使用WinPcap可以實現(xiàn)數(shù)據(jù)包的發(fā)送功能,可以發(fā)送原始的網(wǎng)絡(luò)數(shù)據(jù)包,網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)容可以由開發(fā)者自己確定。(4) 流量統(tǒng)計。在WinPcap中還實現(xiàn)了流量統(tǒng)計功能,這也是在內(nèi)核層實現(xiàn)的。(5) 數(shù)據(jù)包存儲。使用WinPcap可以在內(nèi)核中將捕獲到的數(shù)據(jù)包直接存儲到磁盤中。2.4 Winpcap體系結(jié)構(gòu)前一節(jié)提到你了WinPcap的三個模塊,它們分別是NPF、packet.dll、wpcap.dll,其體系結(jié)構(gòu)如下圖2.2所示:圖2.2 WinPcap體系結(jié)構(gòu)這個三個模塊組成了有較好擴展性的底層網(wǎng)絡(luò)分析體系結(jié)構(gòu),下面對三個模塊作詳細(xì)說明。NPF是WinPcap的組件,

22、用來處理網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包,并對用戶層導(dǎo)出數(shù)據(jù)包捕獲、發(fā)送與分析的能力。它是運行于操作系統(tǒng)內(nèi)核中的驅(qū)動程序,它直接與網(wǎng)卡驅(qū)動程序進行交互,捕獲在網(wǎng)絡(luò)上傳輸?shù)脑紨?shù)據(jù)包。在Windows XP系統(tǒng)中,它以SYS文件形式存在。該模塊提供了抓取數(shù)據(jù)包以及發(fā)送數(shù)據(jù)包的基本功能,此外還提供了一些高級功能,如數(shù)據(jù)包過濾系統(tǒng)和檢測引擎。Pactet.dll用于在Windows平臺上為數(shù)據(jù)包驅(qū)動程序提供一個公共的接口。不同的Windows版本在用戶態(tài)和內(nèi)核態(tài)之間提供互不相同的接口,而Pactet.dll可以屏蔽這些接口區(qū)別,提供一個與系統(tǒng)無關(guān)的API。Pactet.dll開發(fā)的數(shù)據(jù)包截獲程序可以運行于不同的W

23、indows平臺而不必重新進行編譯。Pactet.dll可以執(zhí)行如獲取適配器名稱、動態(tài)驅(qū)動器加載以及獲取主機掩碼及以太網(wǎng)沖突次數(shù)等低級操作。Wpcap.dll模塊提供了一組功能強大且跨平臺的函數(shù),利用這些函數(shù),可以不去關(guān)心適配器和操作系統(tǒng)的類型。Wpcap.dll含有諸如產(chǎn)生過濾器、定義用戶緩沖以及包注入等高級功能。Wpcap.dll的函數(shù)調(diào)用會自動調(diào)用Pactet.dll中的低級函數(shù),并且可能被轉(zhuǎn)換成若干個系統(tǒng)調(diào)用。第三章 研究內(nèi)容描述本次課題的主要研究內(nèi)容是利用套接字開發(fā)網(wǎng)絡(luò)嗅探器的程序設(shè)計,設(shè)計要求完成對流經(jīng)本地網(wǎng)卡的所有數(shù)據(jù)包的捕獲,分析協(xié)議類型,并根據(jù)不同的協(xié)議類型對數(shù)據(jù)包進行了進一

24、步的分析,包括分析數(shù)據(jù)包的源IP地址、目的IP地址、源端口號、目的端口號、大小等。通過對該課題的研究,讓我對嗅探技術(shù)有了進一步的了解,對其兩面性在網(wǎng)絡(luò)中產(chǎn)生的影響有了更深的認(rèn)識,為了打破以上局限性,還需要結(jié)合已學(xué)知識對網(wǎng)絡(luò)嗅探技術(shù)方面的知識作進一步的學(xué)習(xí)。 利用套接字開發(fā)網(wǎng)絡(luò)嗅探器程序時的一般步驟如下圖所示:如圖所示,在利用套接字開發(fā)網(wǎng)絡(luò)嗅探器程序時的一般步驟是:首先,創(chuàng)建原始套接字,并設(shè)置其操作選項;其次將原始套接字綁定到本地網(wǎng)卡地址上;設(shè)置網(wǎng)卡為混雜模式,這樣網(wǎng)卡就可以收到任何在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包;在以上條件下開始對數(shù)據(jù)包進行捕獲、分析。有兩類人對于流動在網(wǎng)絡(luò)上的數(shù)據(jù)是非常感興趣的:網(wǎng)絡(luò)管

25、理員和黑客,他們都要對網(wǎng)絡(luò)上的以包為單位的數(shù)據(jù)流進行監(jiān)測。事實上,一個好的數(shù)據(jù)包監(jiān)測軟件通??梢栽诰W(wǎng)絡(luò)管理和黑客技術(shù)的工具包中同時找到。黑客可以用數(shù)據(jù)包監(jiān)測軟件監(jiān)聽互聯(lián)網(wǎng),并且追蹤一些敏感數(shù)據(jù)的交換如登錄對話和財經(jīng)交易;網(wǎng)絡(luò)管理員可以用數(shù)據(jù)包監(jiān)測軟件監(jiān)視網(wǎng)絡(luò)的狀態(tài)、查找網(wǎng)絡(luò)漏洞,檢測網(wǎng)絡(luò)性能和修復(fù)網(wǎng)絡(luò)的故障等。所以,研究網(wǎng)絡(luò)數(shù)據(jù)的捕獲和網(wǎng)絡(luò)協(xié)議的分析不但能夠有利于管理網(wǎng)絡(luò)和維護網(wǎng)絡(luò)的健康運轉(zhuǎn),更重要的還可以得知黑客對網(wǎng)絡(luò)攻擊的機理,有針對地進行入侵檢測,進而避免黑客的攻擊破壞和對資料的竊取。本課題針對網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和分析技術(shù)做了比較深入的闡述。在對當(dāng)今網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析的有關(guān)基本實現(xiàn)機理、方

26、法和手段進行分析的基礎(chǔ)上,通過詳細(xì)地分析網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫Libpcap和winpcap的工作機理和內(nèi)部架構(gòu),描述了網(wǎng)絡(luò)數(shù)據(jù)包捕獲和分析程序的層次結(jié)構(gòu),給出了具體的通過調(diào)用Winpcap來捕獲和分析數(shù)據(jù)包的程序的設(shè)計與實現(xiàn)方法。對于今后網(wǎng)絡(luò)數(shù)據(jù)的監(jiān)測和分析方案(比如對無線網(wǎng)絡(luò)和交換環(huán)境捕獲和分析),本文也在最后部分做了相應(yīng)的闡述和預(yù)測。設(shè)計完成后經(jīng)測試能實現(xiàn)預(yù)期要求的功能。但是仍然存在一些不足之處,例如:1.由于時間和所學(xué)知識有限,只對數(shù)據(jù)包作了簡單分析,分析內(nèi)容不是很全面;2.本論文中的嗅探器適用于基于廣播包的網(wǎng)絡(luò),而對于諸如交換機這類設(shè)備,由于它能夠阻止廣播,所以就不能夠?qū)ψ泳W(wǎng)內(nèi)其他的機

27、器進行監(jiān)聽,若想要對此子網(wǎng)進行監(jiān)聽,就必須處于與此交換機同級的包交換網(wǎng)絡(luò)中。第四章 測試環(huán)境和過程描述通過對整體框架的設(shè)計、程序代碼的編寫,最終會在調(diào)試的時候出現(xiàn)各種各樣的問題,有的是細(xì)節(jié)問題,如語法不明、丟失分號、聲明錯誤,有的問題是程序設(shè)計思路本身不夠完善,或者代碼出現(xiàn)了錯誤導(dǎo)致不能運行,需要通過不斷的調(diào)試和改正,從而使程序能正確的按照 要求運行。在反復(fù)的調(diào)試中,可以使我們認(rèn)識到作為一個程序員對程序編寫的嚴(yán)謹(jǐn)性,養(yǎng)成嚴(yán)于律己的好習(xí)慣。4.1 程序調(diào)試 在本次設(shè)計中我們遇到了一些問題,對于這些問題我們采用的方法是,查看相應(yīng)的協(xié)議書,參考WinPcap開發(fā)手冊,并從網(wǎng)上看了一下流行的處理方法。

28、現(xiàn)將編程實現(xiàn)程序過程中遇到的主要問題陳述如下: (1)用pcap_lookupnet時發(fā)現(xiàn)網(wǎng)卡的IP和掩碼都是0.0.0.0并且無法捕捉。通過網(wǎng)上搜索相關(guān)問題,發(fā)現(xiàn)是因為使用了pcap_lookupdev這個函數(shù) ,在WinPcap開發(fā)手冊中這個函數(shù)也是不推薦使用的。因為在實際使用中我們的機器安裝了VMware這個虛擬機軟件,在查找網(wǎng)卡時都能找到一個虛擬的網(wǎng)卡,并且處于第一個位置,這樣向下一步提交設(shè)備句柄的時候就已經(jīng)傳錯了。后面使用了開發(fā)手冊推薦的pcap_findalldevs函數(shù)返回一個網(wǎng)卡列表,然后找到需要的正常網(wǎng)卡,解決了這個問題。(2)使用了pcap_findalldevs函數(shù),并且

29、調(diào)試時發(fā)現(xiàn)已經(jīng)是正常網(wǎng)卡 ,可是還是無法捕獲,抓不到包,好像WinPcap沒有工作。通過仔細(xì)排查,發(fā)現(xiàn)pcap_open函數(shù)中的延遲參數(shù)設(shè)置有問題,延遲設(shè)置過小使程序無法工作。然后設(shè)置為1000ms后,故障排除了。(3)在MFC下開發(fā)的問題,要使用pcap_next_ex函數(shù),而不要使用在Dos下開發(fā)時常用的pcap_loop函數(shù),這樣才不會有回調(diào)函數(shù)的那個問題。通過排除程序中存在語法錯誤、誤用的函數(shù)等各種問題后,最終在VC的輸出窗口顯示無錯誤的信息,編譯成功,顯示如圖4.1所示:圖4.1 編譯通過4.2 程序測試編譯通過后,對本系統(tǒng)進行測試,網(wǎng)絡(luò)環(huán)境是一個主機數(shù)為4的小型局域網(wǎng),可以連接互聯(lián)

30、網(wǎng),帶寬為1Mbps,測試主機的硬件和軟件環(huán)境如表41:表4-1 測試主機的環(huán)境運行網(wǎng)絡(luò)嗅控工具,程序正常運行,其界面如圖4.2所示:圖4.2 程序界面程序界面可分為6個區(qū)域,分別是程序菜單,過濾規(guī)則設(shè)置,數(shù)據(jù)包統(tǒng)計,捕獲的數(shù)據(jù)包信息,數(shù)據(jù)包詳細(xì)信息,數(shù)據(jù)包數(shù)據(jù)內(nèi)容。下面按照菜單的順序,即數(shù)據(jù)包捕獲的過程來進行程序測試,第一步是配置網(wǎng)卡,點擊網(wǎng)絡(luò)配置菜單,彈出網(wǎng)絡(luò)適配器列表,如圖4.3所示:圖4.3 網(wǎng)絡(luò)適配器列表在已顯示的網(wǎng)卡列表中,第一個是本機上的虛擬網(wǎng)卡,第二個是本機物理網(wǎng)卡,點開樹形結(jié)構(gòu)顯示該物理網(wǎng)卡的詳細(xì)信息。該部分信息符合事實,這部分功能成功實現(xiàn)。然后點擊確定可以綁定網(wǎng)卡,如圖4.

31、4所示:圖4.4 綁定成功提示網(wǎng)卡綁定成功后,在2區(qū)域可設(shè)置規(guī)則,默認(rèn)為空,也可以自己設(shè)置過濾規(guī)則。如果規(guī)則為空時則抓取所有的數(shù)據(jù)包,若自定義規(guī)則,則在輸入框中編輯當(dāng)前的捕獲規(guī)則,然后點選測試語句,若沒有錯誤可以點擊“應(yīng)用生效”按鈕使規(guī)則生效,程序便可以在以后的抓包過程中自動采用所設(shè)置的規(guī)則:如有語句不合法,程序會指示當(dāng)前語句發(fā)生錯誤,要修改再進行測試。這里我們設(shè)置“tcp src port 80” 的規(guī)則,表示捕獲公當(dāng)tcp的數(shù)據(jù)包的源端口地址為80的數(shù)據(jù)包,輸入后測試,沒有語法錯誤,然后音樂規(guī)則,顯示新規(guī)則設(shè)置成功,如圖4.5所示:(a)測試規(guī)則 (b)應(yīng)用規(guī)則圖4.5 規(guī)則設(shè)置提示然后點

32、擊啟動命令,程序開始抓包,可以隨時點擊暫停命令來停止抓取數(shù)據(jù)包,顯示信息如圖4.6所示:圖4.6 抓包界面正如上圖所示,在第3區(qū)域顯示了抓取數(shù)據(jù)包的統(tǒng)計量,統(tǒng)計顯示抓取的都是tcp數(shù)據(jù)包,符合實際,該部分功能測試通過。第4區(qū)域顯示了數(shù)據(jù)包的各種信息,如數(shù)據(jù)包的編號,時間戳,數(shù)據(jù)包長度,協(xié)議類型,源IP地址,目的IP地址,源端口號,目的端口號,源MAC地址等相關(guān)信息,點擊任意一個數(shù)據(jù)包,會在下面的5,6區(qū)域顯示該數(shù)據(jù)包的詳細(xì)信息。第5區(qū)域顯示了網(wǎng)絡(luò)的ISO層次模型中鏈路層,網(wǎng)絡(luò)層,傳輸層3層結(jié)構(gòu)中的詳細(xì)信息,包括版本號,頭部長度,服務(wù)類型,優(yōu)先級,延遲,校驗和等。第6區(qū)域則是顯示的16進制數(shù)據(jù),

33、通過對其解碼,可以得到數(shù)據(jù)包的諸如IP地址,端口號等信息。以上的種種信息均與第1區(qū)域的過濾規(guī)則相符合,各種信息也是一高產(chǎn)田的,說明些次編程實現(xiàn)數(shù)據(jù)包捕獲的主要功能已經(jīng)成功實現(xiàn)。此外,本程序還添加了數(shù)據(jù)導(dǎo)出功能,程序中支持對數(shù)據(jù)包中的信息按XML格式的方式進行導(dǎo)出,可以在程序上方主菜單中選中數(shù)據(jù)導(dǎo)出便可以完成此項操作。在彈出的對話框中,會自動生成當(dāng)前時間日期為名的XML文檔,當(dāng)然也可以自己設(shè)置文件名,同時可以選擇文件的其它保存路徑,我這里選擇的是桌面位置,如圖4.7所示:圖4.7 數(shù)據(jù)導(dǎo)出點擊“導(dǎo)出”按鈕后,在好事多磨生成了一個XML格式的文檔,打開該文檔,內(nèi)容是所選擇數(shù)據(jù)包的所有信息,如協(xié)議類

34、型,IP地址,端口號等,這里就不截圖說蝗了,該文檔的生成說明數(shù)據(jù)包保存這部分功能測試通過。點擊“幫助”菜單則打開一個CHM文檔,如圖4.8所示:圖4.8 幫助文檔此部分功能 是調(diào)用一個CHM文檔,里面有關(guān)于本程序說明,幫助信息,有關(guān)過濾規(guī)則的說明也在其中有詳細(xì)的解釋,具體見上圖中的文檔目錄,包含了該幫助文件的所有內(nèi)容。點擊“退出”菜單則退出程序,該功能與程序界面右上角的“關(guān)閉”按鈕的功能是一樣的。以上測試均成功通過,些網(wǎng)絡(luò)嗅控工具成功實現(xiàn)。第五章 小結(jié)程序和課程設(shè)計報告都已經(jīng)完成了,對于課程設(shè)計,我們有收獲,收獲的不僅僅是知識,還有經(jīng)歷,這是一筆寶貴的財富,同時也有一些關(guān)于嗅探工具的想法,這些

35、想法包含了對嗅探工具的展望以及本組嗅探工具設(shè)計中的一些不足。5.1成果本次設(shè)計的程序是在WinPcap庫的基礎(chǔ)上對網(wǎng)絡(luò)數(shù)據(jù)進行捕獲,不需要編寫復(fù)雜的設(shè)備驅(qū)動程序和代碼就可以實現(xiàn)抓包,使得其編寫過程比較簡便、有效率。從課程設(shè)計選題,到查閱資料,思考課題的解決的方案,再到課題的實現(xiàn),是一個集中學(xué)習(xí)的過程,是一個靈活運用知識的過程,是一個由量變到質(zhì)變的過程。真的感覺到我們都進步了,感覺到我們學(xué)到一些東西了,感覺到我們求知的態(tài)度了。我們這次做的網(wǎng)絡(luò)嗅探工具需要用到MFC編程,盡管以前接觸過VC+編程,但是對此也不是太精通。所以在查詢資料期間,我們認(rèn)真看相關(guān)的內(nèi)容,切實沉入到學(xué)習(xí)中去,慢慢地,我們對MF

36、C的理解越來越深了,同時也加深了對VC+相關(guān)知識的理解,尤其是面向?qū)ο筮@一部分,鍛煉了自己的編程能力。在編寫程序的過程中,我們每每為自己的一些新的感悟而欣喜,為排除每一個錯誤而興奮,并且將它們記載下來。編程序需要功夫,調(diào)試程序更需要耐心和技巧。期間,我們不斷地拓展自己的思路,盡可能地為程序添加新的功能,當(dāng)然,這中間是少不了錯誤的發(fā)生的。也正是在編寫調(diào)試再編寫的過程中,我理解了MFC框架機制,知道了如何在程序中添加自己的代碼,如何自定義自己的消息,如何實現(xiàn)多線程的運行。就最終的成果而言,程序?qū)崿F(xiàn)了我們要求的全部功能,通過對過濾條件的設(shè)置,實現(xiàn)了對特定源和目的IP地址、端口的數(shù)據(jù)包的捕獲,并顯示數(shù)

37、據(jù)包的內(nèi)容,諸如協(xié)議類型、長度、時間戳等信息,并且還增加了數(shù)據(jù)包統(tǒng)計、數(shù)據(jù)保存、用戶文檔幫助等功能,更加方便了用戶的使用。5.2展望隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)安全將被人們越來越重視,嗅探技術(shù)作為網(wǎng)絡(luò)安全攻防中最基礎(chǔ)的技術(shù),嗅探工具的發(fā)展將向著集成化和易用型發(fā)展這兩個方向發(fā)展,我們相信這也是絕大部分軟件的發(fā)展趨勢。(1)集成化,是指將其它非嗅探功能集成在一個軟件上,例如將網(wǎng)絡(luò)管理功能添加進來,當(dāng)管理員發(fā)現(xiàn)某臺主機有問題時,也希望能馬上對其進行管理,這種軟件集網(wǎng)絡(luò)故障分析和健康管理于一體,是具有很強的競爭力和生命力的。(2)易用性,包括易理解性、易學(xué)習(xí)性、易操作性,這對提高產(chǎn)品使用效率和競爭力有

38、重要作用,例如在本次設(shè)計的程序中,過濾條件的設(shè)置對于普通用戶來說還是需要一定時間來學(xué)習(xí)的,盡管我們配置了幫助文檔幫助用戶使用,但是對于沒有一定基礎(chǔ)的人來說,WinPcap過濾串表達式語法的理解還是有難度的。我們的設(shè)想是設(shè)置一個窗口,把過濾條件圖形化,例如有接收、發(fā)送、不限三種數(shù)據(jù)包捕獲摸索,每種模式下面有能詳細(xì)設(shè)置協(xié)議類型、IP地址、端口號等。需求是創(chuàng)新的動力,內(nèi)在的驅(qū)動更是創(chuàng)新的源泉,沒有任何事物是至善的,此程序還有一些可增強的地方,除了上面提到的兩點外,還可以將界面美化一下,程序的功能菜單按鈕也可以通過添加鼠標(biāo)響應(yīng)事件更加個性化,此外還可以增加自動搜索局域網(wǎng)內(nèi)的主機功能,通過直接點擊特定主

39、機的圖標(biāo)達到設(shè)置過濾條件的目的,簡化操作。參考文獻【1】董智憑.淺析Sniffer分析系統(tǒng)在網(wǎng)絡(luò)管理中的作用J.科技促進發(fā)展。2009,(6)。【2】黃慶,周文靜.計算機網(wǎng)絡(luò)協(xié)議及其應(yīng)用分析J.軟件導(dǎo)刊。2009,8(1)?!?】王秋菊.Sniffer攻擊原理分析及其防范技術(shù)J.嘉興學(xué)院學(xué)報.2009,(15).【4】Robert Shimonski. Sniffer Pro Network Optimization and Troubleshooting HandbookM.Syngress Publishing.2008【5】汪賢鋒.TCP/IP協(xié)議的漏洞分析及防范J.電腦知識與技術(shù)。20

40、08,(16).【6】遲恩宇.基于主機動態(tài)的TCP/IP協(xié)議網(wǎng)絡(luò)監(jiān)聽技術(shù)的研究D.吉林大學(xué).2007,(8)【7】陳鵬.基于Jpcap的TCP/IP數(shù)據(jù)包捕獲與發(fā)送J.吉昌學(xué)院學(xué)報.2008,(2).【8】Michael J. Donahoo. TCP/IP Sockets in C#: Practical Guide for Programmers M.Morgan Kaufmann.2004.【9】羅軍舟.TCP/IP 協(xié)議及網(wǎng)絡(luò)編程技術(shù)M.北京:清華大學(xué)出版.2007【10】Andrew S. Tanenbaum 等著. Computer Networks,F(xiàn)ourth Edition

41、M.北京:清華大學(xué)出版.2004.【11】多浩學(xué),陳云芳.基于Jpcap的網(wǎng)絡(luò)嗅探程序設(shè)計J.電腦編程技巧與維護.2006,(6)【12】 胡曉元,史浩山.WinPcap包截獲系統(tǒng)的分析及其應(yīng)用J.計算機工程.2005,31(2).【13】謝小特,王勇軍.基于WinPcap的捕包程序設(shè)計J.軟件導(dǎo)刊。2007,(21)【14】刑青山,胡強.基于WinPcap的網(wǎng)絡(luò)監(jiān)聽系統(tǒng)設(shè)計與實現(xiàn)J.科技信息.2008,(7)【15】丁楠,高雅斌,李悅馥.網(wǎng)絡(luò)監(jiān)聽技術(shù)的應(yīng)用研究J.商業(yè)現(xiàn)代化.2009,(5)【16】張騰,葉晨.基于共享網(wǎng)絡(luò)下的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)J.計算技術(shù)與自動化.2009,(4).愛人者,人恒愛之;敬人者,人恒敬之;寬以濟猛,猛以濟寬,政是以和。將軍額上能跑馬,宰相肚里能撐船。最高貴的復(fù)仇是寬容。有時寬容引起的道德震動比懲罰更強烈。君子賢而能容罷,知而能容愚,博而能容淺,粹而能容雜。寬容就是忘卻,人人都有痛苦,都有傷疤,動輒去揭,便添新創(chuàng),舊痕新傷難愈合,忘記昨日的是非,忘

溫馨提示

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

最新文檔

評論

0/150

提交評論