版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 編 號(hào): 審定成績: xxxx大學(xué)畢業(yè)設(shè)計(jì)(論文)設(shè)計(jì)(論文)題目:基于c#的網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 院 名 稱 :計(jì)算機(jī)學(xué)院學(xué) 生 姓 名 :x x專 業(yè) :計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) :學(xué) 號(hào) :指 導(dǎo) 教 師 :x x x答辯組 負(fù)責(zé)人 :填表時(shí)間: 2009 年 4 月xxxx大學(xué)教務(wù)處目錄1 引 言11.1 開發(fā)背景11.2 開發(fā)意義12 系統(tǒng)分析22.1 設(shè)計(jì)概述22.1.1 實(shí)現(xiàn)目標(biāo)22.1.2 開發(fā)環(huán)境22.2 開發(fā)相關(guān)技術(shù)簡介22.2.1 c#語言簡介22.2.2 嗅探技術(shù)簡介32.2.3 tcp/ip協(xié)議42.2.4 數(shù)據(jù)包簡介62.3 可行性分析83 詳細(xì)設(shè)計(jì)93.1 設(shè)
2、計(jì)原理93.2 功能說明123.3 系統(tǒng)實(shí)施123.4 系統(tǒng)測試144 論文總結(jié)195 參考文獻(xiàn)206 致 謝211 引 言1.1 開發(fā)背景隨著各種新的網(wǎng)絡(luò)技術(shù)的不斷出現(xiàn)、應(yīng)用和發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用越來越廣泛,其作用也越來越重要。但是由于計(jì)算機(jī)系統(tǒng)中軟硬件的脆弱性和計(jì)算機(jī)網(wǎng)絡(luò)的脆弱性以及地理分布的位置、自然環(huán)境、自然破壞以及人為因素的影響,不僅增加了信息存儲(chǔ)、處理的風(fēng)險(xiǎn),也給信息傳送帶來了新的問題。計(jì)算機(jī)網(wǎng)絡(luò)安全問題越來越嚴(yán)重,網(wǎng)絡(luò)破壞所造成的損失越來越大。internet的安全已經(jīng)成為亟待解決的問題。多數(shù)黑客入侵成功并植入后門后的第一件事就是選擇一個(gè)合適當(dāng)前網(wǎng)絡(luò)的嗅探器,以獲得更多的受侵者
3、的信息。嗅探器是一種常用的收集有用數(shù)據(jù)的方法,可以作為分析網(wǎng)絡(luò)數(shù)據(jù)包的設(shè)備。網(wǎng)絡(luò)嗅探器就是利用計(jì)算機(jī)的網(wǎng)絡(luò)接口截獲其他計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種工具,而且它與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器捕獲的則是真實(shí)的網(wǎng)絡(luò)報(bào)文.如果把網(wǎng)絡(luò)嗅探器放置于網(wǎng)絡(luò)節(jié)點(diǎn)處,對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)幀進(jìn)行捕獲的一種被動(dòng)監(jiān)聽手段,是一種常用的收集有用數(shù)據(jù)的方法,可以分析各種信息包并描述出網(wǎng)絡(luò)的結(jié)構(gòu)和使用的機(jī)器,由于它接收任何一個(gè)在同一網(wǎng)段上傳輸?shù)臄?shù)據(jù)包,所以也就存在著捕獲密碼、各種信息、秘密文檔等一些沒有加密的信息的可能性。這成為黑客們常用的擴(kuò)大戰(zhàn)果的方法,用來奪取其他主機(jī)的控制權(quán)。當(dāng)然嗅探器的正當(dāng)
4、用處主要是網(wǎng)絡(luò)管理人員分析網(wǎng)絡(luò)的流量,以便找出所關(guān)心的網(wǎng)絡(luò)中潛在的問題。例如,假設(shè)網(wǎng)絡(luò)的某一段運(yùn)行得不是很好,報(bào)文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時(shí)就可以用嗅探器截獲網(wǎng)絡(luò)中的數(shù)據(jù)包,分析問題的所在。11.2 開發(fā)意義本次畢業(yè)設(shè)計(jì)是基于c#的網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn),由于本人能力上的限度,只是對(duì)抓取到的本機(jī)在網(wǎng)絡(luò)中的通信數(shù)據(jù),比如說協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等加以分析,而無法做到像sniffer或者影音神探那種成熟的嗅探器所擁有的強(qiáng)大功能。作為從事網(wǎng)絡(luò)技術(shù)方面的人員來說,要想有效地利用它、防范它,就得深入地學(xué)習(xí)、分析網(wǎng)絡(luò)嗅探技術(shù)。最為重要的是,對(duì)于網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與
5、實(shí)現(xiàn),使我對(duì)網(wǎng)絡(luò)通信,數(shù)據(jù)傳輸和網(wǎng)絡(luò)信息安全等有了切身的體會(huì)與融入,同時(shí)也是對(duì)大學(xué)四年的學(xué)以致用,不斷提高自我的一種有效途徑。2 系統(tǒng)分析2.1 設(shè)計(jì)概述基于c#的網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn),首先就是要設(shè)定好實(shí)現(xiàn)的目標(biāo),確定開發(fā)的環(huán)境。有個(gè)合理的設(shè)計(jì)目標(biāo)使得在設(shè)計(jì)過程中不茫然,思路更清楚。而一個(gè)好的開發(fā)環(huán)境對(duì)提高開發(fā)的效率同樣起著很重要的作用。2.1.1 實(shí)現(xiàn)目標(biāo)實(shí)現(xiàn)一個(gè)簡單的網(wǎng)絡(luò)嗅探器。具備以下功能:1、實(shí)現(xiàn)一個(gè)簡潔的易操作的計(jì)算機(jī)操作用戶界面2、實(shí)現(xiàn)抓取數(shù)據(jù)包的功能3、實(shí)現(xiàn)暫停抓取數(shù)據(jù)包的功能4、實(shí)現(xiàn)清空列表的功能5、實(shí)現(xiàn)顯示數(shù)據(jù)包詳細(xì)信息的顯示功能2.1.2 開發(fā)環(huán)境microsoft vi
6、sual studio 2005,windows xp2.2 開發(fā)相關(guān)技術(shù)簡介本節(jié)將對(duì)本設(shè)計(jì)中用到的一些主要技術(shù)進(jìn)行簡單的介紹。2.2.1 c#語言簡介c#是微軟于2000年提出的一種源于c+、類似于java的面向?qū)ο缶幊陶Z言,適合于分布式環(huán)境中的組件開發(fā)。c# 是專門為.net設(shè)計(jì)的,也是.net編程的首選語言。c的產(chǎn)生是因?yàn)槲④浽?net上需要一種類java的語言,而java本身卻不能勝任這一需求。c太像c+了,以至于它很難給人帶來體驗(yàn)新事物時(shí)的那種興奮。不過,絕大部分的c+開發(fā)者將會(huì)因?yàn)閏保留了c+中大部分其喜歡的、強(qiáng)大的、令人激動(dòng)的功能而選擇使用它。c通過避免一般的編程錯(cuò)誤和自動(dòng)資源管
7、理,使得c的穩(wěn)定性得到了極大的增強(qiáng)。另外,c#語言功能強(qiáng)大且可以實(shí)現(xiàn)對(duì)象之間的轉(zhuǎn)換,輕松實(shí)現(xiàn)各種對(duì)象轉(zhuǎn)換成字符串。鑒于以上種種,我選用c#作為我本次設(shè)計(jì)的開發(fā)語言。22.2.2 嗅探技術(shù)簡介數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀(frame)的單位傳輸?shù)?,幀由幾部分組成,不同的部分執(zhí)行不同的功能。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動(dòng)程序的軟件進(jìn)行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上,通過網(wǎng)線到達(dá)它們的目的機(jī)器,在目的機(jī)器的一端執(zhí)行相反的過程。接收端機(jī)器的以太網(wǎng)卡捕獲到這些幀,并告訴操作系統(tǒng)幀已到達(dá),然后對(duì)其進(jìn)行存儲(chǔ)。就是在這個(gè)傳輸和接收的過程中,存在安全方面的問題。 每一個(gè)在局域網(wǎng)(lan)上的工作站都有其硬件地址,這些
8、地址惟一地表示了網(wǎng)絡(luò)上的機(jī)器(這一點(diǎn)與internet地址系統(tǒng)比較相似)。當(dāng)用戶發(fā)送一個(gè)數(shù)據(jù)包時(shí),這些數(shù)據(jù)包就會(huì)發(fā)送到lan上所有可用的機(jī)器。3 圖示:一個(gè)簡單的局域網(wǎng)組成 在一般情況下,網(wǎng)絡(luò)上所有的機(jī)器都可以“聽”到通過的流量,但對(duì)不屬于自己的數(shù)據(jù)包則不予響應(yīng)(換句話說,工作站a不會(huì)捕獲屬于工作站b的數(shù)據(jù),而是簡單地忽略這些數(shù)據(jù))。 嗅探器工作在網(wǎng)絡(luò)的底層,在網(wǎng)絡(luò)上監(jiān)聽數(shù)據(jù)包來獲取敏感信息。從原理上來說,在一個(gè)實(shí)際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來完成的,網(wǎng)卡接收到傳輸來的數(shù)據(jù),網(wǎng)卡內(nèi)的單片程序接收數(shù)據(jù)幀的目的mac地址,根據(jù)計(jì)算機(jī)上的網(wǎng)卡驅(qū)動(dòng)程序設(shè)置的接收模式判斷該不該接收,認(rèn)為該接收就接收后
9、產(chǎn)生中斷信號(hào)通知cpu,認(rèn)為不該接收就丟掉不管,所以不該接收的數(shù)據(jù)網(wǎng)卡就截?cái)嗔耍?jì)算機(jī)根本就不知道。對(duì)于網(wǎng)卡來說一般有四種接收模式:a)廣播方式:該模式下的網(wǎng)卡能夠接收網(wǎng)絡(luò)中的廣播信息。b)組播方式:設(shè)置在該模式下的網(wǎng)卡能夠接收組播數(shù)據(jù)。c)直接方式:在這種模式下,只有目的網(wǎng)卡才能接收該數(shù)據(jù)。d)混雜模式:在這種模式下的網(wǎng)卡能夠接收一切通過它的數(shù)據(jù),而不管該數(shù)據(jù)是否是傳給它的。首先,在以太網(wǎng)中是基于廣播方式傳送數(shù)據(jù)的,也就是說,所有的物理信號(hào)都要經(jīng)過我的機(jī)器。其次,如果某個(gè)工作站的網(wǎng)絡(luò)接口處于混雜模式,那么它就可以捕獲網(wǎng)絡(luò)上所有的數(shù)據(jù)包和幀。sniffor程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡
10、(nic,一般為以太網(wǎng)卡)置為混雜模式狀態(tài)的工具,一旦網(wǎng)卡設(shè)置為這種模式,它就能接收傳輸在網(wǎng)絡(luò)上的每一個(gè)信息包,而不管該數(shù)據(jù)是否傳給它的。4 2.2.3 tcp/ip協(xié)議因特網(wǎng)是一個(gè)發(fā)展非?;钴S的領(lǐng)域。在1968年,它的早期研究成果開始嶄露頭角,后來便出現(xiàn)了它的前身arpanet,arpanet為表現(xiàn)因特網(wǎng)特性的試驗(yàn)平臺(tái)做出了重大貢獻(xiàn),1973年,因特網(wǎng)正式面世。從那時(shí)起,關(guān)于因特網(wǎng)的研究和努力就一直沒有間斷過,其中大部分努力都是圍繞著被稱為網(wǎng)絡(luò)的一個(gè)新型賽博空間所需要的標(biāo)準(zhǔn)而進(jìn)行的。因特網(wǎng)協(xié)議及其標(biāo)準(zhǔn)與世界上任何其他事物的結(jié)構(gòu)不同,它總是由一些機(jī)構(gòu)或?qū)I(yè)人士中的個(gè)人首先提出的。為了了解新的協(xié)
11、議是如何出現(xiàn)并最終成為標(biāo)準(zhǔn)的,應(yīng)該首先熟悉縮寫詞rfc,即request for comment。它的發(fā)展變遷過程要追溯到1 9 6 9年,起因是由于因特網(wǎng)的成員過于分散。正如這個(gè)詞的字面意思所示,這些文檔是一些實(shí)用文檔、方法、測試結(jié)果、模型甚至完整的規(guī)范。因特網(wǎng)社會(huì)的成員可以閱讀,也可以把意見反饋給rfc,如果這些想法(或基本原理)被社會(huì)接受,就有可能成為標(biāo)準(zhǔn)。在因特網(wǎng)社會(huì)中關(guān)于r f c的用法(m o)以及如何操作并沒有太大的變化。1969年,當(dāng)時(shí)只有一個(gè)網(wǎng)絡(luò),整個(gè)社會(huì)不超過一百位專業(yè)人員;隨著因特網(wǎng)的飛速發(fā)展,因特網(wǎng)不但需要一個(gè)機(jī)構(gòu)來集中和協(xié)調(diào)這些成果,并且需要制定一個(gè)最低要求的準(zhǔn)則,至
12、少能在成員之間進(jìn)行有效的通信并取得相互了解。1974年前后,擺在arpanet面前的形勢很清晰了,通信聯(lián)絡(luò)需要進(jìn)一步擴(kuò)展,它需要的不僅是要能容納成倍增加的通信媒體,而且要了解早已存在于群組中的許多領(lǐng)域的意義。這個(gè)領(lǐng)域需要一個(gè)管理者。大約在1977年,隨著作為因特網(wǎng)實(shí)驗(yàn)備忘錄(ien)一部分的許多實(shí)驗(yàn)的進(jìn)行,著名的t c p / i p協(xié)議獲得了發(fā)展的動(dòng)力。沒過多久(1986年),為了rfc討論的需要,需要建立一個(gè)由工程技術(shù)人員組成的、對(duì)標(biāo)準(zhǔn)的發(fā)展負(fù)責(zé)的工作機(jī)構(gòu),以便有效地引導(dǎo)因特網(wǎng)的發(fā)展成長,這樣,因特網(wǎng)工程工作組(ineng)成立了。今天,因特網(wǎng)工程部(ietf)和因特網(wǎng)研究部(trtf)成
13、為對(duì)因特網(wǎng)近期工程需求和遠(yuǎn)期研究目標(biāo)負(fù)責(zé)、并擔(dān)負(fù)重任的兩個(gè)工作組。這兩個(gè)組織曾直接隸屬于國際網(wǎng)絡(luò)執(zhí)行委員會(huì)(iab),現(xiàn)在屬于因特網(wǎng)協(xié)會(huì)(1992年成立),這個(gè)協(xié)會(huì)最終也是為因特網(wǎng)技術(shù)的發(fā)展負(fù)責(zé)的。但是,如果你是一個(gè)因特網(wǎng)上的常客,可能對(duì)縮略詞iab并不滿意,的確,在iab的逐步發(fā)展并走向成熟過程中,iab將它的名字改為“internet architecture board”(由“activities”改為“architecture”),因?yàn)閕 a b在因特網(wǎng)發(fā)展的運(yùn)作方面并沒起多大作用。談到rfc標(biāo)準(zhǔn),那么首先考慮到的應(yīng)該是rfc733。如果有關(guān)于標(biāo)準(zhǔn)的想法或?qū)σ蛱鼐W(wǎng)有益的新技術(shù),可以把它
14、作為rfc提交給因特網(wǎng)社會(huì)。作為iab成員之一的rfc編輯,決定著rfc的發(fā)表,對(duì)任一正式文檔,rfc都有一種確定的風(fēng)格和格式。5現(xiàn)今因特網(wǎng)上用到的主要協(xié)議有:用戶數(shù)據(jù)報(bào)協(xié)議(udp),次要文件傳輸協(xié)議(tftp),網(wǎng)際協(xié)議(ip),因特網(wǎng)控制報(bào)文協(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)。下面對(duì)其中的4個(gè)協(xié)議做一些簡單的介紹: ip :網(wǎng)際協(xié)議ip是tcp/ip的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。ip層
15、接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層-tcp或udp層;相反,ip層也把從tcp或udp層接收來的數(shù)據(jù)包傳送到更低層。ip數(shù)據(jù)包是不可靠的,因?yàn)閕p并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。ip數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。 高層的tcp和udp服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說,ip地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來的。ip確認(rèn)包含一個(gè)選項(xiàng),叫作ip source routing,可以用來指定一條源地址和目的地址之間的
16、直接路徑。對(duì)于一些tcp和udp的服務(wù)來說,使用了該選項(xiàng)的ip包好象是從路徑上的最后一個(gè)系統(tǒng)傳遞過來的,而不是來自于它的真實(shí)地點(diǎn)。這個(gè)選項(xiàng)是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。那么,許多依靠ip源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會(huì)被非法入侵。 tcp:如果ip數(shù)據(jù)包中有已經(jīng)封好的tcp數(shù)據(jù)包,那么ip將把它們向上傳送到tcp層。tcp將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。tcp數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。 tcp將它的信息送到更高層的應(yīng)用程序,例如telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送
17、回tcp層,tcp層便將它們向下傳送到ip層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。 面向連接的服務(wù)(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(發(fā)送和接收域名數(shù)據(jù)庫),但使用udp傳送有關(guān)單個(gè)主機(jī)的信息。 udp:udp與tcp位于同一層,但對(duì)于數(shù)據(jù)包的順序錯(cuò)誤或重發(fā)。因此,udp不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),udp主要用于那些面向查詢-應(yīng)答的服務(wù),例如nfs。相對(duì)于ftp或telnet,這些服務(wù)需要交換的信息量較小。使用udp的服務(wù)包括ntp(網(wǎng)落時(shí)間協(xié)議)和dns(dns也使用tc
18、p)。 欺騙udp包比欺騙tcp包更容易,因?yàn)閡dp沒有建立初始化連接(也可以稱為握手)(因?yàn)樵趦蓚€(gè)系統(tǒng)間沒有虛電路),也就是說,與udp相關(guān)的服務(wù)面臨著更大的危險(xiǎn)。 icmp: icmp與ip位于同一層,它被用來傳送ip的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。icmp的redirect信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而unreachable信息則指出路徑有問題。另外,如果路徑不可用了,icmp可以使tcp連接體面地終止。ping是最常用的基于icmp的服務(wù)。62.2.4 數(shù)據(jù)包簡介 “包”(packet)是tcp/ip協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱“數(shù)據(jù)包”。有
19、人說,局域網(wǎng)中傳輸?shù)牟皇恰皫?frame)嗎?沒錯(cuò),但是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)準(zhǔn)化組織(iso)定義的標(biāo)準(zhǔn),它定義了一種分層體系結(jié)構(gòu),在其中的每一層定義了針對(duì)不同通信級(jí)別的協(xié)議。osi模型有5層,1到5層分別是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。osi模型在邏輯上可分為兩個(gè)部分:低層的1至3層關(guān)注的是原始數(shù)據(jù)的傳輸;高層的4至5層關(guān)
20、注的是網(wǎng)絡(luò)下的應(yīng)用程序。 我們可以用一個(gè)形象一些的例子對(duì)數(shù)據(jù)包的概念加以說明:我們在郵局郵寄產(chǎn)品時(shí),雖然產(chǎn)品本身帶有自己的包裝盒,但是在郵寄的時(shí)候只用產(chǎn)品原包裝盒來包裝顯然是不行的。必須把內(nèi)裝產(chǎn)品的包裝盒放到一個(gè)郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產(chǎn)品包裝盒相當(dāng)于數(shù)據(jù)包,里面放著的產(chǎn)品相當(dāng)于可用的數(shù)據(jù),而專用紙箱就相當(dāng)于幀,且一個(gè)幀中只有一個(gè)數(shù)據(jù)包。 “包”聽起來非常抽象,那么是不是不可見的呢?通過一定技術(shù)手段,是可以感知到數(shù)據(jù)包的存在的。比如在windows 2000 server中,把鼠標(biāo)移動(dòng)到任務(wù)欄右下角的網(wǎng)卡圖標(biāo)上(網(wǎng)卡需要接好雙絞線、連入網(wǎng)絡(luò)),就可以看到“發(fā)送:包,收到:包
21、”的提示。(詳見下圖)通過數(shù)據(jù)包捕獲軟件,也可以將數(shù)據(jù)包捕獲并加以分析。 就是用網(wǎng)絡(luò)嗅探器捕獲數(shù)據(jù)包,可以查看捕獲到的數(shù)據(jù)包的mac地址、ip地址、協(xié)議類型端口號(hào)等細(xì)節(jié)。通過分析這些數(shù)據(jù),網(wǎng)管員就可以知道網(wǎng)絡(luò)中到底有什么樣的數(shù)據(jù)包在活動(dòng)了。數(shù)據(jù)包的結(jié)構(gòu)非常復(fù)雜,不是三言兩語能夠說清的,在這里主要了解一下它的關(guān)鍵構(gòu)成就可以了,這對(duì)于理解tcp/ip協(xié)議的通信原理是非常重要的。數(shù)據(jù)包主要由“目的ip地址”、“源ip地址”、“凈載數(shù)據(jù)”等部分構(gòu)成。 數(shù)據(jù)包的結(jié)構(gòu)與我們平常寫信非常類似,目的ip地址是說明這個(gè)數(shù)據(jù)包是要發(fā)給誰的,相當(dāng)于收信人地址;源ip地址是說明這個(gè)數(shù)據(jù)包是發(fā)自哪里的,相當(dāng)于發(fā)信人地址
22、;而凈載數(shù)據(jù)相當(dāng)于信件的內(nèi)容。 正是因?yàn)閿?shù)據(jù)包具有這樣的結(jié)構(gòu),安裝了tcp/ip協(xié)議的計(jì)算機(jī)之間才能相互通信。我們在使用基于tcp/ip協(xié)議的網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)中其實(shí)傳遞的就是數(shù)據(jù)包。比如說當(dāng)你上網(wǎng)打開網(wǎng)頁,這個(gè)簡單的動(dòng)作,就是你先發(fā)送數(shù)據(jù)包給網(wǎng)站,它接收到了之后,根據(jù)你發(fā)送的數(shù)據(jù)包的ip地址,返回給你網(wǎng)頁的數(shù)據(jù)包,也就是說,網(wǎng)頁的瀏覽,實(shí)際上就是數(shù)據(jù)包的交換。理解數(shù)據(jù)包,對(duì)于網(wǎng)絡(luò)管理的網(wǎng)絡(luò)安全具有至關(guān)重要的意義。2.3 可行性分析可行性研究(feasibility study)是通過對(duì)項(xiàng)目的主要內(nèi)容和配套條件,如市場需求、資源供應(yīng)、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技
23、術(shù)、經(jīng)濟(jì)、工程等方面進(jìn)行調(diào)查研究和分析比較,并對(duì)項(xiàng)目建成以后可能取得的財(cái)務(wù)、經(jīng)濟(jì)效益及社會(huì)環(huán)境影響進(jìn)行預(yù)測,從而提出該項(xiàng)目是否值得投資和如何進(jìn)行建設(shè)的咨詢意見,為項(xiàng)目決策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行匝芯繎?yīng)具有預(yù)見性、公正性、可靠性、科學(xué)性的特點(diǎn)。7當(dāng)然這次論文的可行性研究并沒有上述的如此意義重大,只是理清整個(gè)系統(tǒng)分析和設(shè)計(jì)的大致過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程。它的目的不是解決問題,而是確定問題是否值得去解決。當(dāng)然在現(xiàn)階段這樣的信息安全背景下,網(wǎng)絡(luò)嗅探器的研究與使用的價(jià)值是毋庸置疑的。不僅可以有效地診斷網(wǎng)絡(luò)狀況,更可以為信息安全戰(zhàn)打攻堅(jiān)戰(zhàn)。3 詳細(xì)
24、設(shè)計(jì)3.1 設(shè)計(jì)原理嗅探器是如何工作的?如何竊聽網(wǎng)絡(luò)上的信息?網(wǎng)絡(luò)的一個(gè)特點(diǎn)就是數(shù)據(jù)總是在流動(dòng)中,從一處到另外一處,而互聯(lián)網(wǎng)是由錯(cuò)綜復(fù)雜的各種網(wǎng)絡(luò)交匯而成的,也就是說:當(dāng)你的數(shù)據(jù)從網(wǎng)絡(luò)的一臺(tái)電腦到另一臺(tái)電腦的時(shí)候,通常會(huì)經(jīng)過大量不同的網(wǎng)絡(luò)設(shè)備,(我們用tracert命令就可以看到這種路徑是如何進(jìn)行的)。如果傳輸過程中,有人看到了傳輸中的數(shù)據(jù),那么問題就出現(xiàn)了這就好比我們用手機(jī)給人發(fā)了一條短信,結(jié)果除了發(fā)送對(duì)象以外,還發(fā)到別人的手機(jī)上了一樣,這樣說或許還不是很可怕,要是傳送的數(shù)據(jù)是企業(yè)的機(jī)密文件呢,或是用戶的信用卡帳號(hào)和密碼呢?8嗅探偵聽主要有兩種途徑,一種是將偵聽工具軟件放到網(wǎng)絡(luò)連接的設(shè)備或者
25、放到可以控制網(wǎng)絡(luò)連接設(shè)備的電腦上,(比如網(wǎng)關(guān)服務(wù)器,路由器)當(dāng)然要實(shí)現(xiàn)這樣的效果可能也需要通過其他黑客技術(shù)來實(shí)現(xiàn):比如通過木馬方式將嗅探器發(fā)給某個(gè)網(wǎng)絡(luò)管理員,使其不自覺的為攻擊者進(jìn)行了安裝。另外一種是針對(duì)不安全的局域網(wǎng)(采用交換hub實(shí)現(xiàn)),放到個(gè)人電腦上就可以實(shí)現(xiàn)對(duì)整個(gè)局域網(wǎng)的偵聽,這里的原理是這樣的:共享hub獲得一個(gè)子網(wǎng)內(nèi)需要接收的數(shù)據(jù)時(shí),并不是直接發(fā)送到指定主機(jī),而是通過廣播方式發(fā)送到每個(gè)電腦,對(duì)于處于接受者地位的電腦就會(huì)處理該數(shù)據(jù),而其他非接受者的電腦就會(huì)過濾這些數(shù)據(jù),這些操作與電腦操作者無關(guān),是系統(tǒng)自動(dòng)完成的,但是電腦操作者如果有意的話,就可以將那些原本不屬于他的數(shù)據(jù)打開,這就是安
26、全隱患!以太網(wǎng)的數(shù)據(jù)傳輸是基于“共享”原理的:所有的同一本地網(wǎng)范圍內(nèi)的計(jì)算機(jī)共同接收到相同的數(shù)據(jù)包。這意味著計(jì)算機(jī)直接的通訊都是透明可見的。正是因?yàn)檫@樣的原因,以太網(wǎng)卡都構(gòu)造了硬件的“過濾器”。這個(gè)過濾器將忽略掉一切和自己無關(guān)的網(wǎng)絡(luò)信息。事實(shí)上是忽略掉了與自身mac地址不符合的信息。嗅探程序正是利用了這個(gè)特點(diǎn),它主動(dòng)的關(guān)閉了這個(gè)過濾器,也就是前面提到的設(shè)置網(wǎng)卡“混雜模式”。因此,嗅探程序就能夠接收到整個(gè)以太網(wǎng)內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)了信息了。9 什么是以太網(wǎng)的mac地址(mac:media access control),由于大量的計(jì)算機(jī)在以太網(wǎng)內(nèi)“共享“數(shù)據(jù)流,所以必須有一個(gè)統(tǒng)一的辦法用來區(qū)分傳遞給不同
27、計(jì)算機(jī)的數(shù)據(jù)流的。這種問題不會(huì)發(fā)生在撥號(hào)用戶身上,因?yàn)橛?jì)算機(jī)會(huì)假定一切數(shù)據(jù)都由你發(fā)送給modem,然后通過電話線傳送出去??墒牵?dāng)你發(fā)送數(shù)據(jù)到以太網(wǎng)上的時(shí)候,你必須弄清楚,哪臺(tái)計(jì)算機(jī)是你發(fā)送數(shù)據(jù)的對(duì)象。的確,現(xiàn)在有大量的雙向通訊程序出現(xiàn)了,看上去,他們好像只會(huì)在兩臺(tái)機(jī)器內(nèi)交換信息,可是你要明白,以太網(wǎng)的信息是共享的,其他用戶,其實(shí)一樣接收到了你發(fā)送的數(shù)據(jù),只不過是被過濾器給忽略掉了。10 舉例一下,很多的小型局域網(wǎng)計(jì)算機(jī)用戶都為實(shí)現(xiàn)文件和打印共享,安裝了“netbeui” 因?yàn)樗皇腔趖cp/ip協(xié)議的,所以來自于網(wǎng)絡(luò)的黑客一樣無法得知他們的設(shè)備情況?;趓aw協(xié)議,傳輸和接收都在以太網(wǎng)里起
28、著支配作用。你不能直接發(fā)送一個(gè)raw數(shù)據(jù)給以太網(wǎng),你必須先做一些事情,讓以太網(wǎng)能夠理解你的意思。這有點(diǎn)類似于發(fā)短信的方法,你不可能直接把一條短信直接發(fā)送出去,你還要輸入對(duì)方的手機(jī)號(hào)碼才可以發(fā)送,同樣的網(wǎng)絡(luò)上的傳輸數(shù)據(jù)也是一個(gè)道理。11以下是一個(gè)幫助我們理解數(shù)據(jù)傳送的簡單圖示: _ /. /.internet. +-+ +-+.+-+ 用戶a-路由.用戶b +-+ +-+.+-+ ./ -/ +-+ 嗅探器 +-+ 用戶a ip 地址: 0用戶b ip 地址: 現(xiàn)在知道用戶a要于用戶b進(jìn)行計(jì)算機(jī)通訊,用戶a需要為0到用戶b 19
29、的通訊建立一個(gè)ip包 。這個(gè)ip包在網(wǎng)絡(luò)上傳輸,它必須能夠穿透路由器。因此,用戶a必須首先提交這個(gè)包給路由器。由每個(gè)路由器考查目地ip地址然后決定傳送路徑。 用戶a 所知道的只是本地與路由連接和用戶b的ip地址。用戶a并不清楚網(wǎng)絡(luò)的結(jié)構(gòu)情況和路由走向。用戶a必須告訴路由器準(zhǔn)備發(fā)送數(shù)據(jù)包的情況,以太網(wǎng)數(shù)據(jù)傳輸結(jié)構(gòu)大概是這樣的: +-+-+-+-+-+-+ 目標(biāo) mac +-+-+-+-+-+-+ 源 mac +-+-+-+-+-+-+ 0x0800 +-+-+-+ ip 包 +-+-+-+-+-+ crc校驗(yàn) +-+-+-+-+ 理解一下這個(gè)結(jié)構(gòu),用戶a的計(jì)算機(jī)建立了一個(gè)數(shù)據(jù)包
30、假設(shè)它由100個(gè)字節(jié)的長度(假設(shè)一下,20 個(gè)字節(jié)是ip信息,20個(gè)字節(jié)是tcp信息,還有60個(gè)字節(jié)為傳送的數(shù)據(jù))?,F(xiàn)在把這個(gè)數(shù)據(jù)包發(fā)送給以太網(wǎng),放14個(gè)字節(jié)在目的mac地址之前,源mac地址還要置一個(gè)0x0800的標(biāo)記,他指示出了tcp/ip棧后的數(shù)據(jù)結(jié)構(gòu)。同時(shí),也附加了4個(gè)字節(jié)用于做crc校驗(yàn)(crc校驗(yàn)用來檢查傳輸數(shù)據(jù)的正確性)。 現(xiàn)在發(fā)送數(shù)據(jù)到網(wǎng)絡(luò),所有在局域網(wǎng)內(nèi)的計(jì)算機(jī)通過適配器都能夠發(fā)現(xiàn)這個(gè)數(shù)據(jù)包,其中也包括路由適配器,嗅探器和其他一些機(jī)器。通常,適配器都具有一塊芯片用來做結(jié)構(gòu)比較的,檢查結(jié)構(gòu)中的目地mac地址和自己的mac地址,如果不相同,則適配器會(huì)丟棄這個(gè)結(jié)構(gòu)。這個(gè)操作會(huì)由硬件
31、來完成,所以,對(duì)于計(jì)算機(jī)內(nèi)的程序來說,整個(gè)過程時(shí)毫無察覺的。當(dāng)路由器的以太網(wǎng)適配器發(fā)現(xiàn)這個(gè)結(jié)構(gòu)后,它會(huì)讀取網(wǎng)絡(luò)信息,并且去掉前14個(gè)字節(jié),跟蹤4個(gè)字節(jié)。查找0x0800標(biāo)記,然后對(duì)這個(gè)結(jié)構(gòu)進(jìn)行處理(它將根據(jù)網(wǎng)絡(luò)狀況推測出下一個(gè)最快路由節(jié)點(diǎn),從而最快傳送數(shù)據(jù)到預(yù)定的目標(biāo)地址)。設(shè)想,只有路由機(jī)器能夠檢查這個(gè)結(jié)構(gòu),并且所有其他的機(jī)器都忽略這個(gè)結(jié)構(gòu),則嗅探器無論如何也無法檢測到這個(gè)結(jié)構(gòu)的。mac地址的格式是什么?以太網(wǎng)卡的mac地址是一組48比特的數(shù)字,這48比特分為兩個(gè)部分組成,前面的24比特用于表示以太網(wǎng)卡的廠商id,后面的24比特是一組序列號(hào),是由廠商進(jìn)行分派的,就像我們身份證上的號(hào)碼一樣具有
32、全球唯一性。這樣可以擔(dān)保沒有任何兩塊網(wǎng)卡的mac地址是相同的(當(dāng)然可以通過特殊的方法實(shí)現(xiàn))。如果出現(xiàn)相同的地址,將發(fā)生問題,所有這一點(diǎn)是非常重要的。這24比特被稱之為oui(organizationally unique identifier)??墒?,oui的真實(shí)長度只有22比特,還有兩個(gè)比特用于其他:一個(gè)比特用來校驗(yàn)是否是廣播或者多播地址,另一個(gè)比特用來分配本地執(zhí)行地址(一些網(wǎng)絡(luò)允許管理員針對(duì)具體情況再分配mac地址)。舉個(gè)例子,你的mac地址在網(wǎng)絡(luò)中表示為 03 00 00 00 00 01 。第一個(gè)字節(jié)所包含的值二進(jìn)制表示方法為00000011??梢钥吹?,最后兩個(gè)比特都被置為真值。他指定
33、了一個(gè)多播模式,向所有的計(jì)算機(jī)進(jìn)行廣播,使用了“netbeui”協(xié)議(一般的,在windows計(jì)算機(jī)的網(wǎng)絡(luò)中,文件共享傳輸?shù)仁遣皇褂胻cp/ip協(xié)議的)。123.2 功能說明本次論文我們只對(duì)抓取到的本機(jī)在網(wǎng)絡(luò)中的通信數(shù)據(jù)(如協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等)加以分析,實(shí)現(xiàn)一個(gè)簡單的網(wǎng)絡(luò)嗅探器。一個(gè)窗體顯示主頁面,另一個(gè)頁面顯示詳細(xì)的包信息。詳細(xì)信息頁面,我們顯示一下信息:開始時(shí)間:嗅探器抓取數(shù)據(jù)包的時(shí)間;源端口:源目的ip地址+端口號(hào);目的端口:目的ip地址+端口號(hào);協(xié)議類型:只分析一下常見的類型,如icmp, igmp,ip, tcp,udp;版本信息:協(xié)議的版本;生存時(shí)間:數(shù)據(jù)
34、包的生命周期;報(bào)頭大?。簣?bào)文報(bào)首部大?。粓?bào)文總長:整個(gè)數(shù)據(jù)報(bào)的大??;優(yōu)先級(jí)別:提供七個(gè)級(jí)別,分別是routine = 0,priority = 1,immediate = 2,flash = 3,flashoverride = 4,criticecp = 5,internetworkcontrol = 6,networkcontrol = 7;延遲:normaldelay = 0、 lowdelay = 1;吞吐量:normalthroughput = 0,highthroughput = 1;可靠性:normalreliability = 0,highreliability = 1;133.
35、3 系統(tǒng)實(shí)施(1) microsoft visual studio 2005中新建項(xiàng)目windows應(yīng)用程序packermonitor。(2)添加窗體文件和類文件,分別命名packetform.cs、packetmonitorform.cs和packet.cs、packetmonitor.cs。packetform.cs實(shí)現(xiàn)主頁面,packetmonitorform.cs實(shí)現(xiàn)詳細(xì)信息頁面。14 (3)編碼,詳細(xì)的代碼如源程序。當(dāng)使用c#系統(tǒng)類提供的接口取到數(shù)據(jù)包的bite流時(shí),對(duì)流的初始化處理如下:public packet(byte raw, datetime time) if (raw =
36、 null)throw new argumentnullexception();if (raw.length 4; m_headerlength = (raw0 & 0x0f) * 4;if (raw0 & 0x0f) 5);m_delay = (delay)(raw1 & 0x10) 4);m_throughput = (throughput)(raw1 & 0x8) 3);m_reliability = (reliability)(raw1 & 0x4) 2);m_totallength = raw2 * 256 + raw3;if (m_totallength != raw.length
37、)throw new argumentexception(); / 無效的數(shù)據(jù)包大小m_identification = raw4 * 256 + raw5;m_timetolive = raw8;if (enum.isdefined(typeof(protocol), (int)raw9)m_protocol = (protocol)raw9;elsem_protocol = protocol.other;m_checksum = new byte2;m_checksum0 = raw11;m_checksum1 = raw10;m_sourceaddress = new ipaddress
38、(bitconverter.touint32(raw, 12);m_destinationaddress = new ipaddress(bitconverter.touint32(raw, 16);if (m_protocol = protocol.tcp | m_protocol = protocol.udp) m_sourceport = rawm_headerlength * 256 + rawm_headerlength + 1;m_destinationport = rawm_headerlength + 2 * 256 + rawm_headerlength + 3; else
39、m_sourceport = -1;m_destinationport = -1;153.4 系統(tǒng)測試網(wǎng)絡(luò)嗅探器運(yùn)行后的界面如下:點(diǎn)擊綠色按鈕,開始抓取以太網(wǎng)中與本機(jī)通信的ip數(shù)據(jù)包;點(diǎn)擊紅色按鈕,停止監(jiān)聽。抓取到的信息如下圖:從圖中可以看出,抓到的有udp數(shù)據(jù)報(bào),tcp數(shù)據(jù)報(bào),icmp數(shù)據(jù)報(bào)。鼠標(biāo)雙擊列表行,分別得到詳細(xì)的報(bào)文信息。udp協(xié)議詳細(xì)的報(bào)文信息:tcp協(xié)議詳細(xì)的報(bào)文信息:icmp協(xié)議詳細(xì)的報(bào)文信息:4 論文總結(jié)網(wǎng)絡(luò)嗅探器是一把雙刃劍,網(wǎng)絡(luò)安全管理人員利用它可保障網(wǎng)絡(luò)暢通,防范網(wǎng)絡(luò)被攻擊,以達(dá)到維護(hù)網(wǎng)絡(luò)安全的目的,但是到了入侵者手中,嗅探器成了捕獲網(wǎng)絡(luò)傳輸?shù)臋C(jī)密、敏感數(shù)據(jù)的厲害武器
40、。所以,作為網(wǎng)絡(luò)安全管理人員,應(yīng)該在技術(shù)上把握優(yōu)勢,揮舞這把雙刃劍,在與入侵者的斗爭中取得勝利。單純的嗅探器的功能始終是局限的,例如無法穿過交換機(jī)、路由器,所以在大多數(shù)的情況下,嗅探器往往和其他手段結(jié)合起來使用,嗅探器和spoof(欺騙)以及其他技術(shù)手段結(jié)合在一起對(duì)網(wǎng)絡(luò)構(gòu)成的危害是巨大的。例如結(jié)合arpspoof(arp欺騙)、mac flooding、fake the mac address(欺騙mac地址)、icmp router advertisements、icmp redirect(icmp重定向)等技術(shù)手段就可以跨交換機(jī)、路由器實(shí)施嗅探了。其實(shí)嗅探器的目的說穿了只有一個(gè),就是抓包,從抓包這個(gè)概念上引伸下去,所有為了能夠抓到網(wǎng)絡(luò)上的信息包而采用的技術(shù)都可以歸入嗅探,單純的嗅探是沒有什么效率的。嗅探器技術(shù)被廣泛應(yīng)用于網(wǎng)絡(luò)維護(hù)和管理方面,它工作的時(shí)候就像一部被動(dòng)聲納,默默地接收來自網(wǎng)絡(luò)的各種信息,通過對(duì)這些數(shù)據(jù)的分析,網(wǎng)絡(luò)管理員可以深入了解網(wǎng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光纜架設(shè)方案
- 2024-2030年中國滑動(dòng)斜切鋸行業(yè)發(fā)展動(dòng)態(tài)與前景趨勢預(yù)測報(bào)告
- 2024年助懸劑項(xiàng)目提案報(bào)告
- 2024-2030年中國沙拉汁市場營銷模式及發(fā)展競爭力研究報(bào)告
- 2024-2030年中國汽車電動(dòng)燃油泵過濾網(wǎng)行業(yè)市場運(yùn)營模式及未來發(fā)展動(dòng)向預(yù)測報(bào)告
- 2024年光纖用GECL4項(xiàng)目規(guī)劃申請(qǐng)報(bào)告范文
- 2024-2030年中國汽車2S行業(yè)供需狀況及投資經(jīng)營模式分析報(bào)告
- 2024-2030年中國水泥壓力排水管行業(yè)市場運(yùn)營模式及未來發(fā)展動(dòng)向預(yù)測報(bào)告
- 2024-2030年中國氫氧化鉀(苛性鉀)市場供需預(yù)測分析及投資可行性研究報(bào)告
- 校園運(yùn)動(dòng)場太陽能路燈安裝方案
- 3D數(shù)據(jù)設(shè)計(jì)通用規(guī)范
- 急診科常見預(yù)檢分診流程
- 起重機(jī)軌道修理施工方案
- 【圖文】非財(cái)務(wù)人員成本管理知識(shí)培訓(xùn)
- 室外管網(wǎng)工程、外墻防水工程(報(bào)價(jià)清單)
- 瑪氏面試案例分析題及答案
- 干細(xì)胞文獻(xiàn)綜述
- 專利申請(qǐng)著錄項(xiàng)目變更書
- 全文《以史為鑒持續(xù)推動(dòng)美麗中國建設(shè)》PPT
- 《2021國標(biāo)結(jié)構(gòu)專業(yè)圖集資料》04G410-2 1.5mX6.0m預(yù)應(yīng)力混凝土屋面板(鋼筋混凝土部分)
- 設(shè)計(jì)方案——噴漆烘干房
評(píng)論
0/150
提交評(píng)論