




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、華南農(nóng)業(yè)大學信息學院課程設(shè)計課程設(shè)計題目:解析ARP數(shù)據(jù)包計劃學時:2周所屬課程名稱:計算機網(wǎng)絡(luò)課程設(shè)計開設(shè)時間: 2010學年第一學期 授課班級: 07軟件R3指導教師:*學生姓名:*學 號:* 信息學院評分標準封面格式(5)正文格式(10)題目理解準確度(30)程序設(shè)計質(zhì)量(30)設(shè)計報告質(zhì)量(25)得分總分解析ARP數(shù)據(jù)包摘要:本文首先介紹了地址解析協(xié)議ARP的概念,詳細說明了ARP的工作原理,ARP攻擊的基本原理,詳細分解了ARP數(shù)據(jù)包的各個字段含義,ARP協(xié)議工作的流程和這次課程設(shè)計的意義與目的;接著描述了此實驗的總體設(shè)計;然后是詳細設(shè)計,分析講解了實現(xiàn)代碼的主要部分;最后還講了做這
2、次課程設(shè)計的個人總結(jié),談了一些個人觀點。關(guān)鍵字:ARP數(shù)據(jù)包、工作原理、ARP攻擊、解析、截獲、功能1 引言1.1背景首先,我們來了解一下什么是ARP,ARP的工作原理以及ARP攻擊所帶來的危害。1.1.1什么是ARP地址解析協(xié)議(Address Resolution Protocol,ARP)是在僅知道主機的IP地址時確定其物理地址的一種協(xié)議。因IPv4和以太網(wǎng)的廣泛應用,其主要用作將IP地址翻譯為以太網(wǎng)的MAC地址,但其也能在ATM和FDDIIP網(wǎng)絡(luò)中使用。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網(wǎng)絡(luò)層(IP層,也就是相當于OSI的第三層)地址解析為
3、數(shù)據(jù)連接層(MAC層,也就是相當于OSI的第二層)的MAC地址。在以太網(wǎng)協(xié)議中規(guī)定,同一局域網(wǎng)中的一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協(xié)議棧中,網(wǎng)絡(luò)層和傳輸層只關(guān)心目標主機的IP地址。這就導致在以太網(wǎng)中使用IP協(xié)議時,數(shù)據(jù)鏈路層的以太網(wǎng)協(xié)議接到上層IP協(xié)議提供的數(shù)據(jù)中,只包含目的主機的IP地址。于是需要一種方法,根據(jù)目的主機的IP地址,獲得其MAC地址。這就是ARP協(xié)議要做的事情。所謂地址解析(address resolution)就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。 另外,當發(fā)送主機和目的主機不在同一個局域網(wǎng)中時,即便知
4、道目的主機的MAC地址,兩者也不能直接通信,必須經(jīng)過路由轉(zhuǎn)發(fā)才可以。所以此時,發(fā)送主機通過ARP協(xié)議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網(wǎng)外的路由器的某個端口的MAC地址。于是此后發(fā)送主機發(fā)往目的主機的所有幀,都將發(fā)往該路由器,通過它向外發(fā)送。這種情況稱為ARP代理(ARP Proxy)。1.1.2ARP工作原理在每臺安裝有TCP/IP協(xié)議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的。 以主機A(209.0.0.5)向主機B(209.0.0.6)發(fā)送數(shù)據(jù)為例。當發(fā)送數(shù)據(jù)時,主機A會在自己的ARP緩存表中尋找是否有目標IP地址。如果找到了,也就知道了
5、目標MAC地址,直接把目標MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到目標IP地址,主機A就會在網(wǎng)絡(luò)上發(fā)送一個廣播,A主機MAC地址是“主機A的MAC地址”,這表示向同一網(wǎng)段內(nèi)的所有主機發(fā)出這樣的詢問:“我是209.0.0.5,我的硬件地址是00-00-C0-15-AD-18"主機A的MAC地址".請問IP地址為209.0.0.6的MAC地址是什么?”網(wǎng)絡(luò)上其他主機并不響應ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應:“209.0.0.6的MAC地址是08-00-2B-00-EE-0A”。這樣,主機A就知道了主機B的MAC地址,它就可以向
6、主機B發(fā)送信息了。同時A和B還同時都更新了自己的ARP緩存表(因為A在詢問的時候把自己的IP和MAC地址一起告訴了B),下次A再向主機B或者B向A發(fā)送信息時,直接從各自的ARP緩存表里查找就可以了。ARP緩存表采用了老化機制(即設(shè)置了生存時間TTL),在一段時間內(nèi)(一般15到20分鐘)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。(如圖1所示)ARP攻擊就是通過偽造IP地址和MAC地址實現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞,攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網(wǎng)絡(luò)中斷或中間
7、人攻擊。 ARP攻擊主要是存在于局域網(wǎng)網(wǎng)絡(luò)中,局域網(wǎng)中若有一個人感染ARP木馬,則感染該ARP木馬的系統(tǒng)將會試圖通過“ARP欺騙”手段截獲所在網(wǎng)絡(luò)內(nèi)其它計算機的通信信息,并因此造成網(wǎng)內(nèi)其它計算機的通信故障圖1 ARP工作原理 1.1.3ARP攻擊ARP攻擊就是通過偽造IP地址和MAC地址實現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞,攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網(wǎng)絡(luò)中斷或中間人攻擊。ARP攻擊主要是存在于局域網(wǎng)網(wǎng)絡(luò)中,局域網(wǎng)中若有一臺計算機感染ARP木馬,則感染該ARP木馬的系統(tǒng)將會試圖通過“ARP欺騙”手段截獲所
8、在網(wǎng)絡(luò)內(nèi)其它計算機的通信信息,并因此造成網(wǎng)內(nèi)其它計算機的通信故障。初期:這種有目的的發(fā)布錯誤ARP廣播包的行為,被稱為ARP欺騙。ARP欺騙,最初為黑客所用,成為黑客竊取網(wǎng)絡(luò)數(shù)據(jù)的主要手段。黑客通過發(fā)布錯誤的ARP廣播包,阻斷正常通信,并將自己所用的電腦偽裝成別人的電腦,這樣原本發(fā)往其他電腦的數(shù)據(jù),就發(fā)到了黑客的電腦上,達到竊取數(shù)據(jù)的目的。 中期:ARP惡意攻擊。后來,有人利用這一原理,制作了一些所謂的“管理軟件”,例如網(wǎng)絡(luò)剪刀手、執(zhí)法官、終結(jié)者等,這樣就導致了ARP惡意攻擊的泛濫。往往使用這種軟件的人,以惡意破壞為目的,多是為了讓別人斷線,逞一時之快。特別是在網(wǎng)吧中,或者因為商業(yè)競爭的目的、
9、或者因為個人無聊泄憤,造成惡意ARP攻擊泛濫。隨著網(wǎng)吧經(jīng)營者摸索出禁用這些特定軟件的方法,這股風潮也就漸漸平息下去了。 現(xiàn)在:綜合的ARP攻擊。最近這一波ARP攻擊潮,其目的、方式多樣化,沖擊力度、影響力也比前兩個階段大很多。首先是病毒加入了ARP攻擊的行列。以前的病毒攻擊網(wǎng)絡(luò)以廣域網(wǎng)為主,最有效的攻擊方式是DDOS攻擊。但是隨著防范能力的提高,病毒制造者將目光投向局域網(wǎng),開始嘗試ARP攻擊,例如最近流行的威金病毒,ARP攻擊是其使用的攻擊手段之一。 相對病毒而言,盜號程序?qū)W(wǎng)吧運營的困惑更大。盜號程序是為了竊取用戶帳號密碼數(shù)據(jù)而進行ARP欺騙,同時又會影響的其他電腦上網(wǎng)。1.1.4 ARP包
10、的格式ARP(同RARP)使用相同的報頭結(jié)構(gòu),如圖2所示。圖2 ARP(RARP)包頭結(jié)構(gòu)硬件類型字段:指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1;協(xié)議類型字段:指明了發(fā)送方提供的高層協(xié)議類型,IP為0800(16進制);硬件地址長度和協(xié)議長度:指明了硬件地址和高層協(xié)議地址的長度,這樣ARP報文就可以在任意硬件和任意協(xié)議的網(wǎng)絡(luò)中使用;操作字段:用來表示這個報文的類型,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;發(fā)送方的硬件地址(0-3字節(jié)):源主機硬件地址的前3個字節(jié);發(fā)送方的硬件地址(4-5字節(jié)):源主機硬件地址的后3個字節(jié);發(fā)送方IP(0-1字節(jié)):源主機硬件
11、地址的前2個字節(jié);發(fā)送方IP(2-3字節(jié)):源主機硬件地址的后2個字節(jié);目的硬件地址(0-1字節(jié)):目的主機硬件地址的前2個字節(jié);目的硬件地址(2-5字節(jié)):目的主機硬件地址的后4個字節(jié);目的IP(0-3字節(jié)):目的主機的IP地址。1.1.5 ARP協(xié)議工作流程1. 首先,每臺主機都會在自己的ARP緩沖區(qū) ( ARP Cache )中建立一個 ARP列表,以表示IP地址和MAC地址的對應關(guān)系。2. 當源主機需要將一個數(shù)據(jù)包要發(fā)送到目的主機時,會首先檢查自己 ARP列表中是否存在該 IP地址對應的MAC地址,如果有就直接將數(shù)據(jù)包發(fā)送到這個MAC地址;如果沒有,就向本地網(wǎng)段發(fā)起一個ARP請求的廣播
12、包,查詢此目的主機對應的MAC地址。此ARP請求數(shù)據(jù)包里包括源主機的IP地址、硬件地址、以及目的主機的IP地址。3. 網(wǎng)絡(luò)中所有的主機收到這個ARP請求后,會檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機發(fā)送一個 ARP響應數(shù)據(jù)包,告訴對方自己是它需要查找的MAC地址;4. 源主機收到這個ARP響應數(shù)據(jù)包后,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數(shù)據(jù)的傳輸。如果源主機一直沒有收到ARP響應數(shù)
13、據(jù)包,表示ARP查詢失敗。1.2意義與目的這次課程設(shè)計的意義與目的主要有以下兩點:1、 我們已經(jīng)學習了一個學期的計算機網(wǎng)絡(luò)課程,在網(wǎng)絡(luò)協(xié)議體系結(jié)構(gòu)中,不管采用哪一種劃分形式,網(wǎng)絡(luò)層都是作為獨立的一層,可見其在網(wǎng)絡(luò)通信中的重要性。在網(wǎng)絡(luò)層中有對重要協(xié)議:ARP/RARP,用于網(wǎng)卡物理地址(MAC地址)與網(wǎng)絡(luò)協(xié)議地址(IP地址)之間的轉(zhuǎn)換。通過這個課程設(shè)計,加深對課本知識的理解與掌握,同時自己親自動手實現(xiàn),對知識的領(lǐng)悟能夠起到事半功倍的效果。2、 認識ARP地址解析協(xié)議的工作原理,了解ARP攻擊(ARP欺騙)的實現(xiàn)原理,找到解決ARP攻擊的有效解決方案,為局域網(wǎng)計算機提供一個安全的運行環(huán)境,以及在
14、不小心被攻擊時知道如何處理。2 總體設(shè)計 2.1 系統(tǒng)或算法框架設(shè)計1. 得到網(wǎng)絡(luò)驅(qū)動.利用PCAP提供的PCAP_findalldevs( )函數(shù)實現(xiàn)此功能.2. 選擇一塊網(wǎng)卡,并判斷其是否可用.3. 編輯設(shè)置過濾器,使其只捕獲ARP包.過濾函數(shù)PCAP_complie和PCAP_setfilter.設(shè)置函數(shù)為PCAP_setfilter( ).4. 開始捕獲數(shù)據(jù)包并進行處理.使用PCAP_next_ex( )函數(shù)實現(xiàn)此功能.2.2功能設(shè)計通過編制程序,獲取網(wǎng)絡(luò)中的ARP數(shù)據(jù)包,解析數(shù)據(jù)包的內(nèi)容,將結(jié)果顯示在標準輸出上,并同時寫入日志文件。程序的具體要求如下所示:1)以命令行的形式運行,如下
15、所示:arp1.exelog.txt其中,arp1.exe為程序名;log.txt為日志文件名。2)程序輸出內(nèi)容如下所示:源IP地址源MAC地址目的IP地址目的MAC地址操作時間各部分的說明如下所示:1、源IP地址:輸出ARP消息格式中的源IP地址字段。2、源MAC地址:輸出ARP消息格式中的源物理地址字段3、目的IP地址:輸出ARP消息格式中的目的IP地址字段。4、目的MAC地址:輸出ARP消息格式中的目的物理地址字段。5、操作:輸出ARP消息格式中的操作字段,若為ARP請求,則為1,若為ARP應答,則為2。6、時間:該ARP包產(chǎn)生的時間。3)當程序接收到鍵盤輸入Ctrl十C時退出。2.3
16、平臺設(shè)計Windows 7, Microsoft Microsoft Visual C+ 6.0 簡體中文版, WinPcap_4_1_2, WpdPack_4_1_22.4 數(shù)據(jù)結(jié)構(gòu)的設(shè)計struct ARPPACKETunsigned short hdtyp; /硬件地址unsigned short protyp; /協(xié)議類型unsigned char hdsize; /硬件地址長度unsigned char prosize; /協(xié)議地址長度unsigned short op; /操作值: ARP/RARPu_char smac6; /源MAC地址u_char sip4; /源IP地址u_
17、char dmac6; /目的MAC地址u_char dip4; /目的IP地址;3 詳細設(shè)計3.1 泵程序代碼所使用的頭文件以及鏈接庫,其中頭文件pcap.h 和鏈接庫Ws2_32.lib、wpcap.lib都不是Microsoft Microsoft Visual C+ 6.0 中提供的。#include < Winsock2.h > #pragma comment( lib , "Ws2_32.lib" ) /使用ntohs( )函數(shù) , 轉(zhuǎn)換2B/4B的數(shù)據(jù)#pragma comment( lib , "wpcap.lib" )#in
18、clude "pcap.h" /需要另外導入,具體步驟見Winpcap使用說明#include < fstream.h > #include < iomanip.h > /格式化輸出#include < conio.h > /使用_getch( )3.2 ARP包頭結(jié)構(gòu)體struct ARPPACKETunsigned short hdtyp; /硬件地址unsigned short protyp; /協(xié)議類型unsigned char hdsize; /硬件地址長度unsigned char prosize; /協(xié)議地址長度unsign
19、ed short op; /操作值: ARP / RARPu_char smac6; /源MAC地址u_char sip4; /源IP地址u_char dmac6; /目的MAC地址u_char dip4; /目的IP地址;3.3自定義處理包函數(shù),在使用前必須申明/pcap_pkthdr是winpcap加入的/pkt_data表示MAC幀的起始位置/out是輸出流void packet_handler( const pcap_pkthdr *header, const u_char *pkt_data , ostream& out );3.4主函數(shù)。本程序只能在命令行下運行,并且還帶兩
20、個參數(shù),第一個參數(shù)即是本程序可執(zhí)行文件名,第二個參數(shù)便是文件名,用來記錄程序執(zhí)行時產(chǎn)生的結(jié)果。程序首先判斷程序啟動時是否有兩個參數(shù),若不是兩個,則輸出提示信息后退出。然后獲取網(wǎng)絡(luò)設(shè)備列表,選擇一個網(wǎng)卡后,以混雜模式打開網(wǎng)卡,接受所有的幀,接著獲取子網(wǎng)掩碼和設(shè)置過濾器,以確保只接收ARP數(shù)據(jù)包。最后一直循環(huán)等到獲取ARP數(shù)據(jù)包,報獲取到的數(shù)據(jù)包分解后按照一定的格式同時輸出到命令行窗口和指定文件。(具體請見源代碼)3.4 自定義處理包函數(shù),這個函數(shù)主要是用來截獲ARP數(shù)據(jù)包(具體請見源代碼)4 總結(jié)4.1 工作小結(jié)這是我上完計算機網(wǎng)絡(luò)課程以來的第一次課程設(shè)計,通過這次試驗,我了解到:在網(wǎng)絡(luò)協(xié)議體系
21、結(jié)構(gòu)中,不管采用哪一種劃分形式,網(wǎng)絡(luò)層都是作為獨立的一層,可見其在網(wǎng)絡(luò)通信中的重要性。在網(wǎng)絡(luò)層中有對重要協(xié)議:ARP/RARP,用于網(wǎng)卡物理地址(MAC地址)與網(wǎng)絡(luò)協(xié)議地址(IP地址)之間的轉(zhuǎn)換。通過這個課程設(shè)計,我加深了對課本知識的理解與掌握,同時自己親自動手實現(xiàn),對課本知識有了更加深刻的領(lǐng)悟。另外,我還認了識ARP地址解析協(xié)議的工作原理,了解ARP攻擊(ARP欺騙)的實現(xiàn)原理,找到了解決ARP攻擊的有效解決方案。最重要的一點是,這次試驗暴露出我對這門課程的學習的許多問題,很多重要知識都已經(jīng)忘得差不多了,以后要注意學習。4.2 存在的問題1、本程序是在命令行模式下運行,界面不美觀,并且只有在輸入正確參
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全自動開關(guān)機項目可行性研究報告
- 2025年毛邊玻璃項目可行性研究報告
- 2025年室內(nèi)光纜項目可行性研究報告
- 2025年鍛鑄造產(chǎn)品項目可行性研究報告
- 婦產(chǎn)科醫(yī)生個人總結(jié)范文(30篇)
- 2025年度砂石場礦山環(huán)境保護監(jiān)測服務合同4篇
- 2025年度辦公樓物業(yè)安全檢查與應急預案服務協(xié)議
- 2025年重整保護催化劑項目投資可行性研究分析報告
- 2025年度企業(yè)慶典場地租賃及活動執(zhí)行合同
- 服務結(jié)算合同范本
- 安全環(huán)保法律法規(guī)
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學院高職單招職業(yè)適應性測試近5年常考版參考題庫含答案解析
- 建設(shè)工程質(zhì)量安全監(jiān)督人員考試題庫含答案
- 電氣控制技術(shù)項目化教程 第2版 課件 項目1、2 低壓電器的選用與維修、電動機直接控制電路
- 2025年上半年山東人才發(fā)展集團限公司社會招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)入駐及合作協(xié)議3篇
- 【MOOC期末】《大學體育射箭》(東南大學)中國大學慕課答案
- 2024年山東理工職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 三叉神經(jīng)痛的護理問題
- 2025北京平谷初三(上)期末數(shù)學真題試卷(含答案解析)
- VQ-100無人機手冊(一)
評論
0/150
提交評論