基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)_第1頁
基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)_第2頁
基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)_第3頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)

隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,網(wǎng)絡(luò)正日益成為政治、經(jīng)濟(jì)、文化、生活中不可缺少的一部分.在它給人們的生活、學(xué)習(xí)、工作帶來前所未有的方便和機(jī)遇的同時(shí),由于網(wǎng)絡(luò)自身固有的不安全性,網(wǎng)絡(luò)安全問題也越來越引起人們的關(guān)注.所謂網(wǎng)絡(luò)監(jiān)聽,即將網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)捕獲并進(jìn)行分析的行為.網(wǎng)絡(luò)監(jiān)聽在協(xié)助網(wǎng)絡(luò)管理員監(jiān)測(cè)網(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)聽的原理運(yùn)行網(wǎng)絡(luò)監(jiān)聽程序的主機(jī)要實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽必須滿足兩個(gè)條件:其一,是該主機(jī)的網(wǎng)卡必須工作在混雜模式下;其二,是傳輸?shù)臄?shù)據(jù)包能夠到達(dá)該主機(jī).根據(jù)連接的網(wǎng)絡(luò)設(shè)備不同,以太網(wǎng)分為共享式以太網(wǎng)和交換式以太網(wǎng).2.1共享式以太網(wǎng)在共享式以太網(wǎng)中,由于是基于廣播的方式來發(fā)送數(shù)據(jù)的,所以數(shù)包會(huì)被發(fā)送到連在一起的所有的主機(jī)(圖1所示).因此,只要運(yùn)行了網(wǎng)絡(luò)監(jiān)聽程序的主機(jī)的網(wǎng)卡處在混雜模式下就可以實(shí)施網(wǎng)絡(luò)監(jiān)聽了.所以,在共享式以太網(wǎng)中實(shí)施網(wǎng)絡(luò)監(jiān)聽還是很容易的.2.2交換式以太網(wǎng)在交換式以太網(wǎng)中使用交換機(jī),交換機(jī)工作在數(shù)據(jù)鏈路層,工作時(shí)維護(hù)著一張MAC地址與交換機(jī)端口的映射表.當(dāng)有數(shù)據(jù)報(bào)發(fā)送到交換機(jī)上時(shí),交換機(jī)會(huì)將數(shù)據(jù)報(bào)的目的MAC地址與自己維護(hù)的表內(nèi)的端口對(duì)照,然后將數(shù)據(jù)報(bào)發(fā)送到相應(yīng)端口上.所以,即使監(jiān)聽主機(jī)的網(wǎng)卡設(shè)置成混雜模式,也不能接收到傳給其他主機(jī)的數(shù)據(jù)幀.因此,在交換式網(wǎng)絡(luò)中實(shí)施網(wǎng)絡(luò)監(jiān)聽的關(guān)鍵,就是要使發(fā)送給其他主機(jī)的數(shù)據(jù)幀能夠到達(dá)運(yùn)行了網(wǎng)絡(luò)監(jiān)聽程序的主機(jī).在交換式以太網(wǎng)中最常見的方式是利用ARP欺騙的中間人攻擊的方式實(shí)施網(wǎng)絡(luò)監(jiān)聽.2.2.1ARP欺騙原理局域網(wǎng)內(nèi)部的主機(jī)根據(jù)MAC地址進(jìn)行通訊.ARP(地址解析)協(xié)議是將32位IP到以太網(wǎng)的48位物理地址(MAC地址),以便將報(bào)文封裝成幀發(fā)送.如果源主機(jī)的ARP表沒有目的IP和目的MAC的映射,則通過廣播的方式發(fā)送ARP請(qǐng)求.只有具有此目的IP的主機(jī)才會(huì)對(duì)這個(gè)廣ARP請(qǐng)求作出反應(yīng),向源主機(jī)發(fā)送一個(gè)包含其MAC地址的ARP應(yīng)答報(bào)文.ARP協(xié)議是一個(gè)無狀態(tài)的協(xié)議.一旦收到ARP應(yīng)答就會(huì)對(duì)其高速緩存中存放的IP地址到物理地址映射記錄進(jìn)行更新,而不會(huì)關(guān)心之前是否發(fā)出過ARP請(qǐng)求.ARP欺騙的核心就是向目標(biāo)主機(jī)發(fā)送一個(gè)含偽造的IP-MAC映射信息的ARP應(yīng)答報(bào)文.當(dāng)目的主機(jī)收到此應(yīng)答報(bào)文后就會(huì)更新其ARP高速緩存,從而使目標(biāo)主機(jī)將報(bào)文發(fā)送給錯(cuò)誤的對(duì)象.2.2.2利用中間人攻擊進(jìn)行監(jiān)聽的原理利用ARP欺騙進(jìn)行監(jiān)聽其實(shí)就是要實(shí)現(xiàn)中間人攻擊,它是利用ARP欺騙進(jìn)行攻擊的主要方式之一.其原理是使進(jìn)行監(jiān)聽的主機(jī)插入到被監(jiān)聽主機(jī)與其它網(wǎng)絡(luò)主機(jī)之間,使進(jìn)行監(jiān)聽的主機(jī)成為被監(jiān)聽主機(jī)與其它網(wǎng)絡(luò)主機(jī)通信的中繼.在這種情況下,其他網(wǎng)絡(luò)主機(jī)發(fā)往被監(jiān)聽主機(jī)的信息和被監(jiān)聽主機(jī)發(fā)往其他網(wǎng)絡(luò)主機(jī)的信息都必須經(jīng)過進(jìn)行網(wǎng)絡(luò)監(jiān)聽的主機(jī).這樣,進(jìn)行網(wǎng)絡(luò)監(jiān)聽的主機(jī)就很容易對(duì)被監(jiān)聽主機(jī)進(jìn)行網(wǎng)絡(luò)監(jiān)聽了.如圖2所示,C為進(jìn)行網(wǎng)絡(luò)監(jiān)聽的主機(jī),A為被監(jiān)聽主機(jī),B為網(wǎng)絡(luò)中的任一其他(1)C向A發(fā)送ARP應(yīng)答報(bào)文,A修改ARP高速緩沖,使B的IP地址與C的MAC地址相對(duì)應(yīng),即形成IP~MAC03:03:03:03的映射;2)同理,C向B發(fā)送ARP應(yīng)答報(bào)文,使A的IP地址與C的MAC地址相對(duì)應(yīng),即IP~MAC03:03:03:03;(3)這時(shí),如果A向B發(fā)送信息,根據(jù)A高速緩沖中的IP-MAC映射,信息實(shí)際上是被發(fā)送到了C,再由C轉(zhuǎn)發(fā)到B;同理,從B發(fā)送到A的信息也將會(huì)被C轉(zhuǎn)發(fā)一次.此時(shí),A與B之間的通信已經(jīng)被C完全監(jiān)控.如果運(yùn)行了網(wǎng)絡(luò)監(jiān)聽程序的主機(jī)C的網(wǎng)卡又工作在混雜模式下,那么,主機(jī)C就滿足了前面所提到的實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽的兩個(gè)條件,可以對(duì)A與B間的通信進(jìn)行監(jiān)聽了.3利用ARP欺騙的網(wǎng)絡(luò)監(jiān)聽實(shí)現(xiàn)的程序設(shè)計(jì)3.1程序總體設(shè)計(jì)程序的總體設(shè)計(jì)思想就是:首先要實(shí)現(xiàn)中間人攻擊,使實(shí)施監(jiān)聽主機(jī)成為被監(jiān)聽主機(jī)之間的中繼,然后分析接收到的數(shù)據(jù)包,根據(jù)自行約定的標(biāo)志確定監(jiān)聽的開始,再根據(jù)用戶的需要對(duì)監(jiān)聽到的數(shù)據(jù)包作出相應(yīng)的操作.因此,該程序需要實(shí)現(xiàn)的主要功能有兩個(gè):(1)根據(jù)中間人攻擊原理實(shí)現(xiàn)ARP欺騙;(2)處理接收到的數(shù)據(jù)包,根據(jù)用戶的輸入,完成相應(yīng)的功能.分別建立函數(shù)ArpCheatApplication和使用帶參數(shù)的main函數(shù)作為主函數(shù).主函數(shù)的功能主要是初始化網(wǎng)卡以及一些全局變量,并使用函數(shù)CreateThread來建立新線程,實(shí)現(xiàn)對(duì)ArpCheatApplication等子函數(shù)的調(diào)用,完成相應(yīng)的功能.main的算法如下:intmain(intargc,char**argv)//帶參數(shù)的main函數(shù){聲明部分,定義變量;if(argc!=3)return0;//參數(shù)輸入錯(cuò)誤,返回0//取得參數(shù)ServerSideIP<--inet_addr(argv[1]);//第二個(gè)命令行參數(shù)代表Server端的IPClientSideIP<--inet_addr(argv[2]);//第三個(gè)命令行參數(shù)代表Client端的IP使用InitAdapter函數(shù)初始化網(wǎng)卡;使用自定義函數(shù)GetMACAddr函數(shù)取得Server端和Client端的MAC地址;//使用CreateThread函數(shù)生成實(shí)現(xiàn)ARP欺騙的新線程i=1;CreateThread(NULL,0,ArpCheatApplication,&i,0,0);//實(shí)現(xiàn)對(duì)Server端的ARP欺騙i=2;CreateThread(NULL,0,ArpCheatApplication,&i,0,0);//實(shí)現(xiàn)對(duì)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ù)是一個(gè)自定義的用來根據(jù)目標(biāo)IP獲得相應(yīng)MAC地址的函,其代碼如下:BOOLGetMACAddr(DWORDDestIP,char*pMAC){DWORDdwRet;ULONGulLen=6,pulMac[2];dwRet=SendARP(DestIP,0,pulMac,&ulLen);//調(diào)用SDK函數(shù)來獲取目標(biāo)IP的MAC地址if(dwRet==NO_ERROR)//判斷是否找到了目標(biāo)IP相應(yīng)的MAC{memcpy(pMAC,pulMac,6);returnTRUE;}elsereturnFALSE;//如果沒有找到目標(biāo)IP相應(yīng)的MAC,則返回FALSE}.2主要函數(shù)分析3.2.1DWORDWINAPIArpCheatApplicatio(LPVOIDlpType)此函數(shù)的功能是實(shí)施ARP欺騙.由前面對(duì)圖2中間人攻擊的分析可知,函數(shù)ArpCheatApplication要實(shí)現(xiàn)的功能有兩個(gè)(如圖2,假定A為ServerSide,B為ClientSide):①C告訴ServerSide,ClientSide的MAC是ownmac;②C告訴ClientSide,ServerSide的MAC是ownmac.函數(shù)ArpCheatApplication的流程圖如圖3所示.716四川大學(xué)學(xué)報(bào)(自然科學(xué)版)

