中间人攻击(MITM)之数据截获原理 - The data interception principle of the man in the middle attack (MITM)
交换式局域网中截获和监听数据的方式主要有站表溢出、ARP欺骗、DHCP欺骗和ICMP重定向。广域网中主要使用路由器欺骗。
1、站表溢出
交换机根据站表转发MAC帧,站表中的项通过以太网帧的源MAC地址学习获得,当交换机在站表中无法找到以外网帧的目标MAC地址时,会广播该帧给所有端口。而且站表中的每一项都有生命周期,如果在周期内一直没有收到与源MAC地址匹配的对应帧时,就会将该项从站表中删除。当站表被填满时,交换机停止学习直到某项因超时被删除。攻击者可以发送大量虚假源MAC地址的帧来占满站表。使得后面再经过交换机转发的信息都是以广播形式发送的,这样攻击者就可以截获所有经过交换机的报文。
防御:限制每个端口允许学习的最大地址数,使得当某个端口学习的地址数达到上限时将不再记录。
2、ARP欺骗
在局域网中,主机通信前需要通过ARP协议将IP地址转化为MAC地址,ARP欺骗就是通过伪造IP地址与MAC地址的映射关系实现的一种欺骗攻击。因为在局域网中都是以MAC地址进行识别通信,发送方检查ARP缓存中是否存在目标IP的MAC地址,不存在就会以广播的形式发送ARP请求报文,这时所有主机都会收到报文但是只有目标IP的主机会响应发送ARP应答报文,发送方收到应答后便立即更新自身ARP缓存。攻击者可以发送伪造的ARP报文请求或应答报文,使得目标主机的IP与MAC地址绑定为自己构造的。这时可以构造一个告诉被攻击目标攻击者主机为路由器,告诉路由器攻击者主机为被攻击者主机,使得所有发往被攻击者的报文和攻击者发送的报文都将被攻击者截获。
防御:
1、客户端静态绑定网关的真实MAC地址(arp -s 网关ip地址 网关mac地址)
2、在交换机和路由器上设置端口与MAC地址静态绑定
3、定期检查自身ARP缓存,是否有同一MAC地址对应多个IP地址的表项
4、使用防火墙持续监控ARP缓存
3、DHCP欺骗
DHCP用于自动配置终端接入网络所需的信息,主要包括IP地址、掩码和默认网关等。由于此过程中主机没有对DHCP服务器进行任何认证,攻击者可以伪装成DHCP服务器,使得主机在刚接入网络时就被分配虚假的网关,随后主机的所有通信都会经过攻击者指定的虚假网关。
防御:通常终端无法识别是否是DHCP欺骗,防御DHCP欺骗吗必须在交换机上配置。通常是将交换机分为信任端口和非信任端口,交换机只转发信任端口发出的DHCP应答报文,管理员必须将与DHCP服务器相连的端口和连接不同交换机的端口设置为信任端口,其他端口一律设置为非信任端口,这样虚假的DHCP应答报文都会被交换机丢弃。
4、ICMP路由重定向
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。
(以下解释 转载自 http://www.cnblogs.com/KevinGeorge/p/7866840.html)
ICMP重定向技术,是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。其概念理解的要义是原主机路由不是最佳路由,而其默认网关提醒主机优化自身的主机路由而发送的报文。
2、ICMP重定向细节:
(1)报文格式:
帧首部 |
IP首部 |
ICMP重定向首部 |
ICMP重定向数据 |
ICMP重定向负载部分
类型:5 |
代码:0(0~3) |
校验和 |
建议使用的最优路由next-hop地址 |
||
IP首部 |
||
IP报文有效载荷的前8bytes |
代码0~3代表的含义:
代码 |
描述 |
0 |
网络重定向 |
1 |
主机重定向 |
2 |
服务匹配条件下网络重定向 |
3 |
服务匹配条件下主机重定向 |
·建议使用的最优路由地址:
路由器或其他网关类设备的接口地址。
·IP首部:
原ICMP报文IP报头。
·IP报文有效载荷的前8bytes:
原ICMP报文中的类型、代码、校验、序列号等字段。
(2)发生条件:
·数据包的入接口和路由后的指定的出接口是同一个接口。
·数据包的源IP地址和该包应走的下一跳IP属于同一网段。
·数据报非源路由的(这种情况应该比较少见了,源路由多见于Token Ring)。
·系统开启重定向功能。
·受到ICMP重定向攻击。
(3)系统响应:
·大部分windows系列OS会选择添加一条主机路由作为默认动作。
·部分UNIX系列和UNIX-LIKE系列OS同样选择添加一条主机路由作为默认动作。
·部分UNIX系列和UNIX-LIKE系列OS以及一般而言绝大多数路由类网络设备会忽略。
·Linux等可以作为路由器的OS针对ICMP重定向有着不同的标准动作选择。
3、ICMP重定向应用:
(1)单纯的提供路由优化选项建议。
(2)定向改变数据流传输路由路径。
(3)通过优化路由改善服务的质量。
(4)进行非法的网络攻击入侵行为。
4、ICMP重定向攻击:
从安全的角度来讲,ICMP重定向报文没有协议状态检查,以及合法性机制验证,十分类似ARP报文,可以轻而易举的进行欺骗攻击。
当然不同的操作系统对于受到的ICMP重定向报文也会按照自己的一些标准进行过滤,例如Windows之接受来自其自身默认网关的ICMP重定向报文,其余来源ICMP重定向报文则被丢弃,但伪造网关发送报文十分容易。
ICMP攻击可以达到的目的:流量的嗅探劫持、中间人代理权(这两点差不多)
过程说明:
(1)正常时,user通过交换机Switch连接到网关设备Gateway,利用默认网关与跨网段的 服务器Server通信。
(2)异常情况下,攻击者Attacker可以伪造网关向user发送ICMP重定向报文,可以结合 ARP欺骗技术,然后用户user主机路由变成流量要通过Attacker来进行转发通信。
(3)攻击者可以截获、提取、分析、修改、重放用户user的数据包,造成多种安全威胁。
防御:
(1)网关端:
·关闭ICMP重定向(no ip redirects)。
·变长子网掩码划分网段。
·使用网络控制列表(ACL)和代理。
(2)主机端:
可以使用防火墙等过滤掉ICMP报文,或使用反间谍软件监控。