版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1 引 言1</b></p><p> 1.1 開發(fā)背景1</p><p> 1.2 開發(fā)意義1</p><p><b> 2 系統(tǒng)分析2</b></p><p&g
2、t; 2.1 設(shè)計概述2</p><p> 2.1.1 實現(xiàn)目標(biāo)2</p><p> 2.1.2 開發(fā)環(huán)境2</p><p> 2.2 開發(fā)相關(guān)技術(shù)簡介2</p><p> 2.2.1 C#語言簡介2</p><p> 2.2.2 嗅探技術(shù)簡介3</p><p&g
3、t; 2.2.3 TCP/IP協(xié)議4</p><p> 2.2.4 數(shù)據(jù)包簡介6</p><p> 2.3 可行性分析8</p><p><b> 3 詳細設(shè)計9</b></p><p> 3.1 設(shè)計原理9</p><p> 3.2 功能說明11</p&
4、gt;<p> 3.3 系統(tǒng)實施12</p><p> 3.4 系統(tǒng)測試14</p><p> 4 論文總結(jié)19</p><p><b> 致 謝20</b></p><p><b> 參考文獻21</b></p><p><b
5、> 1 引 言</b></p><p><b> 1.1 開發(fā)背景</b></p><p> 網(wǎng)絡(luò)技術(shù)的日新月異,發(fā)展突飛猛進,計算機網(wǎng)絡(luò)的應(yīng)用越來越廣泛,其作用也越來越重要。但是由于計算機系統(tǒng)中軟硬件的脆弱性和計算機網(wǎng)絡(luò)的脆弱性以及地理分布的位置、自然環(huán)境、自然破壞以及人為因素的影響,不僅增加了信息存儲、處理的風(fēng)險,也給信息傳送帶來了新的
6、問題。計算機網(wǎng)絡(luò)安全問題越來越嚴重,網(wǎng)絡(luò)破壞所造成的損失越來越大。Internet的安全已經(jīng)成為亟待解決的問題。多數(shù)黑客入侵成功并植入后門后的第一件事就是選擇一個合適當(dāng)前網(wǎng)絡(luò)的嗅探器,以獲得更多的受侵者的信息。嗅探器是一種常用的收集有用數(shù)據(jù)的方法,可以作為網(wǎng)絡(luò)數(shù)據(jù)包的設(shè)備。網(wǎng)絡(luò)嗅探器就是是利用計算機的網(wǎng)絡(luò)接口截獲其他計算機的數(shù)據(jù)報文的一種工具,而且它與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器捕獲的則是真實的網(wǎng)
7、絡(luò)報文.如果把網(wǎng)絡(luò)嗅探器放置于網(wǎng)絡(luò)節(jié)點處,對網(wǎng)絡(luò)中的數(shù)據(jù)幀進行捕獲的一種被動監(jiān)聽手段,是一種常用的收集有用數(shù)據(jù)的方法,可以分析各種信息包并描述出網(wǎng)絡(luò)的結(jié)構(gòu)和使用的機器,由于它接收任何一個在同一網(wǎng)段上傳輸?shù)臄?shù)據(jù)包,所以也就存在著捕獲密碼、各種信息、秘密文檔等一些沒有加密的信息的可能性。這成為黑客們常用的擴大戰(zhàn)果的</p><p><b> 1.2 開發(fā)意義</b></p>&
8、lt;p> 本次畢業(yè)設(shè)計是基于C#的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn),由于本人能力上的限度,只是對抓取到的本機在網(wǎng)絡(luò)中的通信數(shù)據(jù),比如說協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等加以分析,而無法做到像Sniffer或者影音神探那種成熟的嗅探器所擁有的強大功能。作為從事網(wǎng)絡(luò)技術(shù)方面的人員來說,要想有效地利用它、防范它,就得深入地學(xué)習(xí)、分析網(wǎng)絡(luò)嗅探技術(shù)。最為重要的是,對于網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn),使我對網(wǎng)絡(luò)通信,數(shù)據(jù)傳輸和網(wǎng)絡(luò)信息安全等有了切
9、身的體會與融入,同時也是對大學(xué)四年的學(xué)以致用,不斷提高自我的一種有效途徑。</p><p><b> 2 系統(tǒng)分析</b></p><p><b> 2.1 設(shè)計概述</b></p><p> 基于C#的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn),首先就是要設(shè)定好實現(xiàn)的目標(biāo),確定開發(fā)的環(huán)境。有個合理的設(shè)計目標(biāo)使得在設(shè)計過程中不茫然,
10、思路更清楚。而一個好的開發(fā)環(huán)境對提高開發(fā)的效率同樣起著很重要的作用。</p><p> 2.1.1 實現(xiàn)目標(biāo)</p><p> 實現(xiàn)一個簡單的網(wǎng)絡(luò)嗅探器。具備以下功能:</p><p> 1、實現(xiàn)一個簡潔的易操作的計算機操作用戶界面</p><p> 2、實現(xiàn)抓取數(shù)據(jù)包的功能</p><p> 3、實現(xiàn)暫停
11、抓取數(shù)據(jù)包的功能</p><p> 4、實現(xiàn)清空列表的功能</p><p> 5、實現(xiàn)顯示數(shù)據(jù)包詳細信息的顯示功能</p><p> 2.1.2 開發(fā)環(huán)境</p><p> Microsoft Visual Studio 2005,Windows XP</p><p> 2.2 開發(fā)相關(guān)技術(shù)簡介</
12、p><p> 本節(jié)將對本設(shè)計中用到的一些主要技術(shù)進行簡單的介紹。</p><p> 2.2.1 C#語言簡介</p><p> C#(C Sharp)是微軟于2000年提出的一種源于C++、類似于Java的面向?qū)ο缶幊陶Z言,適合于分布式環(huán)境中的組件開發(fā)。C# 是專門為.NET設(shè)計的,也是.NET編程的首選語言。C#的產(chǎn)生是因為微軟在.NET上需要一種類Java的
13、語言,而Java本身卻不能勝任這一需求。C#太像C++了,以至于它很難給人帶來體驗新事物時的那種興奮。不過,絕大部分的C++開發(fā)者將會因為C#保留了C++中大部分其喜歡的、強大的、令人激動的功能而選擇使用它。C#通過避免一般的編程錯誤和自動資源管理,使得C#的穩(wěn)定性得到了極大的增強。另外,C#語言功能強大且可以實現(xiàn)對象之間的轉(zhuǎn)換,輕松實現(xiàn)各種對象轉(zhuǎn)換成字符串。鑒于以上種種,我選用C#作為我本次設(shè)計的開發(fā)語言。[2]</p>
14、<p> 2.2.2 嗅探技術(shù)簡介</p><p> 數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀(Frame)的單位傳輸?shù)?,幀由幾部分組成,不同的部分執(zhí)行不同的功能。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動程序的軟件進行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上,通過網(wǎng)線到達它們的目的機器,在目的機器的一端執(zhí)行相反的過程。接收端機器的以太網(wǎng)卡捕獲到這些幀,并告訴操作系統(tǒng)幀已到達,然后對其進行存儲。就是在這個傳輸和接收的過程中,存在著安全
15、方面的問題。 </p><p> 每一個在局域網(wǎng)(LAN)上的工作站都有其硬件地址,這些地址唯一地表示了網(wǎng)絡(luò)上的機器(這一點與Internet地址系統(tǒng)比較相似)。當(dāng)用戶發(fā)送一個數(shù)據(jù)包時,這些數(shù)據(jù)包就會發(fā)送到LAN上所有可用的機器。[3]</p><p> 圖示:一個簡單的局域網(wǎng)組成</p><p> 在一般情況下,網(wǎng)絡(luò)上所有的機器都可以“聽”到通過的流量,但對
16、不屬于自己的數(shù)據(jù)包則不予響應(yīng)(換句話說,工作站A不會捕獲只屬于工作站B的數(shù)據(jù),而是簡單地忽略這些數(shù)據(jù))。 </p><p> 嗅探器工作在網(wǎng)絡(luò)的底層,在網(wǎng)絡(luò)上監(jiān)聽數(shù)據(jù)包來獲取敏感信息。從原理上來說,在一個實際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的,網(wǎng)卡接收到傳輸來的數(shù)據(jù),其內(nèi)的單片程序接收數(shù)據(jù)幀的目的MAC地址,根據(jù)計算機上的網(wǎng)卡驅(qū)動程序設(shè)置的接收模式判斷該不該接收,認為該接收就接收后產(chǎn)生中斷信號通知CPU,認為
17、不該接收就丟掉不管,所以不該接收的數(shù)據(jù)網(wǎng)卡就截斷了,計算機根本就不知道。對于網(wǎng)卡來說一般有四種接收模式:</p><p> a)廣播方式:該模式下的網(wǎng)卡能夠接收網(wǎng)絡(luò)中的廣播信息。</p><p> b)組播方式:設(shè)置在該模式下的網(wǎng)卡能夠接收組播數(shù)據(jù)。</p><p> c)直接方式:在這種模式下,只有目的網(wǎng)卡才能接收該數(shù)據(jù)。</p><p&
18、gt; d)混雜模式:在這種模式下的網(wǎng)卡能夠接收一切通過它的數(shù)據(jù),而不管該數(shù)據(jù)是否是傳給它的。</p><p> 首先,在以太網(wǎng)中是基于廣播方式傳送數(shù)據(jù)的,也就是說,所有的物理信號都要經(jīng)過我的機器。其次,如果某個工作站的網(wǎng)絡(luò)接口處于混雜模式,那么它就可以捕獲網(wǎng)絡(luò)上所有的數(shù)據(jù)。</p><p> 嗅探程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡(NIC,一般為以太網(wǎng)卡)置為混雜模式狀態(tài)的工具
19、,一旦網(wǎng)卡設(shè)置為這種模式,它就能接收傳輸在網(wǎng)絡(luò)上的每一個信息包,而不管該數(shù)據(jù)是否傳給它的。[4] </p><p> 2.2.3 TCP/IP協(xié)議</p><p> 因特網(wǎng)是一個發(fā)展非?;钴S的領(lǐng)域。在1968年,它的早期研究成果開始嶄露頭角,后來便出現(xiàn)了它的前身ARPANET,ARPANET為表現(xiàn)因特網(wǎng)特性的試驗平臺做出了重大貢獻,1973年,因特網(wǎng)正式面世。從那時起,關(guān)于因特網(wǎng)的研
20、究和努力就一直沒有間斷過,其中大部分努力都是圍繞著被稱為網(wǎng)絡(luò)的一個新型賽博空間所需要的標(biāo)準而進行的。因特網(wǎng)協(xié)議及其標(biāo)準與世界上任何其他事物的結(jié)構(gòu)不同,它總是由一些機構(gòu)或?qū)I(yè)人士中的個人首先提出的。為了了解新的協(xié)議是如何出現(xiàn)并最終成為標(biāo)準的,應(yīng)該首先熟悉縮寫詞RFC,即Request for Comment。它的發(fā)展變遷過程要追溯到1969年,起因是由于因特網(wǎng)的成員過于分散。正如這個詞的字面意思所示,這些文檔是一些實用文檔、方法、測試結(jié)果
21、、模型甚至完整的規(guī)范。因特網(wǎng)社會的成員可以閱讀,也可以把意見反饋給RFC,如果這些想法(或基本原理)被社會接受,就有可能成為標(biāo)準。在因特網(wǎng)社會中關(guān)于RFC的用法以及如何操作并沒有太大的變化。1969年,當(dāng)時只有一個網(wǎng)絡(luò),整個社會不超過一百位專業(yè)人員;隨著因特網(wǎng)的飛速發(fā)展,因特網(wǎng)不但需要一個機構(gòu)來集中和協(xié)調(diào)這些成果,并且需要制定一個最低要求</p><p> 但是,如果你是一個因特網(wǎng)上的???,可能對縮略詞IAB并
22、不滿意,的確,在IAB的逐步發(fā)展并走向成熟過程中,IAB將它的名字改為“Internet Architecture Board”(由“Activities”改為“Architecture”),因為I A B在因特網(wǎng)發(fā)展的運作方面并沒起多大作用。談到RFC標(biāo)準,那么首先考慮到的應(yīng)該是RFC733。如果有關(guān)于標(biāo)準的想法或?qū)σ蛱鼐W(wǎng)有益的新技術(shù),可以把它作為RFC提交給因特網(wǎng)社會。作為IAB成員之一的RFC編輯,決定著RFC的發(fā)表,對任一正式文
23、檔,RFC都有一種確定的風(fēng)格和格式。[5]</p><p> 現(xiàn)今因特網(wǎng)上用到的主要協(xié)議有:用戶數(shù)據(jù)報協(xié)議(UDP),次要文件傳輸協(xié)議(TFTP),網(wǎng)際協(xié)議(IP),因特網(wǎng)控制報文協(xié)議(ICMP),傳輸控制協(xié)議(TCP),地址轉(zhuǎn)換協(xié)議(ARP),虛終端協(xié)議(Telnet),反向地址轉(zhuǎn)換協(xié)議(RARP),外部網(wǎng)關(guān)協(xié)議(EGP)版本2,引導(dǎo)協(xié)議(BootP),路由信息協(xié)議(RIP),距離向量多播路由協(xié)議(DVMRP
24、)。下面對其中的4個協(xié)議做一些簡單的介紹:</p><p> ?、?IP :網(wǎng)際協(xié)議IP是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。IP層接收由更低層(網(wǎng)絡(luò)接口層,例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層--TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含
25、有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。 </p><p> 高層的TCP和UDP服務(wù)在接收數(shù)據(jù)包時,通常假設(shè)包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務(wù)的認證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個有效的主機發(fā)送來的。IP確認包含一個選項,叫作IP Source Routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務(wù)來說,使用了該選項的IP包
26、好象是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務(wù)將產(chǎn)生問題并且會被非法入侵。 </p><p> ?、?TCP:如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認,所以
27、未按照順序收到的包可以被排序,而損壞的包可以被重傳。 </p><p> TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。 </p><p> 面向連接的服務(wù)(例如Telnet、FTP、Rlogin、X Windows和SMTP)需要高度的可靠性,所以它們
28、使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。</p><p> ③ UDP:UDP與TCP位于同一層,但對于數(shù)據(jù)包的順序錯誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢---應(yīng)答的服務(wù),例如NFS。相對于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)落時間協(xié)議)和DNS(D
29、NS也使用TCP)。 欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統(tǒng)間沒有虛電路),也就是說,與UDP相關(guān)的服務(wù)面臨著更大的危險。 </p><p> ④ ICMP: ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統(tǒng)的更準確的路徑,而‘Unreachable
30、’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務(wù)。[6]</p><p> 2.2.4 數(shù)據(jù)包簡介 </p><p> “包”(Packet)是TCP/IP協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱“數(shù)據(jù)包”。有人說,局域網(wǎng)中傳輸?shù)牟皇恰皫?Frame)嗎
31、?沒錯,但是TCP/IP協(xié)議是工作在OSI模型第三層(網(wǎng)絡(luò)層)、第四層(傳輸層)上的,而幀是工作在第二層(數(shù)據(jù)鏈路層)。上一層的內(nèi)容由下一層的內(nèi)容來傳輸,所以在局域網(wǎng)中,“包”是包含在“幀”里的。OSI(Open System Interconnection,開放系統(tǒng)互聯(lián))模型是由國際標(biāo)準化組織(ISO)定義的標(biāo)準,它定義了一種分層體系結(jié)構(gòu),在其中的每一層定義了針對不同通信級別的協(xié)議。OSI模型有5層,1到5層分別是:物理層、數(shù)據(jù)鏈路層
32、、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。OSI模型在邏輯上可分為兩個部分:低層的1至3層關(guān)注的是原始數(shù)據(jù)的傳輸;高層的4至5層關(guān)注的是網(wǎng)絡(luò)下的應(yīng)用程序。 我們可以用一個形象一些的例子對數(shù)據(jù)包的概念加以說明:我們在郵局郵寄產(chǎn)品時,雖然產(chǎn)品本身帶有自己的包裝盒,但是在郵寄的時候只用產(chǎn)品原包裝盒來包裝顯然是不行的。必須把內(nèi)裝產(chǎn)品的包裝盒放到一個郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產(chǎn)品包裝盒相當(dāng)于數(shù)據(jù)包,里面放著的產(chǎn)品相當(dāng)于可用的數(shù)據(jù),而專</
33、p><p> 通過數(shù)據(jù)包捕獲軟件,也可以將數(shù)據(jù)包捕獲并加以分析。 就是用網(wǎng)絡(luò)嗅探器捕獲數(shù)據(jù)包,可以查看捕獲到的數(shù)據(jù)包的MAC地址、IP地址、協(xié)議類型端口號等細節(jié)。通過分析這些數(shù)據(jù),網(wǎng)管員就可以知道網(wǎng)絡(luò)中到底有什么樣的數(shù)據(jù)包在活動了。數(shù)據(jù)包的結(jié)構(gòu)非常復(fù)雜,不是三言兩語能夠說清的,在這里主要了解一下它的關(guān)鍵構(gòu)成就可以了,這對于理解TCP/IP協(xié)議的通信原理是非常重要的。數(shù)據(jù)包主要由“目的IP地址”、“源IP地址”、“凈
34、載數(shù)據(jù)”等部分構(gòu)成。 數(shù)據(jù)包的結(jié)構(gòu)與我們平常寫信非常類似,目的IP地址是說明這個數(shù)據(jù)包是要發(fā)給誰的,相當(dāng)于收信人地址;源IP地址是說明這個數(shù)據(jù)包是發(fā)自哪里的,相當(dāng)于發(fā)信人地址;而凈載數(shù)據(jù)相當(dāng)于信件的內(nèi)容。 正是因為數(shù)據(jù)包具有這樣的結(jié)構(gòu),安裝了TCP/IP協(xié)議的計算機之間才能相互通信。我們在使用基于TCP/IP協(xié)議的網(wǎng)絡(luò)時,網(wǎng)絡(luò)中其實傳遞的就是數(shù)據(jù)包。比如說當(dāng)你上網(wǎng)時打開某個網(wǎng)頁,這個簡單的動作,就是你先發(fā)送數(shù)據(jù)包給那個網(wǎng)站,它接收到了之
35、后,根據(jù)你發(fā)送的數(shù)據(jù)包的IP地址,返回給你網(wǎng)頁的數(shù)據(jù)包,也就是說,網(wǎng)頁的瀏覽,實際上就是數(shù)據(jù)包的交換。理解數(shù)據(jù)包,對于網(wǎng)絡(luò)管理的網(wǎng)絡(luò)安全具有至關(guān)重要的意義。</p><p> 2.3 可行性分析</p><p> 可行性研究(Feasibility Study)是通過對項目的主要內(nèi)容和配套條件,如市場需求、資源供應(yīng)、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)
36、、經(jīng)濟、工程等方面進行調(diào)查研究和分析比較,并對項目建成以后可能取得的財務(wù)、經(jīng)濟效益及社會環(huán)境影響進行預(yù)測,從而提出該項目是否值得投資和如何進行建設(shè)的咨詢意見,為項目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法。可行性研究應(yīng)具有預(yù)見性、公正性、可靠性、科學(xué)性的特點。[7]</p><p> 當(dāng)然這次論文的可行性研究并沒有上述的如此意義重大,只是理清整個系統(tǒng)分析和設(shè)計的大致過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)
37、分析和設(shè)計的過程。它的目的不是解決問題,而是確定問題是否值得去解決。當(dāng)然在現(xiàn)階段這樣的信息安全背景下,網(wǎng)絡(luò)嗅探器的研究與使用的價值是毋庸置疑的。不僅可以有效地診斷網(wǎng)絡(luò)狀況,更可以為信息安全戰(zhàn)打攻堅戰(zhàn)。它是廣大的網(wǎng)絡(luò)技術(shù)人員不可或缺的工具之一。</p><p><b> 3 詳細設(shè)計</b></p><p><b> 3.1 設(shè)計原理</b>
38、;</p><p> 嗅探器是如何工作的?如何竊聽網(wǎng)絡(luò)上的信息?網(wǎng)絡(luò)的一個特點就是數(shù)據(jù)總是在流動中,從一處到另外一處,而互聯(lián)網(wǎng)是由錯綜復(fù)雜的各種網(wǎng)絡(luò)交匯而成的,也就是說:當(dāng)你的數(shù)據(jù)從網(wǎng)絡(luò)的一臺電腦到另一臺電腦的時候,通常會經(jīng)過大量不同的網(wǎng)絡(luò)設(shè)備,(我們用tracert命令就可以看到這種路徑是如何進行的)。如果傳輸過程中,有人看到了傳輸中的數(shù)據(jù),那么問題就出現(xiàn)了——這就好比我們用手機給人發(fā)了一條短信,結(jié)果除了發(fā)送
39、對象以外,還發(fā)到別人的手機上了一樣,這樣說或許還不是很可怕,要是傳送的數(shù)據(jù)是企業(yè)的機密文件呢,或是用戶的信用卡帳號和密碼呢?[8]</p><p> 嗅探偵聽主要有兩種途徑,一種是將偵聽工具軟件放到網(wǎng)絡(luò)連接的設(shè)備或者放到可以控制網(wǎng)絡(luò)連接設(shè)備的電腦上,(比如網(wǎng)關(guān)服務(wù)器,路由器)——當(dāng)然要實現(xiàn)這樣的效果可能也需要通過其他黑客技術(shù)來實現(xiàn):比如通過木馬方式將嗅探器發(fā)給某個網(wǎng)絡(luò)管理員,使其不自覺的為攻擊者進行了安裝。另外
40、一種是針對不安全的局域網(wǎng)(采用交換HUB實現(xiàn)),放到個人電腦上就可以實現(xiàn)對整個局域網(wǎng)的偵聽,這里的原理是這樣的:共享HUB獲得一個子網(wǎng)內(nèi)需要接收的數(shù)據(jù)時,并不是直接發(fā)送到指定主機,而是通過廣播方式發(fā)送到每個電腦,對于處于接受者地位的電腦就會處理該數(shù)據(jù),而其他非接受者的電腦就會過濾這些數(shù)據(jù),這些操作與電腦操作者無關(guān),是系統(tǒng)自動完成的,但是電腦操作者如果有意的話,就可以將那些原本不屬于他的數(shù)據(jù)打開,這就是安全隱患!</p>&
41、lt;p> 以太網(wǎng)的數(shù)據(jù)傳輸是基于“共享”原理的:所有的同一本地網(wǎng)范圍內(nèi)的計算機共同接收到相同的數(shù)據(jù)包。這意味著計算機直接的通訊都是透明可見的。正是因為這樣的原因,以太網(wǎng)卡都構(gòu)造了硬件的“過濾器”。這個過濾器將忽略掉一切和自己無關(guān)的網(wǎng)絡(luò)信息。事實上是忽略掉了與自身MAC地址不符合的信息。</p><p> 嗅探程序正是利用了這個特點,它主動的關(guān)閉了這個過濾器,也就是前面提到的設(shè)置網(wǎng)卡“混雜模式”。因此,
42、嗅探程序就能夠接收到整個以太網(wǎng)內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)了信息了。[9] </p><p> 什么是以太網(wǎng)的MAC地址(MAC:Media Access Control),由于大量的計算機在以太網(wǎng)內(nèi)“共享“數(shù)據(jù)流,所以必須有一個統(tǒng)一的辦法用來區(qū)分傳遞給不同計算機的數(shù)據(jù)流的。這種問題不會發(fā)生在撥號用戶身上,因為計算機會假定一切數(shù)據(jù)都由你發(fā)送給MODEM,然后通過電話線傳送出去??墒牵?dāng)你發(fā)送數(shù)據(jù)到以太網(wǎng)上的時候,你必須弄清楚,
43、哪臺計算機是你發(fā)送數(shù)據(jù)的對象。的確,現(xiàn)在有大量的雙向通訊程序出現(xiàn)了,看上去,他們好像只會在兩臺機器內(nèi)交換信息,可是你要明白,以太網(wǎng)的信息是共享的,其他用戶,其實一樣接收到了你發(fā)送的數(shù)據(jù),只不過是被過濾器給忽略掉了。[10] </p><p> 舉例一下,很多的小型局域網(wǎng)計算機用戶都為實現(xiàn)文件和打印共享,安裝了“NetBEUI” 因為它不是基于TCP/IP協(xié)議的,所以來自于網(wǎng)絡(luò)的黑客一樣無法得知他們的設(shè)備情況。基
44、于Raw協(xié)議,傳輸和接收都在以太網(wǎng)里起著支配作用。你不能直接發(fā)送一個Raw數(shù)據(jù)給以太網(wǎng),你必須先做一些事情,讓以太網(wǎng)能夠理解你的意思。這有點類似于發(fā)短信的方法,你不可能直接把一條短信直接發(fā)送出去,你還要輸入對方的手機號碼才可以發(fā)送,同樣的網(wǎng)絡(luò)上的傳輸數(shù)據(jù)也是一個道理。[11]</p><p> 以下是一個幫助我們理解數(shù)據(jù)傳送的簡單圖示: </p><p> _________ <
45、/p><p> /.........\ </p><p> /..Internet.\ </p><p> +-----+ +----+.............+-----+ </p><p> 用戶A ----- 路由 ............. 用戶B </p><p> +-----+ ^ +----+
46、.............+-----+ </p><p> \.........../ </p><p> \---------/ </p><p><b> +------+ </b></p><p><b> 嗅探器 </b></p><p><b>
47、; +------+ </b></p><p> 用戶A IP 地址: 192.168.1.10</p><p> 用戶B IP 地址: 192.168.1.1 </p><p> 現(xiàn)在知道用戶A要于用戶B進行計算機通訊,用戶A需要為192.168.1.10到用戶B 192.168.1.1的通訊建立一個IP包 。這個IP包在網(wǎng)絡(luò)上傳輸,它必須能夠
48、穿透路由器。因此,用戶A必須首先提交這個包給路由器。由每個路由器考查目地IP地址然后決定傳送路徑。 </p><p> 用戶A 所知道的只是本地與路由連接和用戶B的IP地址。用戶A并不清楚網(wǎng)絡(luò)的結(jié)構(gòu)情況和路由走向。用戶A必須告訴路由器準備發(fā)送數(shù)據(jù)包的情況,以太網(wǎng)數(shù)據(jù)傳輸結(jié)構(gòu)大概是這樣的: </p><p> +--+--+--+--+--+--+ </p><p&g
49、t;<b> 目標(biāo) MAC </b></p><p> +--+--+--+--+--+--+ </p><p><b> 源 MAC </b></p><p> +--+--+--+--+--+--+ </p><p><b> 0x0800 </b>&l
50、t;/p><p> +--+--+-----------+ </p><p><b> IP 包 </b></p><p> +--+--+--+--+-----+ </p><p><b> CRC校驗 </b></p><p> +--+--+--+
51、--+ </p><p> 理解一下這個結(jié)構(gòu),用戶A的計算機建立了一個數(shù)據(jù)包假設(shè)它由100個字節(jié)的長度(假設(shè)一下,20 個字節(jié)是IP信息,20個字節(jié)是TCP信息,還有60個字節(jié)為傳送的數(shù)據(jù))?,F(xiàn)在把這個數(shù)據(jù)包發(fā)送給以太網(wǎng),放14個字節(jié)在目的MAC地址之前,源MAC地址還要置一個0x0800的標(biāo)記,他指示出了TCP/IP棧后的數(shù)據(jù)結(jié)構(gòu)。同時,也附加了4個字節(jié)用于做CRC校驗(CRC校驗用來檢查傳輸數(shù)據(jù)的正確性)。
52、 </p><p> 現(xiàn)在發(fā)送數(shù)據(jù)到網(wǎng)絡(luò),所有在局域網(wǎng)內(nèi)的計算機通過適配器都能夠發(fā)現(xiàn)這個數(shù)據(jù)包,其中也包括路由適配器,嗅探器和其他一些機器。通常,適配器都具有一塊芯片用來做結(jié)構(gòu)比較的,檢查結(jié)構(gòu)中的目地MAC地址和自己的MAC地址,如果不相同,則適配器會丟棄這個結(jié)構(gòu)。這個操作會由硬件來完成,所以,對于計算機內(nèi)的程序來說,整個過程時毫無察覺的。</p><p> 當(dāng)路由器的以太網(wǎng)適配器發(fā)現(xiàn)
53、這個結(jié)構(gòu)后,它會讀取網(wǎng)絡(luò)信息,并且去掉前14個字節(jié),跟蹤4個字節(jié)。查找0x0800標(biāo)記,然后對這個結(jié)構(gòu)進行處理(它將根據(jù)網(wǎng)絡(luò)狀況推測出下一個最快路由節(jié)點,從而最快傳送數(shù)據(jù)到預(yù)定的目標(biāo)地址)。</p><p> 設(shè)想,只有路由機器能夠檢查這個結(jié)構(gòu),并且所有其他的機器都忽略這個結(jié)構(gòu),則嗅探器無論如何也無法檢測到這個結(jié)構(gòu)的。</p><p> MAC地址的格式是什么?以太網(wǎng)卡的MAC地址是一
54、組48比特的數(shù)字,這48比特分為兩個部分組成,前面的24比特用于表示以太網(wǎng)卡的廠商ID,后面的24比特是一組序列號,是由廠商進行分派的,就像我們身份證上的號碼一樣具有全球唯一性。這樣可以擔(dān)保沒有任何兩塊網(wǎng)卡的MAC地址是相同的(當(dāng)然可以通過特殊的方法實現(xiàn))。如果出現(xiàn)相同的地址,將發(fā)生問題,所有這一點是非常重要的。這24比特被稱之為OUI(Organizationally Unique Identifier)。</p>&l
55、t;p> 可是,OUI的真實長度只有22比特,還有兩個比特用于其他:一個比特用來校驗是否是廣播或者多播地址,另一個比特用來分配本地執(zhí)行地址(一些網(wǎng)絡(luò)允許管理員針對具體情況再分配MAC地址)。</p><p> 舉個例子,你的MAC地址在網(wǎng)絡(luò)中表示為 03 00 00 00 00 01 。第一個字節(jié)所包含的值二進制表示方法為00000011。可以看到,最后兩個比特都被置為真值。他指定了一個多播模式,向所有
56、的計算機進行廣播,使用了“NetBEUI”協(xié)議(一般的,在Windows計算機的網(wǎng)絡(luò)中,文件共享傳輸?shù)仁遣皇褂肨CP/IP協(xié)議的)。[12]</p><p><b> 3.2 功能說明</b></p><p> 本次論文我們只對抓取到的本機在網(wǎng)絡(luò)中的通信數(shù)據(jù)(如協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等)加以分析,實現(xiàn)一個簡單的網(wǎng)絡(luò)嗅探器。一個窗體顯示主頁面,
57、另一個頁面顯示詳細的包信息。</p><p> 詳細信息頁面,顯示的信息如下:</p><p> 開始時間:嗅探器抓取數(shù)據(jù)包的時間;</p><p> 源端口:源目的IP地址+端口號;</p><p> 目的端口:目的IP地址+端口號;</p><p> 協(xié)議類型:只分析一下常見的類型,如ICMP, IGMP
58、,IP, TCP,UDP;</p><p> 版本信息:協(xié)議的版本;</p><p> 生存時間:數(shù)據(jù)包的生命周期;</p><p> 報頭大?。簣笪膱笫撞看笮?;</p><p> 報文總長:整個數(shù)據(jù)報的大??;</p><p> 優(yōu)先級別:提供七個級別,分別是Routine = 0,Priority = 1,
59、Immediate = 2,Flash = 3,FlashOverride = 4,CRITICECP = 5,InternetworkControl = 6,NetworkControl = 7;</p><p> 延遲:NormalDelay = 0、 LowDelay = 1;</p><p> 吞吐量:NormalThroughput = 0,HighThroughput =
60、1;</p><p> 可靠性:NormalReliability = 0,HighReliability = 1;[13]</p><p><b> 3.3 系統(tǒng)實施</b></p><p> (1) Microsoft Visual Studio 2005中新建項目Windows應(yīng)用程序PackerMonitor。</p>
61、;<p> (2)添加窗體文件和類文件,分別命名PacketForm.cs、PacketMonitorForm.cs和Packet.cs、PacketMonitor.cs。PacketForm.cs實現(xiàn)詳細信息頁面,PacketMonitorForm.cs實現(xiàn)主頁面。[14]</p><p> (3)編碼,當(dāng)使用C#系統(tǒng)類提供的接口取到數(shù)據(jù)包的比特流時,然后對流的初始化處理如下:</p&g
62、t;<p> public Packet(byte[] raw, DateTime time) </p><p><b> {</b></p><p> if (raw == null)</p><p> throw new ArgumentNullException();</p><p> if
63、 (raw.Length < 20)</p><p> throw new ArgumentException(); </p><p> m_Raw = raw;</p><p> m_Time = time;</p><p> m_Version = (raw[0] & 0xF0) >> 4;</p&
64、gt;<p> m_HeaderLength = (raw[0] & 0x0F) * 4;</p><p> if ((raw[0] & 0x0F) < 5)</p><p> throw new ArgumentException(); // 無效的報頭</p><p> m_Precedence = (Preceden
65、ce)((raw[1] & 0xE0) >> 5);</p><p> m_Delay = (Delay)((raw[1] & 0x10) >> 4);</p><p> m_Throughput = (Throughput)((raw[1] & 0x8) >> 3);</p><p> m_Reli
66、ability = (Reliability)((raw[1] & 0x4) >> 2);</p><p> m_TotalLength = raw[2] * 256 + raw[3];</p><p> if (m_TotalLength != raw.Length)</p><p> throw new ArgumentExceptio
67、n(); // 無效的數(shù)據(jù)包大小</p><p> m_Identification = raw[4] * 256 + raw[5];</p><p> m_TimeToLive = raw[8];</p><p> if (Enum.IsDefined(typeof(Protocol), (int)raw[9]))</p><p>
68、 m_Protocol = (Protocol)raw[9];</p><p><b> else</b></p><p> m_Protocol = Protocol.Other;</p><p> m_Checksum = new byte[2];</p><p> m_Checksum[0] = raw[1
69、1];</p><p> m_Checksum[1] = raw[10];</p><p> m_SourceAddress = new IPAddress(BitConverter.ToUInt32(raw, 12));</p><p> m_DestinationAddress = new IPAddress(BitConverter.ToUInt32(r
70、aw, 16));</p><p> if (m_Protocol == Protocol.Tcp || m_Protocol == Protocol.Udp)</p><p><b> {</b></p><p> m_SourcePort = raw[m_HeaderLength] * 256 + raw[m_HeaderLength
71、 + 1];</p><p> m_DestinationPort = raw[m_HeaderLength + 2] * 256 + raw[m_HeaderLength + 3];</p><p><b> } </b></p><p><b> else {</b></p><p>
72、m_SourcePort = -1;</p><p> m_DestinationPort = -1;</p><p><b> }</b></p><p><b> }[15]</b></p><p><b> 3.4 系統(tǒng)測試</b></p><
73、;p> 網(wǎng)絡(luò)嗅探器運行后的界面:</p><p> 點擊綠色按鈕,開始抓取以太網(wǎng)中與本機通信的IP數(shù)據(jù)包。</p><p> 點擊紅色按鈕,停止監(jiān)聽。抓取到的信息如下圖:</p><p> 從圖中可以看出,抓到的有UDP數(shù)據(jù)報,TCP數(shù)據(jù)報,ICMP數(shù)據(jù)報。鼠標(biāo)雙擊列表行,分別得到詳細的報文信息。</p><p> UDP協(xié)議
74、詳細的報文信息如下:</p><p> TCP協(xié)議詳細的報文信息如下:</p><p> ICMP協(xié)議詳細的報文信息如下:</p><p><b> 4 論文總結(jié)</b></p><p> 網(wǎng)絡(luò)嗅探器是一把雙刃劍,網(wǎng)絡(luò)安全管理人員利用它可保障網(wǎng)絡(luò)暢通,防范網(wǎng)絡(luò)被攻擊,以達到維護網(wǎng)絡(luò)安全的目的,但是到了入侵者手中
75、,嗅探器成了捕獲網(wǎng)絡(luò)傳輸?shù)臋C密、敏感數(shù)據(jù)的厲害武器。所以,作為網(wǎng)絡(luò)安全管理人員,應(yīng)該在技術(shù)上把握優(yōu)勢,揮舞這把雙刃劍,在與入侵者的斗爭中取得勝利。單純的嗅探器的功能始終是局限的,例如無法穿過交換機、路由器,所以在大多數(shù)的情況下,嗅探器往往和其他手段結(jié)合起來使用,嗅探器和spoof(欺騙)以及其他技術(shù)手段結(jié)合在一起對網(wǎng)絡(luò)構(gòu)成的危害是巨大的。例如結(jié)合ARPSpoof(ARP欺騙)、MAC Flooding、Fake the MAC Addr
76、ess(欺騙MAC地址)、ICMP Router Advertisements、ICMP Redirect(ICMP重定向)等技術(shù)手段就可以跨交換機、路由器實施嗅探了。其實嗅探器的目的說穿了只有一個,就是抓包,從抓包這個概念上引伸下去,所有為了能夠抓到網(wǎng)絡(luò)上的信息包而采用的技術(shù)都可以歸入嗅探,單純的嗅探是沒有什么效率的。嗅探器技術(shù)被廣泛應(yīng)用于網(wǎng)絡(luò)維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網(wǎng)絡(luò)的各種信息,通過對這些數(shù)&
77、lt;/p><p><b> 致 謝</b></p><p> 本次畢業(yè)論文在*老師的諄諄教導(dǎo)、循循善誘下才能得以順利完成,我要感謝我敬愛的導(dǎo)師郭步,正因為您的不辭辛苦、兢兢業(yè)業(yè)的工作務(wù)實態(tài)度使我感佩不已,尤其您在專業(yè)方面的教誨使我受益非淺,并為我以后的工作與學(xué)習(xí)打下了扎實的基礎(chǔ)。另外您教導(dǎo)我關(guān)于人生的真理更是我一生的“指明燈”,讓我對社會提前有了一個比較系統(tǒng)的認識
78、,以便以我更好地融入到社會,,更好地為祖國貢獻自己的知識與力量。</p><p> 在此,我更要感謝我的父母,是他們幾十年如一日般對我的撫養(yǎng)與教育,正所謂“兒行千里母擔(dān)憂”,孩兒一定會讓您們以我為榮的。在這四年的大學(xué)生涯里,我徹底地擺脫了飯來張口,衣來伸手的“寄生蟲”式生活,讓我在進入社會之前有了一個比較好的過渡時期,我深信不管我以后遇到多大的困難,我都會迎難而上,而不是淺嘗則止,這是我一生中最寶貴的精神財富。
79、</p><p> 大學(xué),給了我知識,給了我技能,給了我自信,給了我力量。在嘉院的四年里,是我一生最寶貴的記憶,因為我不僅有“授業(yè)解惑”的恩師,而且還有一群可以相依為伴的好同學(xué)。也正是你們的存在才讓我的大學(xué)生涯充滿了精彩。人生得一知己足矣!而我卻如此幸運,這是上天對我的眷顧,也是對我做人的肯定。我一定會在以后的人生道路上,把從嘉院學(xué)到的知識與精神運用到實際的工作當(dāng)中,為我敬愛的師長爭光,為自己的人生買單。<
80、;/p><p> 最后,再次向我敬愛的導(dǎo)師,尊敬的父母,熱心的朋友,致于我最崇高的敬意,謝謝您們!我一定不會辜負您們的期望!</p><p><b> 參考文獻</b></p><p> [1] 盧昱等著.網(wǎng)絡(luò)安全技術(shù)[專著] - 北京:經(jīng)濟管理出版社,2004</p><p> [2] 梅曉東
81、著.Visual C#網(wǎng)絡(luò)編程技術(shù)與實踐[M].北京:清華大學(xué)出版社. 2006</p><p> [3] 謝希仁著.計算機網(wǎng)絡(luò)電子[M].北京:工業(yè)出版社.2005</p><p> [4] 段云所著.信息安全概論[專著] - 大連:東北財經(jīng)大學(xué)出版社,2006</p><p> [5] 丁永生編著.計算智能--理論、技術(shù)與應(yīng)用
82、;- 北京: 科學(xué)出版社,2004.12</p><p> [6] 王寶智等著.全新計算機網(wǎng)絡(luò)教程[專著] - 天津:天津科學(xué)技術(shù)出版社,1983.1</p><p> [7] 肖漢等著.軟件工程[專著]-北京:國防工業(yè)出版社,2009.6</p><p> [8] 王力等著.病毒武器與網(wǎng)絡(luò)戰(zhàn)爭[專著]. - 北京:機械
83、工業(yè)出版社,1994.7</p><p> [9] 程秉恢等著.黑客任務(wù)實戰(zhàn) - 北京:科學(xué)出版社,2005</p><p> [10] 單征等著.網(wǎng)絡(luò)漏洞攻擊與防范指南[專著] - 西安:西安交通大學(xué)出版社,1984.10</p><p> [11] Huitema,C.,Routing in the Internet,Pren
84、tice Hall,1995.8</p><p> [12] 潘荷新等著.網(wǎng)絡(luò)技術(shù)應(yīng)用與實訓(xùn)教程[專著]-北京:科技出版社,2009.8</p><p> [13] 張保通等著.計算機網(wǎng)絡(luò)模塊教程[專著]-北京:中國水利水電出版社,2009.10</p><p> [14] Stallings,W.,Data and Computer Communicatio
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于c#的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)【畢業(yè)設(shè)計】
- web嗅探器的設(shè)計與實現(xiàn) ——系統(tǒng)界面與文件下載模塊畢業(yè)設(shè)計論文
- 網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)課程設(shè)計
- 基于c#的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 信息安全課程設(shè)計---網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)
- 基于LINUX的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn).pdf
- 上機1:基于winpcap的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)
- 基于c#的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)【開題報告】
- 基于c#的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn)【文獻綜述】
- 基于橋接技術(shù)的網(wǎng)絡(luò)嗅探器設(shè)計與實現(xiàn).pdf
- ip網(wǎng)絡(luò)數(shù)據(jù)嗅探器設(shè)計
- 網(wǎng)絡(luò)嗅探器畢業(yè)論文
- 課程設(shè)計--基于c#的網(wǎng)絡(luò)嗅探器的設(shè)計和實現(xiàn)
- 網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)中英文翻譯外文翻譯
- 網(wǎng)絡(luò)編程課程設(shè)計-網(wǎng)路嗅探器
- 網(wǎng)絡(luò)課程設(shè)計---使用vc++編程實現(xiàn)網(wǎng)絡(luò)嗅探器
- 基于嗅探技術(shù)的網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計與實現(xiàn).pdf
- Android平臺視頻嗅探下載軟件的設(shè)計與實現(xiàn).pdf
- 課程設(shè)計:網(wǎng)絡(luò)嗅探器設(shè)計 sniffer vc++平臺
- 畢業(yè)設(shè)計----播放器的設(shè)計與實現(xiàn)
評論
0/150
提交評論