ARP欺騙過程
發(fā)表時間:2023-07-13 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]假設(shè)一個只有 3臺電腦組成的局域網(wǎng), 該局域 網(wǎng)由交換機連接。 其中一個電腦名叫 A, 代表攻擊 方; 一臺電腦叫S , 代表源主機, 即發(fā)送數(shù)據(jù)的電腦; 另一臺電腦名叫 D...
假設(shè)一個只有 3臺電腦組成的局域網(wǎng), 該局域
網(wǎng)由交換機連接。 其中一個電腦名叫 A, 代表攻擊
方; 一臺電腦叫S , 代表源主機, 即發(fā)送數(shù)據(jù)的電腦;
另一臺電腦名叫 D, 代表目的主機, 即接收數(shù)據(jù)的電
腦。 這3臺電腦 的 I P地址分別為 1 9 2 . 1 6 8 . 0 . 2 ,
1 9 2 . 1 6 8 . 0 . 3 , 1 9 2 . 1 6 8 . 0 . 4 。 MA C地址分別為
MAC A, MAC—
S, MAC—
D。
現(xiàn)在, S電腦要給D電腦發(fā)送數(shù)據(jù)了, 在S電腦內(nèi)
部, 上層的T C P和U D P的數(shù)據(jù)包已經(jīng)傳送到了最底層的
網(wǎng)絡(luò)接口層, 數(shù)據(jù)包即將要發(fā)送出去, 但這時還不知道目
的主機D電腦的M A C地址 MA C _ D 。 這時候, S電腦要
先查詢自身的A R P緩存表, 查看里面是否有1 9 2 . 1 6 8 . 0 . 4
這臺電腦的MA C地址, 如果有, 那很好辦, 就將 M A C _ D
封裝在數(shù)據(jù)包的外面。 直接發(fā)送出去即可。 如果沒有,
這時S電腦要向全網(wǎng)絡(luò)發(fā)送一個 A R P廣播包, 大聲詢
問: “ 我的I P是 1 9 2 . 1 6 8 . 0 . 3 , 硬件地址是 M A E _ S , 我想
知道 I P地址為 1 9 2 . 1 6 8 . 0 . 4的主機的硬件地址是多
少? ”這時, 全網(wǎng)絡(luò)的電腦都收到該 A R P廣播包了, 包
括A電腦和 D電腦。 A電腦一看其要查詢的 I P地址
不是自己的, 就將該數(shù)據(jù)包丟棄不予理會。 而 D電腦
一
看I P地址是自己的, 則回答S電腦: “ 我的I P地址是
1 9 2 . 1 6 8 . 0 . 4 , 我的硬件地址是 M A E D” 。 需要注意的
是, 這條信息是單獨回答的, 即D電腦單獨向S電腦發(fā)
送的, 并非剛才的廣播。 現(xiàn)在 S電腦已經(jīng)知道目的電
腦 D的M A C地址了, 它可以將要發(fā)送的數(shù)據(jù)包上貼上
目的地址 M A C _ D, 發(fā)送出去了。 同時它還會動態(tài)更新 自身的A R P緩存表, 將 1 9 2 . 1 6 8 . 0 . 4一 MA C — D這一條
記錄添加進(jìn)去, 這樣, 等s電腦下次再給 D電腦發(fā)送數(shù)
據(jù)的時候, 就不用大聲詢問發(fā)送 A R P廣播包了。 這就
是正常情況下的數(shù)據(jù)包發(fā)送過程。
這樣的機制看上去很完美, 似乎整個局域網(wǎng)也天
下太平, 相安無事。 但是, 上述數(shù)據(jù)發(fā)送機制有一個致
命的缺陷, 即它是建立在對局域網(wǎng)中電腦全部信任的
基礎(chǔ)上的, 也就是說它的假設(shè)前提是: 無論局域網(wǎng)中那
臺電腦, 其發(fā)送的A R P數(shù)據(jù)包都是正確的。 那么這樣
就很危險了!因為局域網(wǎng)中并非所有的電腦都安3 + - z g
己, 往往有非法者的存在。 比如在上述數(shù)據(jù)發(fā)送中, 當(dāng)
S電腦向全網(wǎng)詢問“ 我想知道I P地址為1 9 2. 1 6 8. 0 . 4的
主機的硬件地址是多少? ” 后, D電腦也回應(yīng)了自己的
正確 M A C地址。 但是當(dāng)此時, 一向沉默寡言的A電腦
也回話了: “ 我的I P地址是 1 9 2. 1 6 8. 0 . 4 , 我的硬件地址
是M A C — A ” , 注意, 此時它竟然冒充自己是 D電腦的I P
地址, 而M A C地址竟然寫成自己的!由于 A電腦不停
地發(fā)送這樣的應(yīng)答數(shù)據(jù)包, 本來 s電腦的A R P緩存表
中已經(jīng) 保存了正確的記錄: 1 9 2. 1 6 8. 0 . 4一M A C _ D, 但
是由于A電腦的不停應(yīng)答, 這時 s電腦并不知道 A電
腦發(fā)送的數(shù)據(jù)包是偽造的, 導(dǎo)致 s電腦又重新動態(tài)更
新自身的A R P緩存表, 這 回記錄成: 1 9 2. 1 6 8. 0 . 4一
M A C _ A, 很顯然, 這是一個錯誤的記錄( 這步也叫A R P
緩存表中毒) , 這樣就導(dǎo)致以后凡是 s電腦要發(fā)送給 D
電腦, 也就是 I P地址為 1 9 2. 1 6 8. 0 . 4這臺主機的數(shù)據(jù),
都將會發(fā)送給 M A C地址為M A C _ A的主機, 這樣, 在光
天化日之下, A電腦竟然劫持了由 s電腦發(fā)送給 D電
腦的數(shù)據(jù)!這就是 A R P欺騙的過程。
如果 A這臺電腦再做得“ 過分” 一些, 它不冒充
D電腦, 而是冒充網(wǎng)關(guān), 那后果會怎么樣呢?我們大
家都知道, 如果一個局域網(wǎng)中的電腦要連接外網(wǎng), 都
要經(jīng)過局域網(wǎng)中的網(wǎng)關(guān)轉(zhuǎn)發(fā)一下, 所有收發(fā)的數(shù)據(jù)
都要先經(jīng)過網(wǎng)關(guān), 再由網(wǎng)關(guān)發(fā)向外網(wǎng)。 在局域網(wǎng)
中, 網(wǎng)關(guān)的 I P地址一般為 1 9 2 . 1 6 8 . 0 . 1 。 如果 A這
臺電腦向全網(wǎng)不停的發(fā)送 A R P欺騙廣播, 大聲說:
“ 我的 I P地址 是 1 9 2 . 1 6 8 . 0 . 1 , 我的硬件地址是
MAC— A” 這時局域網(wǎng)中的其它電腦并沒有察覺到什
么, 因為局域網(wǎng)通信的前提條件是信任任何電腦發(fā)
送的A R P廣 播包。 這樣局域網(wǎng)中的其它電腦都會
更新自身的 A R P緩存表, 記錄下 1 9 2 . 1 6 8 . 0 . 1一
MAC— A這樣的記錄, 這樣, 當(dāng)它們發(fā)送給網(wǎng)關(guān), 也就
是 I P地址為 1 9 2 . 1 6 8 . 0 . 1 這臺電腦的數(shù)據(jù), 結(jié)果都
會發(fā)送到 M A C — A這臺電腦中。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。