arp欺騙防護

arp欺騙原理

主機通訊的簡單描述

arp欺騙防護
如上圖,PC1與PC2在同一個網段,PC2要與PC1通訊,由於以太網的通訊機制,PC2需要先知道PC1的mac地址,通過mac地址與PC1通訊。PC2會先通過自己的arp表查找192.168.20.11對應的mac,如下:
PC1的arp表:
arp欺騙防護
PC2的arp表:
arp欺騙防護
可以看到PC2沒有192.168.20.11的記錄,這時PC2通過arp廣播向全網詢問誰有ip 192.168.20.11,PC1收到這個廣播後發現是要請求192.168.20.11的mac,這個ip正是自己的ip,向PC2迴應一個包告訴PC2 192.168.20.11的mac,由於PC2發送的arp廣播中已經攜帶了PC2的mac,PC1這時會將PC2的arp信息記錄在自己的arp表中,如下是在PC2中pingPC1後的arp表:
PC1的arp表:
arp欺騙防護
PC2的arp表:
arp欺騙防護
此時PC1和PC2就可以通訊了。

arp欺騙是如何做到的

arp這個協議算個脆弱的協議了,只要PC2能收到arp應答包就會更新自己的arp表,PC2是沒法驗證這個arp應答包是否真的來自PC1。此時如果PC3不停的發送arp應答包給PC2,告訴PC2我就是192.168.20.11,PC2就會不停的更新自己的arp表,擁有一個錯誤的arp記錄。

可以在PC3上使用arpspoof命令不停的向PC2發送arp應答包。

arpspoof -i eth1 -t 192.168.20.12 192.168.20.11

此時查看PC2的arp表:
arp欺騙防護
可以看到192.168.20.11對應的mac和192.168.20.9的mac相同,08-00-27-37-7b-cc這個mac是PC3的。

這樣當PC2向PC1發送數據時就會發送到PC3。此時在PC2上ping PC1是不通的
arp欺騙防護
之所以ping不通,是因爲PC3上就沒有192.168.20.11這個ip,PC2發送的包是給192.168.20.11的,PC3當然就會丟棄了。

在PC3的eth1上添加ip 192.168.20.11

ip add add dev eth1 192.168.20.11/24

再到PC3上ping 192.168.20.11就可以ping通了。

但這樣做,對於一個心懷惡意的人沒什麼用。因爲PC2是要訪問PC1的資源。PC3通常是提供不了這些的資源的,除非PC3非常清楚PC1的資源,並能成功克隆一份以至PC2不會懷疑。更爲廉價的方式是,PC3把PC1到PC2的流量也劫持了。

arpspoof  -i eth1 -t 192.168.20.11 192.168.20.12

執行上面的命令前需要用下面的命令取消PC3的eth1上綁定的192.168.20.11

ip add del dev eth1 192.168.20.11/24

這樣PC3把PC1到PC2的流量也支持了。但此進PC2還是不通ping能PC1。這是因爲PC1、PC2的流量都到了PC3,但這些流量的目的地都不是PC3,PC3會丟棄。可以在PC3上開啓ip轉發來轉發雙方的流量,PC3開啓ip轉發後,PC3就相當於一臺路由了,可以轉發目的地址不是自己的流量。

echo 1 > /proc/sys/net/ipv4/ip_forward

此時PC2和PC1可以正常通訊了,而所有流量都會經過PC3,PC3就可以進行抓包之類的進行流量分析了。如果PC2與PC1的通訊包含明文用戶名、密碼,這些用戶名、密碼就會被PC3得知。

arp欺騙防護

查詢網上,arp欺騙的防護沒有太多的辦法,有三種辦法。

  • 使用帶DAI功能的交換,此類交換機可以解決arp欺騙
  • 使用靜態arp記錄,arp廣播得到的是arp記錄是動態的,可以手動設置靜態arp記錄
    linux使用:
    arp -s ip mac

    windows使用:

    arp -s ip mac

    這種方式法對主機很多的情況不適用。

  • 使用arp防火牆,如xarp(xarp似乎是通過檢測mac的變化識別arp欺騙,筆記在PC2已經遭受到arp欺騙後安裝了xarp,xarp並未檢測到arp欺騙,但取消PC3上對PC1、PC2的arp欺騙後,在PC2上pingPC1,xarp檢測到了arp欺騙,且檢測到的是正確的mac,由於可見xarp是通過檢測mac的變化確認mac欺騙的。)

    arp欺騙的檢測

    arp欺騙的隱蔽性還是有點強

  • 在linux中下可以使用arping檢測:
    arp欺騙防護
    可以看到除了第一條,後面的都是PC3的mac,arping在檢測的時候也是不容易發現。但還是出現了兩個不同的mac,這時可以懷疑是有arp欺騙了。

  • 還可以抓包確認:
    arp欺騙防護
    象上圖這種,有着連續的同一個arp應答包,有理由懷疑被arp欺騙了。
  • 一些arp檢測軟件,如:arpwatch
    arpwatch是linux下的一個arp工具,用於監控arp的變化,這個工具通過對流量的分析追蹤arp的變化,併發送郵件。這個工具在使用交換機的網絡中效果不大,因爲使用交換機的網絡中,交換機端口是不能接收到整個網絡流量的,因此arpwatch就不能監控整個網絡的arp變化了 ,但這個工具安裝在本機監控arp變化是可以的,這樣就起到了arp防火牆的作用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章