linux ARP攻擊處理


今天部門受到arp攻擊 多說機器無法正常聯網了,windows下的綁定下mac地址或者打開360arp防火牆就就ok了。我講講linux下的arp攻擊的發現和處理吧。邊學邊講,說的不對的歡迎大家指出,有更好的處理辦法也請給說一聲!

一、知識背景
1.什么是arp
ARP,即地址解析協議,實現通過IP地址得知其物理地址。在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互聯網地址是在網際范 圍標識主機的一種邏輯地址。為了讓報文在物理網路上傳送,必須知道對方目的主機的物理地址。這樣就存在把IP地址變換成物理地址的地址轉換問題。以以太網 環境為例,為了正確地向目的主機傳送報文,必須把目的主機的32位IP地址轉換成為48位以太網的地址。這就需要在互連層有一組服務將IP地址轉換為相應 物理地址,這組協議就是ARP協議。
2、arp工作原理
在每台安裝有TCP/IP協議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應的。
linux ARP攻擊處理 - 飄啊飄 - 飄啊飄的博客
以 主機A(192.168.1.5)向主機B(192.168.1.1)發送數據為例。當發送數據時,主機A會在自己的ARP緩存表中尋找是否有目標IP地 址。如果找到了,也就知道了目標MAC地址,直接把目標MAC地址寫入幀里面發送就可以了;如果在ARP緩存表中沒有找到目標IP地址,主機A就會在網絡 上發送一個廣播,A主機MAC地址是“主機A的MAC地址”,這表示向同一網段內的所有主機發出這樣的詢問:“我是192.168.1.5,我的硬件地址 是"主機A的MAC地址".請問IP地址為192.168.1.1的MAC地址是什么?”網絡上其他主機並不響應ARP詢問,只有主機B接收到這個幀時, 才向主機A做出這樣的回應:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC地址,它 就可以向主機B發送信息了。同時A和B還同時都更新了自己的ARP緩存表(因為A在詢問的時候把自己的IP和MAC地址一起告訴了B),下次A再向主機B 或者B向A發送信息時,直接從各自的ARP緩存表里查找就可以了。ARP緩存表采用了老化機制(即設置了生存時間TTL),在一段時間內(一般15到20 分鍾)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。

3、什么是arp攻擊
ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。
ARP攻擊主要是存在於局域網網絡中,局域網中若有一個人感染ARP木馬,則感染該ARP木馬的系統將會試圖通過“ARP欺騙”手段截獲所在網絡內其它計算機的通信信息,並因此造成網內其它計算機的通信故障。
RARP的工作原理:
1. 發送主機發送一個本地的RARP廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP服務器分配一個IP地址;
2. 本地網段上的RARP服務器收到此請求后,檢查其RARP列表,查找該MAC地址對應的IP地址;
3. 如果存在,RARP服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;
4. 如果不存在,RARP服務器對此不做任何的響應;
5. 源主機收到從RARP服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務器的響應信息,表示初始化失敗。
6.如果在第1-3中被ARP病毒攻擊,則服務器做出的反映就會被占用,源主機同樣得不到RARP服務器的響應信息,此時並不是服務器沒有響應而是服務器返回的源主機的IP被占用。

二、如何判斷是受到arp攻擊?
知道了arp攻擊是怎么回事,就很容易判斷是否受到arp攻擊。arp是有機器偽裝成了網關的mac,所以瀏覽受害機器的arp緩存肯定可以發現一台或者多台機器與網關有相同的mac地址。如果真的有這種情況,就可以判斷是arp攻擊。具體:
chao@redcat:~$
arp -a
? (10.91.11.58) 位於 00:14:2a:44:55:72 [ether] 在 eth0
? (10.91.11.73) 位於 00:1e:ec:77:95:9d [ether] 在 eth0
? (10.91.255.254) 位於 00:14:2a:44:55:72 [ether]  在 eth0
(或者:
chao@redcat:~$ cat /proc/net/arp
IP address       HW type     Flags       HW address            Mask     Device
10.91.11.58      0x1         0x2         00:14:2a:44:55:72     *        eth0
10.91.11.73      0x1         0x2         00:1e:ec:77:95:9d     *        eth0
10.91.255.254    0x1         0x2         00:14:2a:44:55:72     *        eth0

看,10.91.11.58與網關有相同的mac地址(實際是10.91.11.58對尋找10.91.255.254的mac地址的廣播進行相應,並且欺騙廣播,說10.91.255.254的mac地址是 00:14:2a:44:55:72,於是本應發給10.91.255.254的包發給了58,正常的網絡通信就受到影響了)~判斷58可能中了arp攻擊病毒~
我們看看網關的真實mac地址:
chao@redcat:~$
arping 10.91.255.254
WARNING: interface is ignored: Operation not permitted
ARPING 10.91.255.254 from 10.91.11.150 eth0
Unicast reply from 10.91.255.254 [00:D0:03:C5:9B:FC]  3.525ms
Unicast reply from 10.91.255.254 [00:D0:03:C5:9B:FC]  0.878ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  59.480ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  59.660ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  51.857ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  56.920ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  54.042ms
Unicast reply from 10.91.255.254 [00:14:2A:44:55:72]  55.230ms
^CSent 18 probes (1 broadcast(s))
Received 8 response(s)
看,我們受到的響應中有網關正確的響應(第一行),也有其他主機的arp欺騙響應(第三行后面都是~)

三:解決:arp綁定
1.首先,清空arp緩存。
#arp -d 網關ip

2.找到網關真實mac地址。
#arping 網關ip

3.綁定mac地址
#arp -s 網關ip 網關真實mac

如果是暫時性arp欺騙攻擊至此即可,如果網絡中常有此問題,繼續以下:
4、如下命令建立 /ect/ip-mac 文件
echo '網關IP地址 網關MAC地址' >/ect/ip-mac
通過下面的命令查看文件是否寫的正確
more /ect/ip-mac

5、arp -f /ect/ip-mac 加載靜態綁定arp記錄。

6、如果想開機自動綁定

echo 'arp -f /ect/ip-mac' >> /etc/rc.d/rc.local


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM