一、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:天天都在说的中间人攻击到底是啥相关推荐

  1. 天天都在说的用户画像到底该如何构建?看这篇就够了!

    用户画像(Persona)这个词相信大家早就不陌生了,最早由交互设计之父Alan Cooper提出,是一种通过调研和问卷获得的典型用户特征,主要用于挖掘产品需求与交互设计领域.但我们今天要说的是另一个 ...

  2. 架构设计(6)---Web架构师究竟都要学些什么?

    架构师究竟都要学些什么?具备哪些能力呢?  Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求. ...

  3. 那些天天都在野外钓鱼的人不上班吗,有收入吗?

    你好,我是钓鱼飞飞,很高兴可以回答你的问题,我也是一位常年钓鱼的钓鱼爱好者,特别是今年,几乎一整年都在钓鱼,关于你提出的问题:那些天天都在野外钓鱼的人不上班吗,有收入吗?我来说说自己的看法. 天天在外 ...

  4. layui控制table列长度_layui表头宽度和表格一致_天天都要用的10个word表格技巧,工作再忙都要学会!!......

    Hello,各位叨友们好呀!我是叨叨君~ 说起制作表格可不是Excel的专利,日常工作中,用Word制作表格也是常有的事儿,对于有些小伙伴来说,可能天天都要用,那么,用Word制作表格,有哪些技巧是我 ...

  5. web前端开发面试都喜欢问什么

    web前端工程师通过面试不是件容易的事,作为候选人,通常需要在规定的时间内展示自己能做些什么.作为一名面试官,同样难以在这么短的时间内评估候选人是否适合.对于面试来说,并不存在一刀切的方法,面试官问的 ...

  6. 玩猎魂觉醒久了,发现这游戏越来越肝,天天都在肝防具和武器....

    猎魂觉醒怎么玩?玩猎魂一段时间了,好歹也是参加过游戏二测的人,开始的时候很喜欢这游戏,和队友一起冲向boss的感觉真的特别好.但是最近真的玩不下去了.过来吐槽吐槽我的看法: 1.游戏太肝了,作为学生党 ...

  7. 计算机机箱的dvd结构,天天都在用电脑,你知道电脑主机的组成结构吗?

    原标题:天天都在用电脑,你知道电脑主机的组成结构吗? 电脑主机通常包括 CPU.内存.硬盘.光驱.电源.以及其他输入输出控制器和接口.如 USB 控制器.显卡.网卡.声卡等等. 中央处理器(CPU,C ...

  8. Kali Linux Web 渗透测试秘籍 第八章 中间人攻击

    第八章 中间人攻击 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 中间人(MITM)攻击是一种攻击类型,其中攻击者将它自己放到两方之 ...

  9. 老弟,你连HTTPS 原理都不懂,还给我讲“中间人攻击”,逗我吗...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:leapmie 来源:https://urlify.cn/z ...

  10. (多图)老弟,你连HTTPS 原理都不懂,还给我讲“中间人攻击”,逗我吗...

    HTTPS 随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议.大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL .非对称加 ...

最新文章

  1. mysqlls_mysql基本命令
  2. AI十级「找茬」选手,非这个书生莫属,节后开源!
  3. c++:opencv读图后mat矩阵的基本操作
  4. JZOJ 100046. 【NOIP2017提高A组模拟7.14】收集卡片
  5. 计算机与现代化投稿流程,计算机与现代化投稿须知
  6. XSS跨站脚本(web应用)——会话管理(一)
  7. 【python】用正则表达式进行文字局部替换
  8. Easyui的DateBox日期格式化
  9. vSphereClient向ESXi主机分配许可证
  10. js中字符串类转为日期类,并比较
  11. 多类 SVM 的损失函数及其梯度计算
  12. 来自太阳,爱情的故事,生存和欢乐的影子上升 - 免费节选
  13. 搭建一个简单的服务器
  14. 鼎捷软件ERP,MES等系统构筑制造企业信息化系统
  15. 函数柯里化curry 与合成函数 compose
  16. 打印1000-2000年的闰年
  17. 【凸优化】maximal 与 maximum的不同
  18. Kafka:合理设置分区数
  19. 每天学一点flash(78) flash cs5.5 加载 jpeg-xr 格式
  20. 推荐四款可视化工具,解决99%的可视化大屏需求

热门文章

  1. 计算机ers,读博、国企、互联网公司该如何选择?
  2. 定了!这些高校已公布开学时间
  3. 哈工大SCIR lab带你从头开始了解Transformer
  4. 利用算法识别车厘子与樱桃
  5. 游戏动词和宾语设计案例精选
  6. 无所不在的K.I.S.S——《Unix编程艺术》书评
  7. OLAP(On-line Analytical Processing,联机分析处理)
  8. python 录制网易云登陆_Python爬虫教程,爬取网易云的音乐
  9. mysql连接字符串 .net_.net MYSQL连接字符串参数详细解析
  10. Mysql索引之-cardinality