Pages

Monday, 29 October 2012

使用arpwatch和arping来排查ARP攻击

ARPWATCH监听广播域内的ARP通信,记录每台设备的IP与MAC的对应关系,当发生变化时,发邮件通知。
ARP攻击的常见迹象就是发现网关的MAC地址变生变化。
当然,ARPWATCH不是万能的。因为一般情况下,你的安装arpwatch的服务器不可能总是能接收到整个网络的arp事件。想要完全监听,不得不在交换上做端口镜象。
另外,对路由器的攻击,因为攻击包是发给路由器的,假如在适当的位置没有端口镜象的支持,也是收不到任何信息的,所以也发现不了攻击。
####################
# ARP攻击监控、处理
####################
#系统环境:CentOS 5.2
#
# 安装 ARPWACTH
yum -y install arpwatch
# 设备成自动启动
chkconfig arpwatch on
# 启动arpwatch服务
serivce arpwatch start 、/etc/init.d/arpwatch start
# 设置arpwatch
vi /etc/sysconfig/arpwatch
# -u : defines with what user id arpwatch should run
# -e : the where to send the reports
# -s : the -address
OPTIONS=”-u pcap -e xx@yy.com -s ‘root (Arpwatch)’”
使用arping查询得到mac地址
# 遍历VLAN内的MAC地址
#!/bin/bash
for i in `seq 254` ; do
arping -c2 210.51.44.$i | awk ‘/Unicast reply from/{print $4,$5}’ | sed ’s/\[//' | sed 's/\]//’
done
报警样例:
hostname: <unknown>
ip address: 210.51.44.1
ethernet address: 0:0:24:5b:bb:ac
ethernet vendor: CONNECT AS
old ethernet address: 0:b:bf:29:d0:56
old ethernet vendor: Cisco Systems
timestamp: Sunday, December 7, 2008 14:46:34 +0800
previous timestamp: Sunday, December 7, 2008 14:46:34 +0800
delta: 0 seconds
其中,知道网关正确的MAC是0:b:bf:29:d0:56,所以0:0:24:5b:bb:ac就是攻击者的MAC地址(有一点需要注 意,MAC地址也是可以改变的)。使用arping遍历同网段的IP,得到MAC列表,再grep出这个MAC的IP地址即可。可以把这个MAC地址表保 存起来,下次使用。当然,要保证这个文件是正确的,所以还是需要保持更新。