中间人攻击(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报文,或使用反间谍软件监控。

结合防ARP、IP欺骗等进行防御。 
5、源路由欺骗
 源路由选择欺骗(Source Routing spoofing):在通常的TCP数据包中只包括 源地址和目的地址,即路由只需知道一个数据包是从那来的要到那去。源路由 是指在数据包中还要列出所要经过的路由。某些路由器对源路由包的反应是使 用其指定的路由,并使用其反向路由来传送应答数据。这就使一个入侵者可以 假冒一个主机的名义通过一个特殊的路径来获得某些被保护数据。 路由选择信息协议攻击(RIP Attacks):经常用于局域网上播出路由信息。由 于大多数情况下路由器对收到的路由信息是不检验的,这就使得入侵者可以给 目标主机以及沿途的每个网关发出虚假的路由信息,从而改变数据的传输途径。 这样数据就会按照虚假的路径传播令入侵者就获得路由器的某些功能,比如可以 在将数据包转发给目标主机之前对进行数据包分析,从中捕获口令等有用信息。  

中间人攻击(MITM)之数据截获原理的更多相关文章

  1. 中间人攻击(MITM)姿势总结

    相关学习资料 http://www.cnblogs.com/LittleHann/p/3733469.html http://www.cnblogs.com/LittleHann/p/3738141. ...

  2. 中间人攻击-MITM攻击

    中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机 ...

  3. Ettercap 实施中间人攻击

    中间人攻击(MITM)该攻击很早就成为了黑客常用的一种古老的攻击手段,并且一直到如今还具有极大的扩展空间,MITM攻击的使用是很广泛的,曾经猖獗一时的SMB会话劫持.DNS欺骗等技术都是典型的MITM ...

  4. TLS是如何保障数据传输安全(中间人攻击)

    前言 前段时间和同事讨论HTTPS的工作原理,当时对这块知识原理掌握还是靠以前看了一些博客介绍,深度不够,正好我这位同事是密码学专业毕业的,结合他密码学角度对tls加解密这阐述,让我对这块原理有了更进 ...

  5. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )

    一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...

  6. HTTPS中间人攻击实践(原理·实践)

      前言 很早以前看过HTTPS的介绍,并了解过TLS的相关细节,也相信使用HTTPS是相对安全可靠的.直到前段时间在验证https代理通道连接时,搭建了MITM环境,才发现事实并不是我想的那样.由于 ...

  7. Https协议简析及中间人攻击原理

    1.基础知识 1.1 对称加密算法 对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,典型的对称加密算法有DES.AES等                              ...

  8. 中间人攻击——ARP欺骗的原理、实战及防御

    ​ 1.1 什么是网关 首先来简单解释一下什么是网关,网关工作在OSI七层模型中的传输层或者应用层,用于高层协议的不同网络之间的连接,简单地说,网关就好比是一个房间通向另一个房间的一扇门. 1.2 A ...

  9. 【Android编程】android平台的MITM瑞士军刀_cSploit源码解析及中间人攻击复现

    /文章作者:Kali_MG1937 作者博客ID:ALDYS4 QQ:3496925334 未经允许,禁止转载/ 何为MITM欺骗,顾名思义,中间人攻击的含义即为在局域网中充当数据包交换中间人的角色 ...

随机推荐

  1. 牛客网Wannafly挑战赛25A 因子(数论 素因子分解)

    链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  2. HDU--5519 Sequence II (主席树)

    题目链接 2016年长春ccpc I 题 题目大意 : 给你n(n≤2∗105n≤2∗105)个数,每个数的大小 0<Ai≤2∗10^5   0<Ai≤2∗10^5. 再给你m(m≤2∗1 ...

  3. css 蒙层

    蒙层 利用z-index: .mui-backdrop-other { position: fixed; top: 44px; right:; bottom:; left:; z-index:; ba ...

  4. 【模板】多项式乘法(FFT)

    题目描述 给定一个n次多项式F(x),和一个m次多项式G(x). 请求出F(x)和G(x)的卷积. 输入输出格式 输入格式: 第一行2个正整数n,m. 接下来一行n+1个数字,从低到高表示F(x)的系 ...

  5. 【ZJOI2007】粒子运动

    若此段起始点为(stx,sty),速度为(vx,vy),设碰撞时间为t,则(stx+vx·t)²+(sty+vy·t)²=r² → stx²+vx²·t²+2·stx·vx·t+sty²+vy²·t² ...

  6. MVC WebAPI框架里设置异常返回格式统一

    webApi里设置全局异常返回格式今天为了设置api返回格式统一,在网上找了一推资料,各种资料参差不齐的,最后自己捣鼓,终于弄出来了,直接上代码 /// <summary> /// 消息代 ...

  7. Django cookie相关操作

    Django cookie 的相关操作还是比较简单的 首先是存储cookie #定义设置cookie(储存) def save_cookie(request): #定义回应 response = Ht ...

  8. Python函数--装饰器进阶

    开放封闭原则 1.对扩展是开放的 为什么要对扩展开放呢? 我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代码扩展.添加新功能. 2.对修改是封 ...

  9. 安装webpack-dev-server始终不成功

    先安装了webpack,后来安装webpack-dev-server会一直出现这个问题,我把webpack提示的1.0.0 , 2.0.0 ,3.0.0全都在全局装了一遍都没用,还是会出现这个问题.最 ...

  10. java List集合

    List集合包括四种类,分别是ArrayList.LinkedList.Vector.Stack. ArrayList:元素的存储是顺序存储,可以根据数组的下标查询,查询速度快,但是在删除和插入元素时 ...