A是主機,B是網(wǎng)關(guān)坠狡,C是攻擊者继找。
正常情況下,A,B通信流程是:
A要與B通信逃沿,A在加上數(shù)據(jù)鏈路層包頭之前婴渡,先得知了B的IP地址,但是凯亮,作為數(shù)據(jù)鏈路層的A是如何得知上一層傳下來的B的IP地址的細節(jié)边臼,我不清楚,但是假消,A就是知道了B的IP地址柠并。
(以后搞清楚OSI七層模型中,網(wǎng)絡層是如何讓數(shù)據(jù)鏈路層知道目標的IP地址的)
可是,數(shù)據(jù)鏈路層通信是基于MAC地址的臼予,A只是知道了B的IP地址鸣戴,還沒辦法在數(shù)據(jù)鏈路層通信。
于是粘拾,在通信之前窄锅,A把B的IP地址與自己的子網(wǎng)掩碼進行與運算,看是否與自己在同一個網(wǎng)段缰雇,若B的IP地址與自己不在同一個網(wǎng)段酬滤,那么,向網(wǎng)關(guān)求助寓涨,下面就聽從網(wǎng)關(guān)的安排即可盯串。
若B的網(wǎng)段與自己在同一網(wǎng)段,那么A就查看自己的ARP緩存表戒良,看B的IP地址對應的MAC地址是多少体捏。若ARP緩存表中有B的MAC地址,那么就建立通信糯崎。
若A的ARP緩存表中沒有B的MAC地址几缭,A就會向自己連接的交換機端口發(fā)送ARP廣播,尋求B的地址沃呢,交換機從連接A的端口中接收到ARP廣播年栓,然后向其他所有端口進行轉(zhuǎn)發(fā),這個時候薄霜,實際上所有的主機都能收到某抓,若將網(wǎng)卡開啟監(jiān)聽模式,還可以抓到相應的ARP廣播包惰瓜。
但是否副,只有B會回復A,B從相應的端口單播崎坊,只告訴A自己的MAC地址是多少备禀。
這樣,A就知道了B的MAC地址奈揍,那么A就可以向B發(fā)送數(shù)據(jù)包了(準確的說曲尸,在數(shù)據(jù)鏈路層應該叫數(shù)據(jù)幀),既然A能向B發(fā)送數(shù)據(jù)包,那么同理男翰,A就有辦法讓B知道自己的MAC地址了另患,既然雙方都知道了各自的MAC地址,那么就可以互相通信了奏篙。
ARP斷網(wǎng)攻擊柴淘、欺騙原理:
這個時候迫淹,作為攻擊者的C就來了。
假設A的ip地址為192.168.1.2,網(wǎng)關(guān)B的ip地址為192.168.1.1,攻擊者C的IP地址為192.168.1.3.
補充:局域網(wǎng)中枉阵,若一個主機收到的ARP應答報文薪贫,即使不是這個主機本身發(fā)送的ARP廣播所返回的ARP應答報文,這個主機也還是會更新自己的ARP緩存表。將這個ARP應答報文中的IP地址和MAC地址對應關(guān)系加入ARP緩存表。
ARP斷網(wǎng)攻擊就是利用了這個原理,C不斷的像A發(fā)送ARP應答包诲锹,告訴A,IP為192.168.1.1的網(wǎng)關(guān)的地址就是指向我的涉馅!于是A每次前往192.168.1.1這個地址的時候归园,都去了C那里。就這樣稚矿,C就可以控制A能否上網(wǎng)庸诱。
由于現(xiàn)在普遍都是雙向欺騙,所以晤揣,C還會去欺騙網(wǎng)關(guān)桥爽。C會給網(wǎng)關(guān)發(fā)送一個ARP應答包,告訴網(wǎng)關(guān)昧识,192.168.1.2的地址是指向我的钠四,你只要將發(fā)送給這個地址的數(shù)據(jù)包都發(fā)給我就可以了!于是跪楞,網(wǎng)關(guān)B就會更新自己的ARP緩存缀去,將去A的數(shù)據(jù)包都發(fā)給攻擊者C。
就這樣习霹,C就成了A和B中間的一個人朵耕。C掌控著A和B通信的中心,C想讓AB之間能通信就開啟自身的IP轉(zhuǎn)發(fā)功能淋叶,將A發(fā)過來的數(shù)據(jù)包發(fā)給B,將B發(fā)過來的數(shù)據(jù)包發(fā)給A伪阶,中間的流量C都可以嗅探到煞檩,這就形成了ARP欺騙。而ARP斷網(wǎng)就是C不開啟自身的IP轉(zhuǎn)發(fā)功能栅贴,那么A就無法到達B斟湃,B也無法到達A,C將中間的通信路線給截斷了檐薯,A當然就無法上網(wǎng)了凝赛,都找不到網(wǎng)關(guān)了注暗,如何上網(wǎng)?
先理解協(xié)議墓猎,再做實驗捆昏,然后總結(jié),最后再理解協(xié)議毙沾,總結(jié)骗卜,實驗。果然理解的比較深刻了左胞!