linux下arp攻击的解决方案

必备软件
Libnet 官方网站 下载地址
arpoison 官方网站 下载地址

安装方法(FC下成功,其他发行版可参考):

先安装libnet
tar -xvzf libnet.tar.gz
cd libnet
./configure
make
make install

安装arpoison
tar -xvzf arpoison-0.6.tar.gz
cd arpoison
gcc arpoison.c /usr/lib/libnet.a -o arpoison
mv arpoison /usr/sbin



用法:
Usage: -i device -d dest_IP -s src_IP -t target_MAC -r src_MAC [-a] [-w time between packets] [-n number to send]


示例:
arpoison -i eth0 -d 172.16.18.254 -s 172.16.18.19 -t ff:ff:ff:ff:ff:ff -r 00:11:09:E8:78:DD

-i eth0 指定发送arp包的网卡接口eth0
-d 172.16.18.254 指定目的ip为172.16.18.254
-s 172.16.18.19 指定源ip为172.16.18.19
-t ff:ff:ff:ff:ff:ff 指定目的mac地址为ff:ff:ff:ff:ff:ff(arp广播地址)
-r 00:11:09:E8:C8:ED 指定源mac地址为00:11:09:E8:C8:ED

wireshark截图如下:
linux下arp攻击的解决方案


写了一个小脚本,根据注释,相信聪明智慧的各位可以搞定linux下的arp攻击了:

#!bash
#arpDefend.sh
#######
#yk103#
#######

#网关mac地址
GATEWAY_MAC=00:D0:F8:FF:4A:23
#目的mac地址
DEST_MAC=ff:ff:ff:ff:ff:ff
#目的ip地址
DEST_IP=172.16.18.254
#本地网卡接口
INTERFACE=eth0
#$INTERFACE的mac地址
MY_MAC=00:11:09:E8:78:DD
#$INTERFACE的ip地址
MY_IP=172.16.18.19

#在本机建立静态ip/mac入口 $DEST_IP--$GATEWAY_MAC
arp -s $DEST_IP $GATEWAY_MAC

#发送arp reply ,使$DEST_IP更新$MY_IP的mac地址为$MY_MAC
arpoison -i $INTERFACE -d $DEST_IP -s $MY_IP -t $DEST_MAC -r $MY_MAC 1>/dev/null &



结束语:
arpoison需要root权限运行
arpoison需要libnet的支持
arpoison很好的解决了arp攻击的问题

题外话:
其实arpoison本身是可以作为arp攻击工具使用(看名字就可以知道 "poison" 毒),我们这方法可谓以毒攻毒。 至于如何用arpoison进行arp攻击,相信冰雪聪明的各位用不着我说了(嘿嘿~~)


作者:http://hi.baidu.com/yk103/blog
--------------------------------------------------------------------------------------------------------------

linux arp 命令常用参数详解



显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。
ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]
-a 通过询问当前协议数据,显示当前 ARP 项。如果指定 inet_addr,则只显示指定计算机的 IP 地址和物理地址。如果不止一个网络接口使用 ARP,则显示每个 ARP 表的项。
-g 与 -a 相同。
-v 在详细模式下显示当前 ARP 项。所有无效项和环回接口上的项都将显示。
inet_addr 指定 Internet 地址。
-N if_addr 显示 if_addr 指定的网络接口的 ARP 项。
-d 删除 inet_addr 指定的主机。inet_addr 可以是通配符 *,以删除所有主机。
-s 添加主机并且将 Internet 地址 inet_addr与物理地址 eth_addr 相关联。物理地址是用连字符分隔的 6 个十六进制字节。该项是永久的。
eth_addr 指定物理地址。
if_addr 如果存在,此项指定地址转换表应修改的接口的 Internet 地址。如果不存在,则使用第一个适用的接口。
示例:
添加静态项。这个很有用,特别是局域网中中了arp病毒以后
> arp -s 123.253.68.209 00:19:56:6F:87:D2
> arp -a .... 显示 ARP 表。
但是arp -s 设置的静态项在用户登出之后或重起之后会失效,如果想要任何时候都不失效,可以将ip和mac的对应关系写入arp命令默认的配置文件/etc/ethers中
例如:

引用
root@ubuntu:/# vi /etc/ethers

211.144.68.254 00:12:D9:32:BF:44

写入之后执行下面的命令就好了

引用
arp -f /etc/ethers

你可能感兴趣的:(linux,ubuntu,gcc,网络协议,bash)