web安全day17:天天都在说的中间人攻击到底是啥
Posted 小梁L同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web安全day17:天天都在说的中间人攻击到底是啥相关的知识,希望对你有一定的参考价值。
一、ARP--IP与MAC间的桥梁
ARP(Address Resolution Prtocol)是用来将ip地址解析为mac地址的协议。在局域网中,当主机或者其他三层网络设备有数据要发送给另外一台主机或者三层网络设备时,它需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为ip报文必须封装成二层帧才能通过物理网络发送,因此发送方还需要知道对方的物理地址(即mac地址),这就需要一个从ip地址到mac地址的映射,arp协议就可以实现将ip地址解析为mac地址。主机或者三层网络设备上会维护一张arp表,用于存储ip地址和mac地址的关系,一般arp表项包括静态arp表项和动态arp表项。
二、ARP表项
三、局域网通信过程
当需要通信的两台主机处于同一网段时,如图1中的Host_1和Host_3,Host_1要向Host_3发送数据。
1. 首先,Host_1会查找自己本地缓存的ARP表,确定是否包含Host_3对应的ARP表项。如果Host_1在ARP表中找到了Host_3对应的MAC地址,则Host_1直接利用ARP表中的MAC地址,对数据报文进行帧封装,并将数据报文发送给Host_3。如果Host_1在ARP表中找不到Host_3对应的MAC地址,则先缓存该数据报文,并以广播方式发送一个ARP请求报文。如图1中所示,OP字段为1表示该报文为ARP请求报文,ARP请求报文中的源MAC地址和源IP地址为Host_1的MAC地址和IP地址,目的MAC地址为全0的MAC地址,目的IP地址为Host_3的IP地址。
2. Switch_1收到ARP请求报文后,将该ARP请求报文在同一广播域内转发。
3. 同一广播域内的主机Host_2和Host_3都能接收到该ARP请求报文,但只有被请求的主机(即Host_3)会对该ARP请求报文进行处理。Host_3比较自己的IP地址和ARP请求报文中的目的IP地址,当两者相同时进行如下处理:将ARP请求报文中的源IP地址和源MAC地址(即Host_1的IP地址和MAC地址)存入自己的ARP表中。之后以单播方式发送ARP应答报文给Host_1,ARP应答报文内容如图1中所示,OP字段为2表示该报文为ARP应答报文,源MAC地址和源IP地址为Host_3的MAC地址和IP地址,目的MAC地址和目的IP地址为Host_1的MAC地址和IP地址。
4. Switch_1收到ARP应答报文后,将该ARP应答报文转发给Host_1。Host_1收到ARP应答报文后,将Host_3的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将数据报文进行帧封装,并将数据报文发送给Host_3。
四、常见arp攻机
ARP协议有简单、易用的优点,但是也因为其没有任何安全机制,容易被攻机者利用。在网络中,常见的ARP攻机方式主要包括:
ARP泛洪攻机,也叫拒绝服务攻机DoS(Denial of Service),主要存在这样两种场景:
设备处理ARP报文和维护ARP表项都需要消耗系统资源,同时为了满足ARP表项查询效率的要求,一般设备都会对ARP表项规模有规格限制。
者就利用这一点,通过伪造大量源IP地址变化的ARP报文,使得设备ARP表资源被无效的ARP条目耗尽,合法用户的ARP报文不能继续生成ARP条目,导致正常通信中断。
攻机者利用工具扫描本网段主机或者进行跨网段扫描时,会向设备发送大量目标IP地址不能解析的IP报文,导致设备触发大量ARP Miss消息,生成并下发大量临时ARP表项,并广播大量ARP请求报文以对目标IP地址进行解析,从而造成CPU(Central Processing Unit)负荷过重。
ARP欺骗攻机,是指攻机者通过发送伪造的ARP报文,恶意修改设备或网络内其他用户主机的ARP表项,造成用户或网络的报文通信异常。
中间人攻机是常见的arp欺骗攻机。
如果:
userA的ip地址是10.0.0.1/24,mac地址是1-1-1
userB的ip地址是10.0.0.2/24,mac地址是2-2-2
userC的ip地址是10.0.0.3/24,mac地址是3-3-3
A要与B通信,则首先广播了arp请求,希望获得10.0.0.2所对应的mac地址,正常情况下,B会回复这个请求,给A一个正确的mac地址2-2-2,而C发现这个ip地址不是自己的,就不会回复,之后A就会把数据封装成帧,发送给B。但是如果此时C是攻机者,就会主动回复A,告诉10.0.0.2所对应的mac地址是3-3-3,从而导致A误以为C就是B。并且假装A给B发送一个ARP请求,但是这个ARP请求中的源ip地址是A的地址,源MAC地址却是自己的,导致B也学习到了错误的arp表项,导致B误以为C就是A。C就像一个中间人,在A和B之间做了数据的二把刀,A和B的所有通信内容都会被C得到,从而实施进一步的动作,比如修改了数据内容,导致A和B之间的数据被篡改。
这让我想到了今年的吴某事件。
2021年7月22日,北京朝阳警方发布调查的情况通报:2020年12月,吴某经纪人以挑选MV女主角面试为由,约都某参加聚会,都某酒后在某家中留宿,两人发生了关系。随后,诈骗嫌疑人(刘某)冒充被吴某欺骗感情的女性骗取都某信任,获取都某手中的交往信息。接着以都某的名义与吴某律师联系协商赔偿,最后再冒充吴某工作室与都某协商赔偿。《法治日报》评论,吴某事件启示在于以事实为依据、以法律为准绳,厘清真相,法律是最有力的定音锤。无论是谁,违法必惩。
这个刘某就是典型的中间人攻机。
五、ARP攻机危害
会造成网络连接不稳定,引发用户通信中断。
利用ARP欺骗截取用户报文,进而非法获取游戏、网银、文件服务等系统的帐号和口令,造成被攻机者重大利益损失。
欢迎关注我的公众号:旁骛OtherThing
以上是关于web安全day17:天天都在说的中间人攻击到底是啥的主要内容,如果未能解决你的问题,请参考以下文章
web安全day18:kali下的两个实验彻底理解中间人攻击