第42卷圖3ArpCheatApplication流程圖Fig.3ArpCheatApplicationflowchart3.2.2DWORDWINAPIAnalysePacketsApplication(LPVOIDlp)此函數(shù)的功能是處理收到的數(shù)據(jù)包,通過篩選只分析不屬于自己的TCP包,然后根據(jù)用戶的輸入,完成各種功能.其流程如圖4所示.圖4AnalysePacketsApplication流程圖Fig.4AnalysePacketsApplicationflowchart對(duì)圖4有:(1)對(duì)接收到的數(shù)據(jù)包需要進(jìn)行以下篩選,其中continue代表跳出當(dāng)前的數(shù)據(jù)包篩選,重新讀入新數(shù)據(jù)包進(jìn)行篩選.//不處理監(jiān)聽主機(jī)本身發(fā)送和轉(zhuǎn)發(fā)的數(shù)據(jù)包if(memcmp(TCPPacket->ehhdr.SourceMAC,OwnMAC,6)==0)continue;//不處理目的IP為監(jiān)聽主機(jī)本身的數(shù)據(jù)包for(i=0;i<TotalIP;i++)//TotalIP為監(jiān)聽主機(jī)所擁有的所有IP數(shù)目if(TCPPacket->iphdr.destIP==OwnIP[i])break;//判斷目的IP是否為監(jiān)聽主機(jī)的某一IP717第4期向昕等:基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)if(i!=TotalIP)continue;//檢查是否IP包,以太網(wǎng)首部中IP包的類型代碼為十六進(jìn)制的0800if(TCPPacket->ehhdr.EthernetType!=htons(0x0800))continue;//檢查是否TCP包if(TCPPacket->to!=IPPROTO_TCP)continue;(2)設(shè)置開始劫持的標(biāo)志有多種選擇,在這里假設(shè)捕獲到一個(gè)從ClientSide->ServerSide的純ack后才開始劫持,即檢查TCP首部中的6個(gè)標(biāo)志位是否為010000,函數(shù)IsACKPacket就是用來判斷一個(gè)據(jù)包是不是只有ACK標(biāo)志的,代碼如下:BOOLIsACKPacket(unsignedcharflag)//flag代表TCP首部的標(biāo)志位{inti,j=1;for(i=0;i<4;i++){if(flag&j)returnFALSE;//判斷標(biāo)志位低4位是否為1,有為1的,則返回false

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論