版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 編 號: 審定成績: xxxx大學畢業(yè)設計(論文)設計(論文)題目:基于c#的網絡嗅探器的設計與實現(xiàn)學 院 名 稱 :計算機學院學 生 姓 名 :x x專 業(yè) :計算機科學與技術班 級 :學 號 :指 導 教 師 :x x x答辯組 負責人 :填表時間: 2009 年 4 月xxxx大學教務處目錄1 引 言11.1 開發(fā)背景11.2 開發(fā)意義12 系統(tǒng)分析22.1 設計概述22.1.1 實現(xiàn)目標22.1.2 開發(fā)環(huán)境22.2 開發(fā)相關技術簡介22.2.1 c#語言簡介22.2.2 嗅探技術簡介32.2.3 tcp/ip協(xié)議42.2.4 數據包簡介62.3 可行性分析83 詳細設計93.1 設
2、計原理93.2 功能說明123.3 系統(tǒng)實施123.4 系統(tǒng)測試144 論文總結195 參考文獻206 致 謝211 引 言1.1 開發(fā)背景隨著各種新的網絡技術的不斷出現(xiàn)、應用和發(fā)展,計算機網絡的應用越來越廣泛,其作用也越來越重要。但是由于計算機系統(tǒng)中軟硬件的脆弱性和計算機網絡的脆弱性以及地理分布的位置、自然環(huán)境、自然破壞以及人為因素的影響,不僅增加了信息存儲、處理的風險,也給信息傳送帶來了新的問題。計算機網絡安全問題越來越嚴重,網絡破壞所造成的損失越來越大。internet的安全已經成為亟待解決的問題。多數黑客入侵成功并植入后門后的第一件事就是選擇一個合適當前網絡的嗅探器,以獲得更多的受侵者
3、的信息。嗅探器是一種常用的收集有用數據的方法,可以作為分析網絡數據包的設備。網絡嗅探器就是利用計算機的網絡接口截獲其他計算機的數據報文的一種工具,而且它與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器捕獲的則是真實的網絡報文.如果把網絡嗅探器放置于網絡節(jié)點處,對網絡中的數據幀進行捕獲的一種被動監(jiān)聽手段,是一種常用的收集有用數據的方法,可以分析各種信息包并描述出網絡的結構和使用的機器,由于它接收任何一個在同一網段上傳輸的數據包,所以也就存在著捕獲密碼、各種信息、秘密文檔等一些沒有加密的信息的可能性。這成為黑客們常用的擴大戰(zhàn)果的方法,用來奪取其他主機的控制權。當然嗅探器的正當
4、用處主要是網絡管理人員分析網絡的流量,以便找出所關心的網絡中潛在的問題。例如,假設網絡的某一段運行得不是很好,報文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時就可以用嗅探器截獲網絡中的數據包,分析問題的所在。11.2 開發(fā)意義本次畢業(yè)設計是基于c#的網絡嗅探器的設計與實現(xiàn),由于本人能力上的限度,只是對抓取到的本機在網絡中的通信數據,比如說協(xié)議類型,源、目的地址和端口、數據包的大小等加以分析,而無法做到像sniffer或者影音神探那種成熟的嗅探器所擁有的強大功能。作為從事網絡技術方面的人員來說,要想有效地利用它、防范它,就得深入地學習、分析網絡嗅探技術。最為重要的是,對于網絡嗅探器的設計與
5、實現(xiàn),使我對網絡通信,數據傳輸和網絡信息安全等有了切身的體會與融入,同時也是對大學四年的學以致用,不斷提高自我的一種有效途徑。2 系統(tǒng)分析2.1 設計概述基于c#的網絡嗅探器的設計與實現(xiàn),首先就是要設定好實現(xiàn)的目標,確定開發(fā)的環(huán)境。有個合理的設計目標使得在設計過程中不茫然,思路更清楚。而一個好的開發(fā)環(huán)境對提高開發(fā)的效率同樣起著很重要的作用。2.1.1 實現(xiàn)目標實現(xiàn)一個簡單的網絡嗅探器。具備以下功能:1、實現(xiàn)一個簡潔的易操作的計算機操作用戶界面2、實現(xiàn)抓取數據包的功能3、實現(xiàn)暫停抓取數據包的功能4、實現(xiàn)清空列表的功能5、實現(xiàn)顯示數據包詳細信息的顯示功能2.1.2 開發(fā)環(huán)境microsoft vi
6、sual studio 2005,windows xp2.2 開發(fā)相關技術簡介本節(jié)將對本設計中用到的一些主要技術進行簡單的介紹。2.2.1 c#語言簡介c#是微軟于2000年提出的一種源于c+、類似于java的面向對象編程語言,適合于分布式環(huán)境中的組件開發(fā)。c# 是專門為.net設計的,也是.net編程的首選語言。c的產生是因為微軟在.net上需要一種類java的語言,而java本身卻不能勝任這一需求。c太像c+了,以至于它很難給人帶來體驗新事物時的那種興奮。不過,絕大部分的c+開發(fā)者將會因為c保留了c+中大部分其喜歡的、強大的、令人激動的功能而選擇使用它。c通過避免一般的編程錯誤和自動資源管
7、理,使得c的穩(wěn)定性得到了極大的增強。另外,c#語言功能強大且可以實現(xiàn)對象之間的轉換,輕松實現(xiàn)各種對象轉換成字符串。鑒于以上種種,我選用c#作為我本次設計的開發(fā)語言。22.2.2 嗅探技術簡介數據在網絡上是以很小的稱為幀(frame)的單位傳輸的,幀由幾部分組成,不同的部分執(zhí)行不同的功能。幀通過特定的稱為網絡驅動程序的軟件進行成型,然后通過網卡發(fā)送到網線上,通過網線到達它們的目的機器,在目的機器的一端執(zhí)行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴操作系統(tǒng)幀已到達,然后對其進行存儲。就是在這個傳輸和接收的過程中,存在安全方面的問題。 每一個在局域網(lan)上的工作站都有其硬件地址,這些
8、地址惟一地表示了網絡上的機器(這一點與internet地址系統(tǒng)比較相似)。當用戶發(fā)送一個數據包時,這些數據包就會發(fā)送到lan上所有可用的機器。3 圖示:一個簡單的局域網組成 在一般情況下,網絡上所有的機器都可以“聽”到通過的流量,但對不屬于自己的數據包則不予響應(換句話說,工作站a不會捕獲屬于工作站b的數據,而是簡單地忽略這些數據)。 嗅探器工作在網絡的底層,在網絡上監(jiān)聽數據包來獲取敏感信息。從原理上來說,在一個實際的系統(tǒng)中,數據的收發(fā)是由網卡來完成的,網卡接收到傳輸來的數據,網卡內的單片程序接收數據幀的目的mac地址,根據計算機上的網卡驅動程序設置的接收模式判斷該不該接收,認為該接收就接收后
9、產生中斷信號通知cpu,認為不該接收就丟掉不管,所以不該接收的數據網卡就截斷了,計算機根本就不知道。對于網卡來說一般有四種接收模式:a)廣播方式:該模式下的網卡能夠接收網絡中的廣播信息。b)組播方式:設置在該模式下的網卡能夠接收組播數據。c)直接方式:在這種模式下,只有目的網卡才能接收該數據。d)混雜模式:在這種模式下的網卡能夠接收一切通過它的數據,而不管該數據是否是傳給它的。首先,在以太網中是基于廣播方式傳送數據的,也就是說,所有的物理信號都要經過我的機器。其次,如果某個工作站的網絡接口處于混雜模式,那么它就可以捕獲網絡上所有的數據包和幀。sniffor程序是一種利用以太網的特性把網絡適配卡
10、(nic,一般為以太網卡)置為混雜模式狀態(tài)的工具,一旦網卡設置為這種模式,它就能接收傳輸在網絡上的每一個信息包,而不管該數據是否傳給它的。4 2.2.3 tcp/ip協(xié)議因特網是一個發(fā)展非?;钴S的領域。在1968年,它的早期研究成果開始嶄露頭角,后來便出現(xiàn)了它的前身arpanet,arpanet為表現(xiàn)因特網特性的試驗平臺做出了重大貢獻,1973年,因特網正式面世。從那時起,關于因特網的研究和努力就一直沒有間斷過,其中大部分努力都是圍繞著被稱為網絡的一個新型賽博空間所需要的標準而進行的。因特網協(xié)議及其標準與世界上任何其他事物的結構不同,它總是由一些機構或專業(yè)人士中的個人首先提出的。為了了解新的協(xié)
11、議是如何出現(xiàn)并最終成為標準的,應該首先熟悉縮寫詞rfc,即request for comment。它的發(fā)展變遷過程要追溯到1 9 6 9年,起因是由于因特網的成員過于分散。正如這個詞的字面意思所示,這些文檔是一些實用文檔、方法、測試結果、模型甚至完整的規(guī)范。因特網社會的成員可以閱讀,也可以把意見反饋給rfc,如果這些想法(或基本原理)被社會接受,就有可能成為標準。在因特網社會中關于r f c的用法(m o)以及如何操作并沒有太大的變化。1969年,當時只有一個網絡,整個社會不超過一百位專業(yè)人員;隨著因特網的飛速發(fā)展,因特網不但需要一個機構來集中和協(xié)調這些成果,并且需要制定一個最低要求的準則,至
12、少能在成員之間進行有效的通信并取得相互了解。1974年前后,擺在arpanet面前的形勢很清晰了,通信聯(lián)絡需要進一步擴展,它需要的不僅是要能容納成倍增加的通信媒體,而且要了解早已存在于群組中的許多領域的意義。這個領域需要一個管理者。大約在1977年,隨著作為因特網實驗備忘錄(ien)一部分的許多實驗的進行,著名的t c p / i p協(xié)議獲得了發(fā)展的動力。沒過多久(1986年),為了rfc討論的需要,需要建立一個由工程技術人員組成的、對標準的發(fā)展負責的工作機構,以便有效地引導因特網的發(fā)展成長,這樣,因特網工程工作組(ineng)成立了。今天,因特網工程部(ietf)和因特網研究部(trtf)成
13、為對因特網近期工程需求和遠期研究目標負責、并擔負重任的兩個工作組。這兩個組織曾直接隸屬于國際網絡執(zhí)行委員會(iab),現(xiàn)在屬于因特網協(xié)會(1992年成立),這個協(xié)會最終也是為因特網技術的發(fā)展負責的。但是,如果你是一個因特網上的??停赡軐s略詞iab并不滿意,的確,在iab的逐步發(fā)展并走向成熟過程中,iab將它的名字改為“internet architecture board”(由“activities”改為“architecture”),因為i a b在因特網發(fā)展的運作方面并沒起多大作用。談到rfc標準,那么首先考慮到的應該是rfc733。如果有關于標準的想法或對因特網有益的新技術,可以把它
14、作為rfc提交給因特網社會。作為iab成員之一的rfc編輯,決定著rfc的發(fā)表,對任一正式文檔,rfc都有一種確定的風格和格式。5現(xiàn)今因特網上用到的主要協(xié)議有:用戶數據報協(xié)議(udp),次要文件傳輸協(xié)議(tftp),網際協(xié)議(ip),因特網控制報文協(xié)議(icmp),傳輸控制協(xié)議(tcp),地址轉換協(xié)議(arp),虛終端協(xié)議(telnet),反向地址轉換協(xié)議(rarp),外部網關協(xié)議(egp)版本2,引導協(xié)議(bootp),路由信息協(xié)議(rip),距離向量多播路由協(xié)議(dvmrp)。下面對其中的4個協(xié)議做一些簡單的介紹: ip :網際協(xié)議ip是tcp/ip的心臟,也是網絡層中最重要的協(xié)議。ip層
15、接收由更低層(網絡接口層例如以太網設備驅動程序)發(fā)來的數據包,并把該數據包發(fā)送到更高層-tcp或udp層;相反,ip層也把從tcp或udp層接收來的數據包傳送到更低層。ip數據包是不可靠的,因為ip并沒有做任何事情來確認數據包是按順序發(fā)送的或者沒有被破壞。ip數據包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。 高層的tcp和udp服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,ip地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發(fā)送來的。ip確認包含一個選項,叫作ip source routing,可以用來指定一條源地址和目的地址之間的
16、直接路徑。對于一些tcp和udp的服務來說,使用了該選項的ip包好象是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連接。那么,許多依靠ip源地址做確認的服務將產生問題并且會被非法入侵。 tcp:如果ip數據包中有已經封好的tcp數據包,那么ip將把它們向上傳送到tcp層。tcp將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。tcp數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。 tcp將它的信息送到更高層的應用程序,例如telnet的服務程序和客戶程序。應用程序輪流將信息送
17、回tcp層,tcp層便將它們向下傳送到ip層,設備驅動程序和物理介質,最后到接收方。 面向連接的服務(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(發(fā)送和接收域名數據庫),但使用udp傳送有關單個主機的信息。 udp:udp與tcp位于同一層,但對于數據包的順序錯誤或重發(fā)。因此,udp不被應用于那些使用虛電路的面向連接的服務,udp主要用于那些面向查詢-應答的服務,例如nfs。相對于ftp或telnet,這些服務需要交換的信息量較小。使用udp的服務包括ntp(網落時間協(xié)議)和dns(dns也使用tc
18、p)。 欺騙udp包比欺騙tcp包更容易,因為udp沒有建立初始化連接(也可以稱為握手)(因為在兩個系統(tǒng)間沒有虛電路),也就是說,與udp相關的服務面臨著更大的危險。 icmp: icmp與ip位于同一層,它被用來傳送ip的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。icmp的redirect信息通知主機通向其他系統(tǒng)的更準確的路徑,而unreachable信息則指出路徑有問題。另外,如果路徑不可用了,icmp可以使tcp連接體面地終止。ping是最常用的基于icmp的服務。62.2.4 數據包簡介 “包”(packet)是tcp/ip協(xié)議通信傳輸中的數據單位,一般也稱“數據包”。有
19、人說,局域網中傳輸的不是“幀”(frame)嗎?沒錯,但是tcp/ip協(xié)議是工作在osi模型第三層(網絡層)、第四層(傳輸層)上的,而幀是工作在第二層(數據鏈路層)。上一層的內容由下一層的內容來傳輸,所以在局域網中,“包”是包含在“幀”里的。osi(open system interconnection,開放系統(tǒng)互聯(lián))模型是由國際標準化組織(iso)定義的標準,它定義了一種分層體系結構,在其中的每一層定義了針對不同通信級別的協(xié)議。osi模型有5層,1到5層分別是:物理層、數據鏈路層、網絡層、傳輸層、應用層。osi模型在邏輯上可分為兩個部分:低層的1至3層關注的是原始數據的傳輸;高層的4至5層關
20、注的是網絡下的應用程序。 我們可以用一個形象一些的例子對數據包的概念加以說明:我們在郵局郵寄產品時,雖然產品本身帶有自己的包裝盒,但是在郵寄的時候只用產品原包裝盒來包裝顯然是不行的。必須把內裝產品的包裝盒放到一個郵局指定的專用紙箱里,這樣才能夠郵寄。這里,產品包裝盒相當于數據包,里面放著的產品相當于可用的數據,而專用紙箱就相當于幀,且一個幀中只有一個數據包。 “包”聽起來非常抽象,那么是不是不可見的呢?通過一定技術手段,是可以感知到數據包的存在的。比如在windows 2000 server中,把鼠標移動到任務欄右下角的網卡圖標上(網卡需要接好雙絞線、連入網絡),就可以看到“發(fā)送:包,收到:包
21、”的提示。(詳見下圖)通過數據包捕獲軟件,也可以將數據包捕獲并加以分析。 就是用網絡嗅探器捕獲數據包,可以查看捕獲到的數據包的mac地址、ip地址、協(xié)議類型端口號等細節(jié)。通過分析這些數據,網管員就可以知道網絡中到底有什么樣的數據包在活動了。數據包的結構非常復雜,不是三言兩語能夠說清的,在這里主要了解一下它的關鍵構成就可以了,這對于理解tcp/ip協(xié)議的通信原理是非常重要的。數據包主要由“目的ip地址”、“源ip地址”、“凈載數據”等部分構成。 數據包的結構與我們平常寫信非常類似,目的ip地址是說明這個數據包是要發(fā)給誰的,相當于收信人地址;源ip地址是說明這個數據包是發(fā)自哪里的,相當于發(fā)信人地址
22、;而凈載數據相當于信件的內容。 正是因為數據包具有這樣的結構,安裝了tcp/ip協(xié)議的計算機之間才能相互通信。我們在使用基于tcp/ip協(xié)議的網絡時,網絡中其實傳遞的就是數據包。比如說當你上網打開網頁,這個簡單的動作,就是你先發(fā)送數據包給網站,它接收到了之后,根據你發(fā)送的數據包的ip地址,返回給你網頁的數據包,也就是說,網頁的瀏覽,實際上就是數據包的交換。理解數據包,對于網絡管理的網絡安全具有至關重要的意義。2.3 可行性分析可行性研究(feasibility study)是通過對項目的主要內容和配套條件,如市場需求、資源供應、建設規(guī)模、工藝路線、設備選型、環(huán)境影響、資金籌措、盈利能力等,從技
23、術、經濟、工程等方面進行調查研究和分析比較,并對項目建成以后可能取得的財務、經濟效益及社會環(huán)境影響進行預測,從而提出該項目是否值得投資和如何進行建設的咨詢意見,為項目決策提供依據的一種綜合性的系統(tǒng)分析方法??尚行匝芯繎哂蓄A見性、公正性、可靠性、科學性的特點。7當然這次論文的可行性研究并沒有上述的如此意義重大,只是理清整個系統(tǒng)分析和設計的大致過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程。它的目的不是解決問題,而是確定問題是否值得去解決。當然在現(xiàn)階段這樣的信息安全背景下,網絡嗅探器的研究與使用的價值是毋庸置疑的。不僅可以有效地診斷網絡狀況,更可以為信息安全戰(zhàn)打攻堅戰(zhàn)。3 詳細
24、設計3.1 設計原理嗅探器是如何工作的?如何竊聽網絡上的信息?網絡的一個特點就是數據總是在流動中,從一處到另外一處,而互聯(lián)網是由錯綜復雜的各種網絡交匯而成的,也就是說:當你的數據從網絡的一臺電腦到另一臺電腦的時候,通常會經過大量不同的網絡設備,(我們用tracert命令就可以看到這種路徑是如何進行的)。如果傳輸過程中,有人看到了傳輸中的數據,那么問題就出現(xiàn)了這就好比我們用手機給人發(fā)了一條短信,結果除了發(fā)送對象以外,還發(fā)到別人的手機上了一樣,這樣說或許還不是很可怕,要是傳送的數據是企業(yè)的機密文件呢,或是用戶的信用卡帳號和密碼呢?8嗅探偵聽主要有兩種途徑,一種是將偵聽工具軟件放到網絡連接的設備或者
25、放到可以控制網絡連接設備的電腦上,(比如網關服務器,路由器)當然要實現(xiàn)這樣的效果可能也需要通過其他黑客技術來實現(xiàn):比如通過木馬方式將嗅探器發(fā)給某個網絡管理員,使其不自覺的為攻擊者進行了安裝。另外一種是針對不安全的局域網(采用交換hub實現(xiàn)),放到個人電腦上就可以實現(xiàn)對整個局域網的偵聽,這里的原理是這樣的:共享hub獲得一個子網內需要接收的數據時,并不是直接發(fā)送到指定主機,而是通過廣播方式發(fā)送到每個電腦,對于處于接受者地位的電腦就會處理該數據,而其他非接受者的電腦就會過濾這些數據,這些操作與電腦操作者無關,是系統(tǒng)自動完成的,但是電腦操作者如果有意的話,就可以將那些原本不屬于他的數據打開,這就是安
26、全隱患!以太網的數據傳輸是基于“共享”原理的:所有的同一本地網范圍內的計算機共同接收到相同的數據包。這意味著計算機直接的通訊都是透明可見的。正是因為這樣的原因,以太網卡都構造了硬件的“過濾器”。這個過濾器將忽略掉一切和自己無關的網絡信息。事實上是忽略掉了與自身mac地址不符合的信息。嗅探程序正是利用了這個特點,它主動的關閉了這個過濾器,也就是前面提到的設置網卡“混雜模式”。因此,嗅探程序就能夠接收到整個以太網內的網絡數據了信息了。9 什么是以太網的mac地址(mac:media access control),由于大量的計算機在以太網內“共享“數據流,所以必須有一個統(tǒng)一的辦法用來區(qū)分傳遞給不同
27、計算機的數據流的。這種問題不會發(fā)生在撥號用戶身上,因為計算機會假定一切數據都由你發(fā)送給modem,然后通過電話線傳送出去??墒?,當你發(fā)送數據到以太網上的時候,你必須弄清楚,哪臺計算機是你發(fā)送數據的對象。的確,現(xiàn)在有大量的雙向通訊程序出現(xiàn)了,看上去,他們好像只會在兩臺機器內交換信息,可是你要明白,以太網的信息是共享的,其他用戶,其實一樣接收到了你發(fā)送的數據,只不過是被過濾器給忽略掉了。10 舉例一下,很多的小型局域網計算機用戶都為實現(xiàn)文件和打印共享,安裝了“netbeui” 因為它不是基于tcp/ip協(xié)議的,所以來自于網絡的黑客一樣無法得知他們的設備情況?;趓aw協(xié)議,傳輸和接收都在以太網里起
28、著支配作用。你不能直接發(fā)送一個raw數據給以太網,你必須先做一些事情,讓以太網能夠理解你的意思。這有點類似于發(fā)短信的方法,你不可能直接把一條短信直接發(fā)送出去,你還要輸入對方的手機號碼才可以發(fā)送,同樣的網絡上的傳輸數據也是一個道理。11以下是一個幫助我們理解數據傳送的簡單圖示: _ /. /.internet. +-+ +-+.+-+ 用戶a-路由.用戶b +-+ +-+.+-+ ./ -/ +-+ 嗅探器 +-+ 用戶a ip 地址: 0用戶b ip 地址: 現(xiàn)在知道用戶a要于用戶b進行計算機通訊,用戶a需要為0到用戶b 19
29、的通訊建立一個ip包 。這個ip包在網絡上傳輸,它必須能夠穿透路由器。因此,用戶a必須首先提交這個包給路由器。由每個路由器考查目地ip地址然后決定傳送路徑。 用戶a 所知道的只是本地與路由連接和用戶b的ip地址。用戶a并不清楚網絡的結構情況和路由走向。用戶a必須告訴路由器準備發(fā)送數據包的情況,以太網數據傳輸結構大概是這樣的: +-+-+-+-+-+-+ 目標 mac +-+-+-+-+-+-+ 源 mac +-+-+-+-+-+-+ 0x0800 +-+-+-+ ip 包 +-+-+-+-+-+ crc校驗 +-+-+-+-+ 理解一下這個結構,用戶a的計算機建立了一個數據包
30、假設它由100個字節(jié)的長度(假設一下,20 個字節(jié)是ip信息,20個字節(jié)是tcp信息,還有60個字節(jié)為傳送的數據)?,F(xiàn)在把這個數據包發(fā)送給以太網,放14個字節(jié)在目的mac地址之前,源mac地址還要置一個0x0800的標記,他指示出了tcp/ip棧后的數據結構。同時,也附加了4個字節(jié)用于做crc校驗(crc校驗用來檢查傳輸數據的正確性)。 現(xiàn)在發(fā)送數據到網絡,所有在局域網內的計算機通過適配器都能夠發(fā)現(xiàn)這個數據包,其中也包括路由適配器,嗅探器和其他一些機器。通常,適配器都具有一塊芯片用來做結構比較的,檢查結構中的目地mac地址和自己的mac地址,如果不相同,則適配器會丟棄這個結構。這個操作會由硬件
31、來完成,所以,對于計算機內的程序來說,整個過程時毫無察覺的。當路由器的以太網適配器發(fā)現(xiàn)這個結構后,它會讀取網絡信息,并且去掉前14個字節(jié),跟蹤4個字節(jié)。查找0x0800標記,然后對這個結構進行處理(它將根據網絡狀況推測出下一個最快路由節(jié)點,從而最快傳送數據到預定的目標地址)。設想,只有路由機器能夠檢查這個結構,并且所有其他的機器都忽略這個結構,則嗅探器無論如何也無法檢測到這個結構的。mac地址的格式是什么?以太網卡的mac地址是一組48比特的數字,這48比特分為兩個部分組成,前面的24比特用于表示以太網卡的廠商id,后面的24比特是一組序列號,是由廠商進行分派的,就像我們身份證上的號碼一樣具有
32、全球唯一性。這樣可以擔保沒有任何兩塊網卡的mac地址是相同的(當然可以通過特殊的方法實現(xiàn))。如果出現(xiàn)相同的地址,將發(fā)生問題,所有這一點是非常重要的。這24比特被稱之為oui(organizationally unique identifier)??墒?,oui的真實長度只有22比特,還有兩個比特用于其他:一個比特用來校驗是否是廣播或者多播地址,另一個比特用來分配本地執(zhí)行地址(一些網絡允許管理員針對具體情況再分配mac地址)。舉個例子,你的mac地址在網絡中表示為 03 00 00 00 00 01 。第一個字節(jié)所包含的值二進制表示方法為00000011。可以看到,最后兩個比特都被置為真值。他指定
33、了一個多播模式,向所有的計算機進行廣播,使用了“netbeui”協(xié)議(一般的,在windows計算機的網絡中,文件共享傳輸等是不使用tcp/ip協(xié)議的)。123.2 功能說明本次論文我們只對抓取到的本機在網絡中的通信數據(如協(xié)議類型,源、目的地址和端口、數據包的大小等)加以分析,實現(xiàn)一個簡單的網絡嗅探器。一個窗體顯示主頁面,另一個頁面顯示詳細的包信息。詳細信息頁面,我們顯示一下信息:開始時間:嗅探器抓取數據包的時間;源端口:源目的ip地址+端口號;目的端口:目的ip地址+端口號;協(xié)議類型:只分析一下常見的類型,如icmp, igmp,ip, tcp,udp;版本信息:協(xié)議的版本;生存時間:數據
34、包的生命周期;報頭大?。簣笪膱笫撞看笮?;報文總長:整個數據報的大?。粌?yōu)先級別:提供七個級別,分別是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)實施(1) microsoft visual studio 2005中新建項目windows應用程序packermonitor。(2)添加窗體文件和類文件,分別命名packetform.cs、packetmonitorform.cs和packet.cs、packetmonitor.cs。packetform.cs實現(xiàn)主頁面,packetmonitorform.cs實現(xiàn)詳細信息頁面。14 (3)編碼,詳細的代碼如源程序。當使用c#系統(tǒng)類提供的接口取到數據包的bite流時,對流的初始化處理如下: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(); / 無效的數據包大小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)測試網絡嗅探器運行后的界面如下:點擊綠色按鈕,開始抓取以太網中與本機通信的ip數據包;點擊紅色按鈕,停止監(jiān)聽。抓取到的信息如下圖:從圖中可以看出,抓到的有udp數據報,tcp數據報,icmp數據報。鼠標雙擊列表行,分別得到詳細的報文信息。udp協(xié)議詳細的報文信息:tcp協(xié)議詳細的報文信息:icmp協(xié)議詳細的報文信息:4 論文總結網絡嗅探器是一把雙刃劍,網絡安全管理人員利用它可保障網絡暢通,防范網絡被攻擊,以達到維護網絡安全的目的,但是到了入侵者手中,嗅探器成了捕獲網絡傳輸的機密、敏感數據的厲害武器
40、。所以,作為網絡安全管理人員,應該在技術上把握優(yōu)勢,揮舞這把雙刃劍,在與入侵者的斗爭中取得勝利。單純的嗅探器的功能始終是局限的,例如無法穿過交換機、路由器,所以在大多數的情況下,嗅探器往往和其他手段結合起來使用,嗅探器和spoof(欺騙)以及其他技術手段結合在一起對網絡構成的危害是巨大的。例如結合arpspoof(arp欺騙)、mac flooding、fake the mac address(欺騙mac地址)、icmp router advertisements、icmp redirect(icmp重定向)等技術手段就可以跨交換機、路由器實施嗅探了。其實嗅探器的目的說穿了只有一個,就是抓包,從抓包這個概念上引伸下去,所有為了能夠抓到網絡上的信息包而采用的技術都可以歸入嗅探,單純的嗅探是沒有什么效率的。嗅探器技術被廣泛應用于網絡維護和管理方面,它工作的時候就像一部被動聲納,默默地接收來自網絡的各種信息,通過對這些數據的分析,網絡管理員可以深入了解網
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年離婚財產分割與和解協(xié)議2篇
- 2025VI設計項目合作協(xié)議:創(chuàng)意與執(zhí)行一體化
- 二零二五年度WPS辦公借款合同模板升級版
- 2024新能源汽車電池生產與供應合同
- 2025年度合同變更合同交接單模板3篇
- 2025年度學校保安服務與校園交通安全合同2篇
- 2025年度洗車店面租賃合同范本(含知識產權保護)3篇
- 2024正規(guī)個人房屋租賃抵押借款合同范本全新版3篇
- 2025年度水資源利用與節(jié)約合同協(xié)議書3篇
- 2025年度柜臺出租及合作經營合同2篇
- 高考日語基礎歸納總結與練習(一輪復習)
- 裝配式混凝土建筑構件識圖-疊合板識讀(裝配式混凝土建筑)
- 會計科目涉稅風險點風險
- 香椿矮化密植栽培
- GB/T 4214.3-2023家用和類似用途電器噪聲測試方法洗碗機的特殊要求
- 建設工程質量控制講義三
- YY/T 0606.7-2008組織工程醫(yī)療產品第7部分:殼聚糖
- 2023年遼寧軌道交通職業(yè)學院高職單招(英語)試題庫含答案解析
- GB/T 29076-2021航天產品質量問題歸零實施要求
- DL-T 5190.1-2022 電力建設施工技術規(guī)范 第1部分:土建結構工程(附條文說明)
- 殯葬服務人才需求調研報告
評論
0/150
提交評論