版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實現(xiàn)
隨著計算機網(wǎng)絡(luò)技術(shù)的高速發(fā)展,網(wǎng)絡(luò)正日益成為政治、經(jīng)濟、文化、生活中不可缺少的一部分.在它給人們的生活、學習、工作帶來前所未有的方便和機遇的同時,由于網(wǎng)絡(luò)自身固有的不安全性,網(wǎng)絡(luò)安全問題也越來越引起人們的關(guān)注.所謂網(wǎng)絡(luò)監(jiān)聽,即將網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)捕獲并進行分析的行為.網(wǎng)絡(luò)監(jiān)聽在協(xié)助網(wǎng)絡(luò)管理員監(jiān)測網(wǎng)絡(luò)傳輸數(shù)據(jù),排除網(wǎng)絡(luò)故障等方面具有十分重要的作用.然而,網(wǎng)絡(luò)監(jiān)聽也給網(wǎng)絡(luò)的安全帶來了極大的隱患,許多的網(wǎng)絡(luò)入侵往往都伴隨著以太網(wǎng)內(nèi)網(wǎng)絡(luò)監(jiān)聽行為,從而造成口令失竊,敏感數(shù)據(jù)被截獲等連鎖性安全代寫論文2網(wǎng)絡(luò)監(jiān)聽的原理運行網(wǎng)絡(luò)監(jiān)聽程序的主機要實現(xiàn)網(wǎng)絡(luò)監(jiān)聽必須滿足兩個條件:其一,是該主機的網(wǎng)卡必須工作在混雜模式下;其二,是傳輸?shù)臄?shù)據(jù)包能夠到達該主機.根據(jù)連接的網(wǎng)絡(luò)設(shè)備不同,以太網(wǎng)分為共享式以太網(wǎng)和交換式以太網(wǎng).2.1共享式以太網(wǎng)在共享式以太網(wǎng)中,由于是基于廣播的方式來發(fā)送數(shù)據(jù)的,所以數(shù)包會被發(fā)送到連在一起的所有的主機(圖1所示).因此,只要運行了網(wǎng)絡(luò)監(jiān)聽程序的主機的網(wǎng)卡處在混雜模式下就可以實施網(wǎng)絡(luò)監(jiān)聽了.所以,在共享式以太網(wǎng)中實施網(wǎng)絡(luò)監(jiān)聽還是很容易的.2.2交換式以太網(wǎng)在交換式以太網(wǎng)中使用交換機,交換機工作在數(shù)據(jù)鏈路層,工作時維護著一張MAC地址與交換機端口的映射表.當有數(shù)據(jù)報發(fā)送到交換機上時,交換機會將數(shù)據(jù)報的目的MAC地址與自己維護的表內(nèi)的端口對照,然后將數(shù)據(jù)報發(fā)送到相應(yīng)端口上.所以,即使監(jiān)聽主機的網(wǎng)卡設(shè)置成混雜模式,也不能接收到傳給其他主機的數(shù)據(jù)幀.因此,在交換式網(wǎng)絡(luò)中實施網(wǎng)絡(luò)監(jiān)聽的關(guān)鍵,就是要使發(fā)送給其他主機的數(shù)據(jù)幀能夠到達運行了網(wǎng)絡(luò)監(jiān)聽程序的主機.在交換式以太網(wǎng)中最常見的方式是利用ARP欺騙的中間人攻擊的方式實施網(wǎng)絡(luò)監(jiān)聽.2.2.1ARP欺騙原理局域網(wǎng)內(nèi)部的主機根據(jù)MAC地址進行通訊.ARP(地址解析)協(xié)議是將32位IP到以太網(wǎng)的48位物理地址(MAC地址),以便將報文封裝成幀發(fā)送.如果源主機的ARP表沒有目的IP和目的MAC的映射,則通過廣播的方式發(fā)送ARP請求.只有具有此目的IP的主機才會對這個廣ARP請求作出反應(yīng),向源主機發(fā)送一個包含其MAC地址的ARP應(yīng)答報文.ARP協(xié)議是一個無狀態(tài)的協(xié)議.一旦收到ARP應(yīng)答就會對其高速緩存中存放的IP地址到物理地址映射記錄進行更新,而不會關(guān)心之前是否發(fā)出過ARP請求.ARP欺騙的核心就是向目標主機發(fā)送一個含偽造的IP-MAC映射信息的ARP應(yīng)答報文.當目的主機收到此應(yīng)答報文后就會更新其ARP高速緩存,從而使目標主機將報文發(fā)送給錯誤的對象.2.2.2利用中間人攻擊進行監(jiān)聽的原理利用ARP欺騙進行監(jiān)聽其實就是要實現(xiàn)中間人攻擊,它是利用ARP欺騙進行攻擊的主要方式之一.其原理是使進行監(jiān)聽的主機插入到被監(jiān)聽主機與其它網(wǎng)絡(luò)主機之間,使進行監(jiān)聽的主機成為被監(jiān)聽主機與其它網(wǎng)絡(luò)主機通信的中繼.在這種情況下,其他網(wǎng)絡(luò)主機發(fā)往被監(jiān)聽主機的信息和被監(jiān)聽主機發(fā)往其他網(wǎng)絡(luò)主機的信息都必須經(jīng)過進行網(wǎng)絡(luò)監(jiān)聽的主機.這樣,進行網(wǎng)絡(luò)監(jiān)聽的主機就很容易對被監(jiān)聽主機進行網(wǎng)絡(luò)監(jiān)聽了.如圖2所示,C為進行網(wǎng)絡(luò)監(jiān)聽的主機,A為被監(jiān)聽主機,B為網(wǎng)絡(luò)中的任一其他(1)C向A發(fā)送ARP應(yīng)答報文,A修改ARP高速緩沖,使B的IP地址與C的MAC地址相對應(yīng),即形成IP~MAC03:03:03:03的映射;2)同理,C向B發(fā)送ARP應(yīng)答報文,使A的IP地址與C的MAC地址相對應(yīng),即IP~MAC03:03:03:03;(3)這時,如果A向B發(fā)送信息,根據(jù)A高速緩沖中的IP-MAC映射,信息實際上是被發(fā)送到了C,再由C轉(zhuǎn)發(fā)到B;同理,從B發(fā)送到A的信息也將會被C轉(zhuǎn)發(fā)一次.此時,A與B之間的通信已經(jīng)被C完全監(jiān)控.如果運行了網(wǎng)絡(luò)監(jiān)聽程序的主機C的網(wǎng)卡又工作在混雜模式下,那么,主機C就滿足了前面所提到的實現(xiàn)網(wǎng)絡(luò)監(jiān)聽的兩個條件,可以對A與B間的通信進行監(jiān)聽了.3利用ARP欺騙的網(wǎng)絡(luò)監(jiān)聽實現(xiàn)的程序設(shè)計3.1程序總體設(shè)計程序的總體設(shè)計思想就是:首先要實現(xiàn)中間人攻擊,使實施監(jiān)聽主機成為被監(jiān)聽主機之間的中繼,然后分析接收到的數(shù)據(jù)包,根據(jù)自行約定的標志確定監(jiān)聽的開始,再根據(jù)用戶的需要對監(jiān)聽到的數(shù)據(jù)包作出相應(yīng)的操作.因此,該程序需要實現(xiàn)的主要功能有兩個:(1)根據(jù)中間人攻擊原理實現(xiàn)ARP欺騙;(2)處理接收到的數(shù)據(jù)包,根據(jù)用戶的輸入,完成相應(yīng)的功能.分別建立函數(shù)ArpCheatApplication和使用帶參數(shù)的main函數(shù)作為主函數(shù).主函數(shù)的功能主要是初始化網(wǎng)卡以及一些全局變量,并使用函數(shù)CreateThread來建立新線程,實現(xiàn)對ArpCheatApplication等子函數(shù)的調(diào)用,完成相應(yīng)的功能.main的算法如下:intmain(intargc,char**argv)//帶參數(shù)的main函數(shù){聲明部分,定義變量;if(argc!=3)return0;//參數(shù)輸入錯誤,返回0//取得參數(shù)ServerSideIP<--inet_addr(argv[1]);//第二個命令行參數(shù)代表Server端的IPClientSideIP<--inet_addr(argv[2]);//第三個命令行參數(shù)代表Client端的IP使用InitAdapter函數(shù)初始化網(wǎng)卡;使用自定義函數(shù)GetMACAddr函數(shù)取得Server端和Client端的MAC地址;//使用CreateThread函數(shù)生成實現(xiàn)ARP欺騙的新線程i=1;CreateThread(NULL,0,ArpCheatApplication,&i,0,0);//實現(xiàn)對Server端的ARP欺騙i=2;CreateThread(NULL,0,ArpCheatApplication,&i,0,0);//實現(xiàn)對Client端的ARP欺騙//使用CreateThread函數(shù)生成處理接收到的數(shù)據(jù)包的新線程CreateThread(0,0,AnalysePacketsApplication,NULL,0,0);//使用CreateThread函數(shù)生成處理用戶輸入的新線程CreateThread(0,0,CustomerApplication,NULL,0,0);//其他所需的操作使用PacketFreePacket和PacketCloseAdapter函數(shù)釋放資源;return0;}上面算法中使用到的GetMACAddr函數(shù)是一個自定義的用來根據(jù)目標IP獲得相應(yīng)MAC地址的函,其代碼如下:BOOLGetMACAddr(DWORDDestIP,char*pMAC){DWORDdwRet;ULONGulLen=6,pulMac[2];dwRet=SendARP(DestIP,0,pulMac,&ulLen);//調(diào)用SDK函數(shù)來獲取目標IP的MAC地址if(dwRet==NO_ERROR)//判斷是否找到了目標IP相應(yīng)的MAC{memcpy(pMAC,pulMac,6);returnTRUE;}elsereturnFALSE;//如果沒有找到目標IP相應(yīng)的MAC,則返回FALSE}.2主要函數(shù)分析3.2.1DWORDWINAPIArpCheatApplicatio(LPVOIDlpType)此函數(shù)的功能是實施ARP欺騙.由前面對圖2中間人攻擊的分析可知,函數(shù)ArpCheatApplication要實現(xiàn)的功能有兩個(如圖2,假定A為ServerSide,B為ClientSide):①C告訴ServerSide,ClientSide的MAC是ownmac;②C告訴ClientSide,ServerSide的MAC是ownmac.函數(shù)ArpCheatApplication的流程圖如圖3所示.716四川大學學報(自然科學版)
第42卷圖3ArpCheatApplication流程圖Fig.3ArpCheatApplicationflowchart3.2.2DWORDWINAPIAnalysePacketsApplication(LPVOIDlp)此函數(shù)的功能是處理收到的數(shù)據(jù)包,通過篩選只分析不屬于自己的TCP包,然后根據(jù)用戶的輸入,完成各種功能.其流程如圖4所示.圖4AnalysePacketsApplication流程圖Fig.4AnalysePacketsApplicationflowchart對圖4有:(1)對接收到的數(shù)據(jù)包需要進行以下篩選,其中continue代表跳出當前的數(shù)據(jù)包篩選,重新讀入新數(shù)據(jù)包進行篩選.//不處理監(jiān)聽主機本身發(fā)送和轉(zhuǎn)發(fā)的數(shù)據(jù)包if(memcmp(TCPPacket->ehhdr.SourceMAC,OwnMAC,6)==0)continue;//不處理目的IP為監(jiān)聽主機本身的數(shù)據(jù)包for(i=0;i<TotalIP;i++)//TotalIP為監(jiān)聽主機所擁有的所有IP數(shù)目if(TCPPacket->iphdr.destIP==OwnIP[i])break;//判斷目的IP是否為監(jiān)聽主機的某一IP717第4期向昕等:基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實現(xiàn)if(i!=TotalIP)continue;//檢查是否IP包,以太網(wǎng)首部中IP包的類型代碼為十六進制的0800if(TCPPacket->ehhdr.EthernetType!=htons(0x0800))continue;//檢查是否TCP包if(TCPPacket->to!=IPPROTO_TCP)continue;(2)設(shè)置開始劫持的標志有多種選擇,在這里假設(shè)捕獲到一個從ClientSide->ServerSide的純ack后才開始劫持,即檢查TCP首部中的6個標志位是否為010000,函數(shù)IsACKPacket就是用來判斷一個據(jù)包是不是只有ACK標志的,代碼如下:BOOLIsACKPacket(unsignedcharflag)//flag代表TCP首部的標志位{inti,j=1;for(i=0;i<4;i++){if(flag&j)returnFALSE;//判斷標志位低4位是否為1,有為1的,則返回false
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東松山職業(yè)技術(shù)學院《經(jīng)濟師資格》2023-2024學年第一學期期末試卷
- 廣東水利電力職業(yè)技術(shù)學院《服裝工藝制作二》2023-2024學年第一學期期末試卷
- 廣東石油化工學院《經(jīng)濟學世界經(jīng)濟》2023-2024學年第一學期期末試卷
- 廣東汕頭幼兒師范高等專科學?!缎畔⒎治雠c預(yù)測》2023-2024學年第一學期期末試卷
- 廣東農(nóng)工商職業(yè)技術(shù)學院《中小企業(yè)管理》2023-2024學年第一學期期末試卷
- 廣東南方職業(yè)學院《現(xiàn)代食品高新技術(shù)進展》2023-2024學年第一學期期末試卷
- 打造美麗鄉(xiāng)村-共筑人與自然和諧-鄉(xiāng)鎮(zhèn)林業(yè)站年終工作總結(jié)
- 【名師一號】2020-2021學年高中英語(北師大版)必修二-雙基限時練3
- 【9語一模】2024年合肥市瑤海區(qū)中考一模語文試題
- 【名師一號】2021年岳麓歷史必修3-雙基限時練17
- 2024年1月國家開放大學法律事務(wù)??啤睹穹▽W(1)》期末紙質(zhì)考試試題及答案
- 智研咨詢發(fā)布:中國種豬行業(yè)市場現(xiàn)狀、發(fā)展概況、未來前景分析報告
- 六年級上冊分數(shù)四則混合運算100題及答案
- 2025版國家開放大學法律事務(wù)??啤斗勺稍兣c調(diào)解》期末紙質(zhì)考試案例分析題題庫
- 安防監(jiān)控智能化售后服務(wù)方案
- 河南省洛陽市2023-2024學年高一上學期期末考試化學試題(含答案)
- 手術(shù)室年終述職
- 光儲充一體化充電站投資回報方案
- GB/T 30661.10-2024輪椅車座椅第10部分:體位支撐裝置的阻燃性要求和試驗方法
- 《病原與感染性疾病》課程教學大綱
- GB/T 44860-2024面向工業(yè)應(yīng)用的邊緣計算應(yīng)用指南
評論
0/150
提交評論