下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄1 引 言 0 1.1 開發(fā)背景 01.2 開發(fā)意義 12 系統(tǒng)分析 1 2.1 設(shè)計概述 12.1.1 實現(xiàn)目標(biāo) 開發(fā)環(huán)境 2.2.2 開發(fā)相關(guān)技術(shù)簡介 C# 語言簡介 嗅探技術(shù)簡介 TCP/IP 協(xié)議 數(shù)據(jù)包簡介 8.2.3可行性分析 103 詳細(xì)設(shè)計 123.1 設(shè)計原理 123.2 功能說明 173.3 系統(tǒng)實施 183.4 系統(tǒng)測試 214 論文總結(jié) 255 參考文獻 266 致 謝 291 引 言1.1 開發(fā)背景隨著各種新的網(wǎng)絡(luò)技術(shù)的不斷出現(xiàn)、應(yīng)用和發(fā)展,計算機網(wǎng)絡(luò)的應(yīng)用 越來越廣泛,其作用也越來越
2、重要。但是由于計算機系統(tǒng)中軟硬件的脆弱 性和計算機網(wǎng)絡(luò)的脆弱性以與地理分布的位置、自然環(huán)境、自然破壞以與 人為因素的影響,不僅增加了信息存儲、處理的風(fēng)險,也給信息傳送帶來 了新的問題。計算機網(wǎng)絡(luò)安全問題越來越嚴(yán)重,網(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ù)報文的一種工具,而且它與一般的鍵盤捕獲程序不同。鍵盤捕 獲程序捕獲在終端上輸
3、入的鍵值,而嗅探器捕獲的則是真實的網(wǎng)絡(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)果的方法,用來奪取其 他主機的控制權(quán)。當(dāng)然嗅探器的正當(dāng)用處主要是網(wǎng)絡(luò)管理人員分析網(wǎng)絡(luò)的 流量,以便找出所關(guān)心的網(wǎng)絡(luò)中潛在的問題。例如,假設(shè)網(wǎng)絡(luò)的某一段運 行得不是很好,報文的發(fā)送比較慢,而我們又不知道問題出在什么地方,網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)論文此時
4、就可以用嗅探器截獲網(wǎng)絡(luò)中的數(shù)據(jù)包,分析問題的所在。 11.2 開發(fā)意義本次畢業(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ò)信息安全等有了切身的體會與融入,同時也是對大學(xué)四年 的學(xué)以致用,不斷提高自我的一種有效途徑。2 系統(tǒng)分
5、析2.1 設(shè)計概述基于 C# 的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn),首先就是要設(shè)定好實現(xiàn)的目標(biāo), 確定開發(fā)的環(huán)境。有個合理的設(shè)計目標(biāo)使得在設(shè)計過程中不茫然,思路更 清楚。而一個好的開發(fā)環(huán)境對提高開發(fā)的效率同樣起著很重要的作用。2.1.1 實現(xiàn)目標(biāo)實現(xiàn)一個簡單的網(wǎng)絡(luò)嗅探器。具備以下功能:1、實現(xiàn)一個簡潔的易操作的計算機操作用戶界面2、實現(xiàn)抓取數(shù)據(jù)包的功能3、實現(xiàn)暫停抓取數(shù)據(jù)包的功能4、實現(xiàn)清空列表的功能5、實現(xiàn)顯示數(shù)據(jù)包詳細(xì)信息的顯示功能2.1.2 開發(fā)環(huán)境Microsoft Visual Studio 2010, Windows 72.2 開發(fā)相關(guān)技術(shù)簡介本節(jié)將對本設(shè)計中用到的一些主要技術(shù)進行簡單的介紹。
6、2.2.1 C# 語言簡介C# 是微軟于 2000 年提出的一種源于 C+ 、類似于 Java 的面向?qū)ο?編程語言,適合于分布式環(huán)境中的組件開發(fā)。 C# 是專門為 .NET 設(shè)計的, 也是.NET編程的首選語言。C#的產(chǎn)生是因為微軟在.NET上需要一種類 Java的語言,而Java本身卻不能勝任這一需求。C#太像C+ 了,以至于它很難給人帶來體驗新事物時的那種興奮。 不過,絕大部分的 C+ 開發(fā) 者將會因為C#保留了 C+中大部分其喜歡的、強大的、令人激動的功能 而選擇使用它。C #通過避免一般的編程錯誤和自動資源管理,使得C#的穩(wěn)定性得到了極大的增強。 另外,C#語言功能強大且可以實現(xiàn)對象
7、之間 的轉(zhuǎn)換,輕松實現(xiàn)各種對象轉(zhuǎn)換成字符串。鑒于以上種種,我選用C#作為我本次設(shè)計的開發(fā)語言。 2222 嗅探技術(shù)簡介數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀(Frame )的單位傳輸?shù)?,幀由幾?分組成,不同的部分執(zhí)行不同的功能。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動程序的 軟件進行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上,通過網(wǎng)線到達它們的目的機 器,在目的機器的一端執(zhí)行相反的過程。接收端機器的以太網(wǎng)卡捕獲到這 些幀,并告訴操作系統(tǒng)幀已到達,然后對其進行存儲。就是在這個傳輸和 接收的過程中,存在安全方面的問題。每一個在局域網(wǎng)(LAN )上的工作站都有其硬件地址,這些地址惟一 地表示了網(wǎng)絡(luò)上的機器(這一點與In ter net
8、地址系統(tǒng)比較相似)。當(dāng)用戶發(fā)送一個數(shù)據(jù)包時,這些數(shù)據(jù)包就會發(fā)送到LAN上所有可用的機器。3圖示:一個簡單的局域網(wǎng)組成在一般情況下,網(wǎng)絡(luò)上所有的機器都可以“聽”到通過的流量,但對不屬于自己的數(shù)據(jù)包則不予響應(yīng)(換句話說,工作站A不會捕獲屬于工作站B的數(shù)據(jù),而是簡單地忽略這些數(shù)據(jù))。嗅探器工作在網(wǎng)絡(luò)的底層,在網(wǎng)絡(luò)上監(jiān)聽數(shù)據(jù)包來獲取敏感信息。從原理上來說,在一個實際的系統(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)為該接 收就接收后產(chǎn)生中斷信號通知 CPU ,認(rèn)為不該接收就丟掉不管
9、, 所以不該 接收的數(shù)據(jù)網(wǎng)卡就截斷了,計算機根本就不知道。對于網(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ù)的,也就是說,所有的物 理信號都要經(jīng)過我的機器。其次,如果某個工作站的網(wǎng)絡(luò)接口處于混雜模 式,那么它就可以捕獲網(wǎng)絡(luò)上所有的數(shù)據(jù)包和幀。Sniffor程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡(NIC, 般為以太網(wǎng)卡)置為混雜
10、模式狀態(tài)的工具,一旦網(wǎng)卡設(shè)置為這種模式,它就能接 收傳輸在網(wǎng)絡(luò)上的每一個信息包 ,而不管該數(shù)據(jù)是否傳給它的。42.2.3 TCP/IP 協(xié)議因特網(wǎng)是一個發(fā)展非常活躍的領(lǐng)域。在 1968 年,它的早期研究成果 開始嶄露頭角,后來便出現(xiàn)了它的前身 ARPANET , ARPANET 為表現(xiàn)因 特網(wǎng)特性的試驗平臺做出了重大貢獻, 1973 年,因特網(wǎng)正式面世。從那 時起,關(guān)于因特網(wǎng)的研究和努力就一直沒有間斷過,其中大部分努力都是圍繞著被稱為網(wǎng)絡(luò)的一個新型賽博空間所需要的標(biāo)準(zhǔn)而進行的。因特網(wǎng)協(xié) 議與其標(biāo)準(zhǔn)與世界上任何其他事物的結(jié)構(gòu)不同,它總是由一些機構(gòu)或?qū)I(yè) 人士中的個人首先提出的。為了了解新的協(xié)議是
11、如何出現(xiàn)并最終成為標(biāo)準(zhǔn) 的,應(yīng)該首先熟悉縮寫詞 RFC,即Request for Comment。它的發(fā)展變遷過程要追溯到 1 9 6 9 年,起因是由于因特網(wǎng)的成員過于分散。正如這 個詞的字面意思所示,這些文檔是一些實用文檔、方法、測試結(jié)果、模型 甚至完整的規(guī)范。 因特網(wǎng)社會的成員可以閱讀, 也可以把意見反饋給 RFC, 如果這些想法(或基本原理)被社會接受,就有可能成為標(biāo)準(zhǔn)。在因特網(wǎng) 社會中關(guān)于R F C的用法(M 0 )以與如何操作并沒有太大的變化。 1969 年,當(dāng)時只有一個網(wǎng)絡(luò),整個社會不超過一百位專業(yè)人員;隨著因特網(wǎng)的 飛速發(fā)展,因特網(wǎng)不但需要一個機構(gòu)來集中和協(xié)調(diào)這些成果,并且需要
12、制 定一個最低要求的準(zhǔn)則,至少能在成員之間進行有效的通信并取得相互了 解。 1974 年前后,擺在 ARPANET 面前的形勢很清晰了,通信聯(lián)絡(luò)需要 進一步擴展,它需要的不僅是要能容納成倍增加的通信媒體,而且要了解 早已存在于群組中的許多領(lǐng)域的意義。這個領(lǐng)域需要一個管理者。大約在 1977年,隨著作為因特網(wǎng)實驗備忘錄(IEN ) 部分的許多實驗的進行, 著名的T C P / I P協(xié)議獲得了發(fā)展的動力。沒過多久(1986年),為了 RFC討論的需要,需要建立一個由工程技術(shù)人員組成的、對標(biāo)準(zhǔn)的發(fā)展負(fù) 責(zé)的工作機構(gòu),以便有效地引導(dǎo)因特網(wǎng)的發(fā)展成長,這樣,因特網(wǎng)工程工 作組(INENG )成立了。今
13、天,因特網(wǎng)工程部(IETF)和因特網(wǎng)研究部(TRTF) 成為對因特網(wǎng)近期工程需求和遠(yuǎn)期研究目標(biāo)負(fù)責(zé)、并擔(dān)負(fù)重任的兩個工作組。這兩個組織曾直接隸屬于國際網(wǎng)絡(luò)執(zhí)行委員會(IAB),現(xiàn)在屬于因特網(wǎng)協(xié)會(1992年成立),這個協(xié)會最終也是為因特網(wǎng)技術(shù)的發(fā)展負(fù)責(zé)的。但是,如果你是一個因特網(wǎng)上的???,可能對縮略詞 IAB并不滿意, 的確,在IAB的逐步發(fā)展并走向成熟過程中,IAB將它的名字改為“ In ter net Architecture Board ”(由“ Activities ” 改為“ Architecture ”),因為 I A B在因特網(wǎng)發(fā)展的運作方面并沒起多大作用。談到RFC標(biāo)準(zhǔn),那么首
14、先考慮到的應(yīng)該是RFC733。如果有關(guān)于標(biāo)準(zhǔn)的想法或?qū)σ蛱鼐W(wǎng)有益的新技術(shù), 可以把它作為RFC提交給因特網(wǎng)社會。作為IAB成員之一的RFC編輯, 決定著RFC的發(fā)表,對任一正式文檔,RFC都有一種確定的風(fēng)格和格式。5現(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é)議(TeInet),反向地址轉(zhuǎn)換 協(xié)議(RARP),外部網(wǎng)關(guān)協(xié)議(EGP)版本2,引導(dǎo)協(xié)議(BootP),路由信息協(xié) 議(RIP),距離向量多播路由協(xié)議(DVMRP)。下面對其中的4個
15、協(xié)議做一 些簡單的介紹: 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 并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù) 包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地 址)。高層的TCP和UDP服務(wù)在接收數(shù)據(jù)包時,通常假設(shè)包中的源地址是 有效的。也可以這樣說,IP地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相 信數(shù)據(jù)包是從一個有效的
16、主機發(fā)送來的。IP確認(rèn)包含一個選項,叫作IPsource rout ing ,可以用來指定一條源地址和目的地址之間的直接路徑。 對于一些TCP和UDP的服務(wù)來說,使用了該選項的IP包好象是從路徑上 的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個選項是為 了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連 接。那么,許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會被非法入侵。 TCP:如果IP數(shù)據(jù)包中有已經(jīng)封好的 TCP數(shù)據(jù)包,那么IP將把它們 向上傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現(xiàn)虛電 路間的連接。TCP數(shù)據(jù)包中包括序號和確認(rèn),所以未按照順序收到的包可
17、以被排序,而損壞的包可以被重傳。TCP將它的信息送到更高層的應(yīng)用程序,例如Tel net的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回 TCP層,TCP層便將它們向下傳送到IP 層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。面向連接的服務(wù)(例如 Tel net、X Win dows 和SMTP )需要高度的 可靠性,所以它們使用了 TCP。DNS在某些情況下使用 TCP (發(fā)送和接 收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。 UDP:UDP與TCP位于同一層,但對于數(shù)據(jù)包的順序錯誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用 于那些面向查詢 - 應(yīng)答的服務(wù),例
18、如 NFS 。相對于,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)落時間協(xié)議)和DNS( DNS 也使用TCP)。欺騙UDP包比欺騙TCP包更容易,因為 UDP沒有建立 初始化連接(也可以稱為握手) (因為在兩個系統(tǒng)間沒有虛電路) ,也就是 說,與 UDP 相關(guān)的服務(wù)面臨著更大的危險。 ICMP: ICMP 與 IP 位于同一層,它被用來傳送 IP 的的控制信息。 它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP 的 Redirect '信息通知主機通向其他系統(tǒng)的更準(zhǔn)確的路徑,而Unreachable '信息則指出路徑有問題。另外,如果路徑不可用了, ICM
19、P 可以使 TCP 連接體 面地'終止。 PING 是最常用的基于 ICMP 的服務(wù)。 62.2.4 數(shù)據(jù)包簡介“包” (Packet) TCi/IP協(xié)議通信傳輸中的數(shù)據(jù)單位,一般也稱“數(shù) 據(jù)包”。有人說,局域網(wǎng)中傳輸?shù)牟皇恰皫保‵rame) 嗎?沒錯,但是TCP/IP 協(xié)議是工作在 OSI 模型第三層 (網(wǎng)絡(luò)層)、第四層 (傳輸層)上的,而 幀是工作在第二層 (數(shù)據(jù)鏈路層 )。上一層的內(nèi)容由下一層的內(nèi)容來傳輸, 所以在局域網(wǎng)中,“包”是包含在“幀”里的。OSI(Open SystemInterconnection ,幵放系統(tǒng)互聯(lián))模型是由國際標(biāo)準(zhǔn)化組織(ISO)定義的標(biāo) 準(zhǔn),它定義
20、了一種分層體系結(jié)構(gòu),在其中的每一層定義了針對不同通信級 別的協(xié)議。 OSI 模型有 5層, 1 到5層分別是:物理層、數(shù)據(jù)鏈路層、網(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ù),而專用紙箱就相當(dāng)于幀,
21、且一個 幀中只有一個數(shù)據(jù)包?!鞍甭犉饋矸浅3橄螅敲词遣皇遣豢梢姷哪??通過一定技術(shù)手段,是可以感知到數(shù)據(jù)包的存在的。比如在Win dows2000 Server中,把鼠標(biāo)移動到任務(wù)欄右下角的網(wǎng)卡圖標(biāo)上(網(wǎng)卡需要接好 雙絞線、連入網(wǎng)絡(luò)),就可以看到“發(fā)送:XX包,收到:XX包”的提示。(詳見下圖)通過數(shù)據(jù)包捕獲軟件,也可以將數(shù)據(jù)包捕獲并加以分析。就是用網(wǎng)絡(luò)嗅探器捕獲數(shù)據(jù)包,可以查看捕獲到的數(shù)據(jù)包的MAC地址、IP地址、協(xié)議類型端口號等細(xì)節(jié)。通過分析這些數(shù)據(jù),網(wǎng)管員就可以知道網(wǎng)絡(luò)中到底 有什么樣的數(shù)據(jù)包在活動了。數(shù)據(jù)包的結(jié)構(gòu)非常復(fù)雜,不是三言兩語能夠 說清的,在這里主要了解一下它的關(guān)鍵構(gòu)成就可以
22、了,這對于理解TCP/IP協(xié)議的通信原理是非常重要的。數(shù)據(jù)包主要由“目的 IP地址”、“源IP地 址”、“凈載數(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)站,它接收到了之后,根據(jù)你發(fā)送的數(shù) 據(jù)包的 IP 地址
23、,返回給你網(wǎng)頁的數(shù)據(jù)包,也就是說,網(wǎng)頁的瀏覽,實 際上就是數(shù)據(jù)包的交換。理解數(shù)據(jù)包,對于網(wǎng)絡(luò)管理的網(wǎng)絡(luò)安全具有至 關(guān)重要的意義。2.3 可行性分析可行性研究 (Feasibility Study) 是通過對項目的主要內(nèi)容和配套條件, 如市場需求、資源供應(yīng)、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資 金籌措、盈利能力等,從技術(shù)、經(jīng)濟、工程等方面進行調(diào)查研究和分析比 較,并對項目建成以后可能取得的財務(wù)、經(jīng)濟效益與社會環(huán)境影響進行預(yù) 測,從而提出該項目是否值得投資和如何進行建設(shè)的咨詢意見,為項目決 策提供依據(jù)的一種綜合性的系統(tǒng)分析方法??尚行匝芯繎?yīng)具有預(yù)見性、公 正性、可靠性、科學(xué)性的特點。 7當(dāng)然
24、這次論文的可行性研究并沒有上述的如此意義重大,只是理清整 個系統(tǒng)分析和設(shè)計的大致過程,也就是在較高層次上以較抽象的方式進行 的系統(tǒng)分析和設(shè)計的過程。它的目的不是解決問題,而是確定問題是否值 得去解決。當(dāng)然在現(xiàn)階段這樣的信息安全背景下,網(wǎng)絡(luò)嗅探器的研究與使 用的價值是毋庸置疑的。不僅可以有效地診斷網(wǎng)絡(luò)狀況,更可以為信息安 全戰(zhàn)打攻堅戰(zhàn)。3 詳細(xì)設(shè)計3.1 設(shè)計原理嗅探器是如何工作的?如何竊聽網(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è)備,
25、(我們用 tracert 命令就可以看到這 種路徑是如何進行的 )。如果傳輸過程中, 有人看到了傳輸中的數(shù)據(jù), 那么 問題就出現(xiàn)了這就好比我們用手機給人發(fā)了一條短信, 結(jié)果除了發(fā)送 對象以外,還發(fā)到別人的手機上了一樣,這樣說或許還不是很可怕,要是 傳送的數(shù)據(jù)是企業(yè)的機密文件呢,或是用戶的信用卡帳號和密碼呢? 8嗅探偵聽主要有兩種途徑,一種是將偵聽工具軟件放到網(wǎng)絡(luò)連接的設(shè) 備或者放到可以控制網(wǎng)絡(luò)連接設(shè)備的電腦上, (比如網(wǎng)關(guān)服務(wù)器,路由器 ) 當(dāng)然要實現(xiàn)這樣的效果可能也需要通過其他黑客技術(shù)來實現(xiàn):比如通過木馬方式將嗅探器發(fā)給某個網(wǎng)絡(luò)管理員,使其不自覺的為攻擊者進行了 安裝。另外一種是針對不安全的
26、局域網(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ù)打開,這就是安全隱患!以太網(wǎng)的數(shù)據(jù)傳輸是基于“共享”原理的:所有的同一本地網(wǎng)范圍內(nèi) 的計算機共同接收到相同的數(shù)據(jù)包。這意味著計算機直接的通訊都是透明 可見的。正是因為這樣的原因,以太網(wǎng)卡都構(gòu)造了硬件的“過
27、濾器”。這 個過濾器將忽略掉一切和自己無關(guān)的網(wǎng)絡(luò)信息。事實上是忽略掉了與自身 MAC 地址不符合的信息。嗅探程序正是利用了這個特點,它主動的關(guān)閉了這個過濾器,也就是 前面提到的設(shè)置網(wǎng)卡“混雜模式”。因此,嗅探程序就能夠接收到整個以 太網(wǎng)內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)了信息了。 9什么是以太網(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)上的時
28、候,你必須弄清楚,哪臺 計算機是你發(fā)送數(shù)據(jù)的對象。的確,現(xiàn)在有大量的雙向通訊程序出現(xiàn)了, 看上去,他們好像只會在兩臺機器內(nèi)交換信息,可是你要明白,以太網(wǎng)的 信息是共享的,其他用戶,其實一樣接收到了你發(fā)送的數(shù)據(jù),只不過是被 過濾器給忽略掉了。 10舉例一下,很多的小型局域網(wǎng)計算機用戶都為實現(xiàn)文件和打印共享, 安裝了“ NetBEUI ” 因為它不是基于 TCP/IP 協(xié)議的,所以來自于網(wǎng)絡(luò)的網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)論文 黑客一樣無法得知他們的設(shè)備情況?;?Raw 協(xié)議,傳輸和接收都在以 太網(wǎng)里起著支配作用。你不能直接發(fā)送一個 Raw 數(shù)據(jù)給以太網(wǎng),你必須 先做一些事情, 讓以太網(wǎng)能夠理解你的意思
29、。 這有點類似于發(fā)短信的方法, 你不可能直接把一條短信直接發(fā)送出去,你還要輸入對方的手機號碼才可 以發(fā)送,同樣的網(wǎng)絡(luò)上的傳輸數(shù)據(jù)也是一個道理。 11 以下是一個幫助我們理解數(shù)據(jù)傳送的簡單圖示:/.Internet.+ +用戶 A 路由 用戶 B+ 八 +嗅探器+用戶 A IP 地址用戶 B IP 地址現(xiàn)在知道用戶A要于用戶B進行計算機通訊,用戶 A需要為到用戶的通訊建立一個IP包。這個IP包在網(wǎng)絡(luò)上傳輸,它必須能夠穿透路由器。因此,用戶 A 必須首先提交這個包 給路由器。由每個路由器考查目地 IP 地址然后決定傳送路徑。用戶A所知道的只是本地與路由連接和用戶 B的IP地址。用戶A并 不清楚網(wǎng)絡(luò)
30、的結(jié)構(gòu)情況和路由走向。 用戶 A 必須告訴路由器準(zhǔn)備發(fā)送數(shù)據(jù) 包的情況,以太網(wǎng)數(shù)據(jù)傳輸結(jié)構(gòu)大概是這樣的:+-+-+-+-+-+-+目標(biāo) MAC+-+-+-+-+-+-+源 MAC+-+-+-+-+-+-+0x0800+-+-+IP 包+-+-+-+-+CRC 校驗+-+-+-+-+理解一下這個結(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)記, 他
31、指示出了 TCP/IP 棧后的數(shù)據(jù)結(jié)構(gòu)。 同時,也附加了 4 個字節(jié)用于做 CRC 校驗( CRC 校驗用來檢查傳輸數(shù)據(jù)的正確性)?,F(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)的程序來說,整個過程時毫無察覺 的。當(dāng)路由器的以太網(wǎng)適配器發(fā)現(xiàn)這個結(jié)構(gòu)后,它會讀取網(wǎng)絡(luò)信息,并且 去掉前 14 個字節(jié),跟蹤 4 個字節(jié)。查找 0x0800 標(biāo)記,然
32、后對這個結(jié)構(gòu) 進行處理(它將根據(jù)網(wǎng)絡(luò)狀況推測出下一個最快路由節(jié)點,從而最快傳送 數(shù)據(jù)到預(yù)定的目標(biāo)地址)。設(shè)想,只有路由機器能夠檢查這個結(jié)構(gòu),并且所有其他的機器都忽略 這個結(jié)構(gòu),則嗅探器無論如何也無法檢測到這個結(jié)構(gòu)的。MAC 地址的格式是什么?以太網(wǎng)卡的 MAC 地址是一組 48 比特的數(shù) 字,這 48 比特分為兩個部分組成, 前面的 24 比特用于表示以太網(wǎng)卡的廠 商 ID ,后面的 24 比特是一組序列號,是由廠商進行分派的,就像我們身 份證上的號碼一樣具有全球唯一性。這樣可以擔(dān)保沒有任何兩塊網(wǎng)卡的 MAC 地址是相同的(當(dāng)然可以通過特殊的方法實現(xiàn))。如果出現(xiàn)相同的 地址,將發(fā)生問題,所有這
33、一點是非常重要的。這 24 比特被稱之為 OUI ( Organizationally Unique Identifier)??墒?, OUI 的真實長度只有 22 比特,還有兩個比特用于其他: 一個比網(wǎng)絡(luò)嗅探器的設(shè)計與實現(xiàn)論文 特用來校驗是否是廣播或者多播地址,另一個比特用來分配本地執(zhí)行地址 (一些網(wǎng)絡(luò)允許管理員針對具體情況再分配 MAC 地址)。舉個例子,你的 MAC 地址在網(wǎng)絡(luò)中表示為 03 00 00 00 00 01 。第 一個字節(jié)所包含的值二進制表示方法為 00000011 ??梢钥吹剑詈髢蓚€ 比特都被置為真值。他指定了一個多播模式,向所有的計算機進行廣播, 使用了“ NetBEU
34、I ”協(xié)議(一般的,在 Windows 計算機的網(wǎng)絡(luò)中,文件 共享傳輸?shù)仁遣皇褂?TCP/IP 協(xié)議的)。 123.2 功能說明本次論文我們只對抓取到的本機在網(wǎng)絡(luò)中的通信數(shù)據(jù)(如協(xié)議類型,源、目的地址和端口、 數(shù)據(jù)包的大小等 )加以分析, 實現(xiàn)一個簡單的網(wǎng)絡(luò)嗅 探器。一個窗體顯示主頁面,另一個頁面顯示詳細(xì)的包信息。詳細(xì)信息頁面,我們顯示一下信息:開始時間:嗅探器抓取數(shù)據(jù)包的時間;源端口:源目的 IP 地址+ 端口號;目的端口:目的 IP 地址+ 端口號;協(xié)議類型:只分析一下常見的類型,如 ICMP, IGMP,IP, TCP,UDP ; 版本信息:協(xié)議的版本;生存時間:數(shù)據(jù)包的生命周期;報頭大
35、?。簣笪膱笫撞看笮?;報文總長:整個數(shù)據(jù)報的大??;優(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.3 系統(tǒng)
36、實施(1) Microsoft Visual Studio 2005 中新建項目 Windows 應(yīng)用程序 PackerMonitor 。(2) 添加窗體文件和類文件,分別命名PacketForm.cs 、PacketMonitorForm.cs 和 Packet.cs 、 PacketMonitor.cs 。PacketForm.cs 實現(xiàn)主頁面,PacketMonitorForm.cs實現(xiàn)詳細(xì)信息頁面。14(3) 編碼,詳細(xì)的代碼如源程序。當(dāng)使用 C# 系統(tǒng)類提供的接口取到數(shù)據(jù)包的 bite 流時,對流的初始化處理如下:public Packet(byte raw, DateTime ti
37、me)if (raw = null)throw new ArgumentNullException();if (raw.Length < 20)throw new ArgumentException();m_Raw = raw;m_Time = time;m_Version = (raw0 & 0xF0) >> 4;m_HeaderLength = (raw0 & 0x0F) * 4;if (raw0 & 0x0F) < 5)throw new ArgumentException(); /無效的報頭m_Precedence = (Preceden
38、ce)(raw1 & 0xE0) >> 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)無效的數(shù)據(jù)包大小throw new ArgumentException()
39、; / 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 = newIPAddress(BitConverter.ToUInt32(raw, 12);m_Des
40、tinationAddress = newIPAddress(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 m_SourcePort = -1;m_DestinationPort = -1;15
41、3.4 系統(tǒng)測試網(wǎng)絡(luò)嗅探器運行后的界面如下:點擊綠色按鈕,幵始抓取以太網(wǎng)中與本機通信的IP數(shù)據(jù)包;點擊紅色按鈕,停止監(jiān)聽。抓取到的信息如下圖:從圖中可以看出,抓到的有UDP數(shù)據(jù)報,TCP數(shù)據(jù)報,ICMP數(shù)據(jù)報。鼠標(biāo)雙擊列表行,分別得到詳細(xì)的報文信息。UDP協(xié)議詳細(xì)的報文信息:信息宴型S.1” mb .11 I ft bh:3 III mm * 111 .: SilaBIB ” BIB ilzHaa11 B m » 11 3SilaB 3 B 亠 A I 3 MM B B I 3IISAll a«a:S 11 B na 3 i 3 I 3 SBK I 3 & A 3
42、Am. 3 .= B I i ma SlaxHaBI 3 m B B 3 aS I 亠 B B mimb Jill bm B 11 "亠 111 BBU IBB訐咋時IE,2010-5-15 20:29:272201曲的 偌;642UdpQ04西E52Routine麗 nr,al D $1 鱷NornialRtli tliLi tyT0220BE4訶端口 目的端口生存時間撮頭丸小 報立總長 憂先級別 延遲 吞吐量 可盍性校驗和E m , a. Uli k曲E.刖眄電"陽:口 sdl.MO s*fe. comk.l H fljh. it A A-J .ii. <A- J
43、.<lG'Aov.H54AqAOE.,.iksAiAo. r, P.,0. . . . heAOiAo.nslAoAQ. 柿口.Vfia.Au.£-o_OOI JI Js. CI O11111 _b:8_J0200 01000000 F1&C90008000000 T8 406CO-CF_000-000 yftsolTTU o 1 2 A 6 6 4 S3 3c72?-ioo9_r8 & c 5 T 150030000000 dfa-oooofooocccc B-ECOCOOO 1200343 4 o fo&ooo 003311114 E4 I4
44、0QOQDOD&6EE E55OS0000OCC88FF 1802111?0012£EE IE70-0000 0 933CCEE C0 4fl-E004 0003_DVCC oft-ottoooocc7DD7 7 OE4D0112 003E44*4< OACEO Doc 3-336 n-OOQ ODHUFEQ000033000 0 aF&&EottttccrooGO® E-5 4 3OIBC02I6144II 6JO6O22J 3 9 6 o 8 1 3 A B0030000093D22&2 104COCCCC7COOOOO C1_33
45、09CE4££DOOOO. R 9 0BolGaLOOOO o 5A610FF 32080000 Q 4 心 6 Q o J f o o y 0 0 0 0 OD11023FE&D01111 01060811601000005 C&35C1C3O6OOOG0 4 DBU7067300 FOOOOOTCP協(xié)議詳細(xì)的報文信息:ICMP協(xié)議詳細(xì)的報文信息:4 論文總結(jié)網(wǎng)絡(luò)嗅探器是一把雙刃劍, 網(wǎng)絡(luò)安全管理人員利用它可保障網(wǎng)絡(luò)暢通, 防范網(wǎng)絡(luò)被攻擊,以達到維護網(wǎng)絡(luò)安全的目的,但是到了入侵者手中,嗅 探器成了捕獲網(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 Address(欺騙 MAC 地址)、ICMP Router Advertisements、ICMPRedirect(ICMP 重定向
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化旅游產(chǎn)品開發(fā)與銷售合同
- 2025年度景觀設(shè)計軟件許可合同范本
- 2025年公共租賃住房租賃合同租賃合同糾紛處理程序范本
- 2025年度海鮮餐飲連鎖加盟管理合同
- 2025年度新型環(huán)保管材銷售合同范本
- 2025年度農(nóng)產(chǎn)品批發(fā)市場交易合同范本集
- 2025年度汽車寄售車輛展示與銷售支持合同
- 2025年度住房租賃市場物業(yè)管理服務(wù)合同
- 2025年度智慧物流平臺貨物運輸合同托運人權(quán)利義務(wù)明細(xì)表
- 2025年度坑內(nèi)鉆探施工安全生產(chǎn)管理合同
- 2024電力系統(tǒng)安全規(guī)定
- 脊柱骨折與脊髓損傷護理課件
- 小學(xué)二年級語文上冊閱讀理解專項訓(xùn)練20篇(含答案)
- 科技論文圖表等規(guī)范表達
- 高考寫作指導(dǎo)議論文標(biāo)準(zhǔn)語段寫作課件32張
- 2021年普通高等學(xué)校招生全國英語統(tǒng)一考試模擬演練八省聯(lián)考解析
- 華能火力發(fā)電機組節(jié)能降耗技術(shù)導(dǎo)則(2023年版)
- 基礎(chǔ)知識3500個常用漢字附拼音
- 企業(yè)易制毒化學(xué)品管理培訓(xùn)
- JJF(紡織)072-2018紡織滾筒式烘干機校準(zhǔn)規(guī)范
- 羊水栓塞的應(yīng)急預(yù)案演練腳本
評論
0/150
提交評論