试验环境:
1、 拓扑图:
2、 拓扑说明:
1) router 1为出口路由器, 做NAT出局。
2) SW1为局域网交换机, 做了端口镜像, 把E0/1镜像到端口E0/24对攻击的数据做分析。
3) 攻击机:IP 10.0.0.5 MAC: Giga-Byt_15:84:f3 (00:1d:7d:15:84:f3)
4) 受害机1:IP 10.0.0.4 MAC: Dell_c0:fc:55 (00:21:70:c0:fc:55)
5) 受害机2:IP 10.0.0.6 MAC:SamsungE_9c:25:d3 (00:13:77:9c:25:d3)
6) 网关:IP 10.0.0.1 MAC: Hangzhou_4b:bf:4a (00:0f:e2:4b:bf:4a)
3、 测试用软件:
采用了目前常见的局域网攻击软件:网络守护神4.0.0.0, 聚生网管2.1 。 经分析此2软件的做法基本雷同, 因此文中不做特别的指出均表示此2软件。
4、 相关路由交换配置:
Router1:
#
sysname Router1
#
nat address-group 0 192.168.1.223 192.168.1.224
#
dhcp server ip-pool 1
network 10.0.0.0 mask 255.255.255.0
gateway-list 10.0.0.1
dns-list 202.102.134.68 61.134.1.4
#
acl number 2000
rule 0 permit source 10.0.0.0 0.0.0.255
#
interface Ethernet0/0
ip address 192.168.1.222 255.255.255.0
nat outbound 2000 address-group 0
#
interface Ethernet0/1
ip address 10.0.0.1 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 192.168.1.1 preference 60
SW1:
#
sysname SW1
#
acl number 4000
rule 0 permit ingress interface Ethernet0/1 egress any
rule 1 permit ingress any egress interface Ethernet0/1
#
vlan 1
#
vlan 10
#
interface Vlan-interface1
ip address 10.0.0.2 255.255.255.0
#
interface Ethernet0/1
#
interface Ethernet0/2
#
interface Ethernet0/3
#
interface Ethernet0/23
port access vlan 10
#
interface Ethernet0/24
#
ip route-static 0.0.0.0 0.0.0.0 10.0.0.1 preference 60
#
mirrored-to link-group 4000 rule 0 interface Ethernet0/23
mirrored-to link-group 4000 rule 1 interface Ethernet0/23攻击原理:
1、 攻击原理:
ARP欺骗是采用大量的伪造网关的ARP reply报文来淹没真正的网关reply报文来达到欺骗客户端的目的。 因IP协议设计问题, 对于收到的ARP reply无法进行认证, 并且尽管自身未发ARP request报文但是仍可对replay报文进行响应, 这更加大了被攻击的可能。
可见ARP REPLY发包频率非常之高, 统计信息如下:
同时还发现聚生网关, 有定时扫描整个网段ARP的机制, 而网络守护神为手工按钮。
当以上攻击发生时, 客户端通过arp -a 命令发现已经被欺骗, 而在网关上 dis arp 未发现欺骗, 同时也没有抓取到欺骗网关的ARP报文, 此时查看交换机的MAC地址表, 也没有异常。 由此可证明以上2软件仅对客户端进行欺骗, 而不对网关和交换机进行欺骗。
2、 数据在受欺骗时的流程:
首先因客户端的MAC错误, 客户会将数据错误的转发到攻击机, 攻击机仅修改目的MAC为真正的网关MAC, 对三层及以上数据不做修改并转发, 此时真正的数据到达路由器并经过NAT出局, 而回来的数据流因路由器的MAC地址表未被欺骗, 因此直接的回送至受欺骗的机器, 抓包如下:
由此可证明此2软件仅对上行数据流做控制, 下行的则不做控制, 路由器和交换机意识不到欺骗的存在。
预防方法测试:
1、 静态绑定:
在受攻击的客户端做静态IP+MAC绑定 发现客户端不受控制, 但是上网速度相对来说慢, 分析原因为尽管自身已经不受欺骗当时仍然要处理收到的欺骗数据包, 同时欺骗的数据也占用带宽, 因此对上网速率造成影响, 但此已经不属于ARP攻击的范畴了。 此时在监控机抓取不到受害机的报文, 由此也可证明已经失去控制。
2、 DHCP SNOOPING:
此方法证实无效, 相关配置如下:
#
interface Ethernet0/1
ip check source ip-address mac-address
#
interface Ethernet0/2
ip check source ip-address mac-address
#
interface Ethernet0/3
ip check source ip-address mac-address
interface Ethernet0/24
dhcp-snooping trust
#
dhcp-snooping
具体分析如下:因打开DHCP SNOOPING功能后, 交换机在转发数据前要检查DHCP SNOOPING 表的, 凡是IP和MAC地址不和SNOOPING 表相匹配的则不予转发。 DHCP-SNOOP表如下:
[SW1]dis dhcp-snooping
DHCP-Snooping is enabled globally.
The client binding table for all untrusted ports.
Type : D--Dynamic , S--Static
Type IP Address MAC Address Lease VLAN Interface
==== =============== =============== ========= ==== =================
D 10.0.0.4 0021-70c0-fc55 86400 1 Ethernet0/1
D 10.0.0.5 001d-7d15-84f3 86400 1 Ethernet0/2
D 10.0.0.6 0013-779c-25d3 86400 1 Ethernet0/3
--- 3 dhcp-snooping item(s) found ---
因此当发生ARP欺骗后, ARP攻击机转发受害机的数据的IP+MAC关系已经不符合SNOOPING表的条目了, 因此将丢弃该数据包。 此时即使攻击机不对受害机做控制, 受害机也不能够上网, 受害机的数据被交换机丢弃了。
由此可推断, 在交换机上做IP MAC PORT 之间的绑定也是如上效果, 起不到防御作用。
3、 PVLAN:
在交换机上做PVLAN隔离, 此时发祥攻击机无法扫描到同网段的其他机器, 也无法做出任何欺骗, 在监控口抓包仅发现大量扫描包, 此时受害机的ARP地址表也正常, 网速也正常。 分析原因为交换隔离了攻击的流量, 此时的攻击包受害机根本就无法收到, 同样也不占用CPU时间, 对网络带宽占用也比较少, 因此起到了完全隔离ARP攻击的作用, 并且对网速也没有影响。
相关配置如下:
#
vlan 10
#
vlan 100
isolate-user-vlan enable
#
vlan 101
#
vlan 102
#
vlan 103
#
interface Vlan-interface1
ip address 10.0.0.2 255.255.255.0
#
interface Ethernet0/1
port link-type hybrid
port hybrid vlan 100 to 101 untagged
port hybrid pvid vlan 101
#
interface Ethernet0/2
port link-type hybrid
port hybrid vlan 100 102 untagged
port hybrid pvid vlan 102
#
interface Ethernet0/3
port link-type hybrid
port hybrid vlan 100 103 untagged
port hybrid pvid vlan 103
#
interface Ethernet0/23
port access vlan 10
#
interface Ethernet0/24
port link-type hybrid
port hybrid vlan 100 to 103 untagged
port hybrid pvid vlan 100
检测及故障追踪方法:
1、 ARP -A 查看ARP 地址表及扫描法:
在受害机用arp -d 清除ARP表然后用arp -a 查看MAC地址表, 如发现网关MAC不是真正的MAC, 则收到ARP攻击。 并且此MAC为攻击机的MAC。
用局域网MAC地址扫描攻击扫描整个网络的IP和MAC对应关系, 如果发现大量重复MAC,并且相对应的机器也没有配置多个IP, 则网络有ARP攻击。 并且此MAC为攻击机的MAC。
2、 查看交换机的MAC地址表:
在交换机上查看交换机的MAC地址表, 找到攻击机的MAC对应的端口, 如果有交换机级联则逐级查找, 找到对应的PC即为进行欺骗的机器。
3、 本机抓包:
在本机抓包如果抓包大量的Reply报文, 则发该报文的机器即为攻击机。
4、 交换机端口镜像抓包:
原理同3, 用于整个网络不稳定, 比较慢, 但是查看端口流量不是很大的情况。
总结:
1、 ARP欺骗是利用大量reply报文来淹没正常Replay报文达到欺骗目的的。
2、 目前简单的防御方法是采用ARP绑定, 建议两端同时绑。
3、 建议彻底的防御方法是采用PVLAN的方法, 但是此时PC间的通讯也受到阻塞。
4、 可采用屏蔽ARP报文的方法, 在交换机采用访问控制列表, 或者是修改操作系统(目前只知道UNIX/LINUX 可以)的方法关闭ARP协议, 这样局域网间的通讯仅靠手工的MAC绑定来限制。
5、 采用更加细致的二层访问控制列表, 仅允许网关的arp reply报文通过, 或仅允许正确的arp reply报文通过, 此方法需要交换机支持, 并且也N麻烦。
……