如何嗅闻交换网络和ARP骗子-ARP解释的原则

如何嗅闻交换网络和ARP骗子-ARP解释的原则

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(sniff)不为网络安全是好事,虽然网络管理员能够跟踪数据包,发现 互联网问题,但前提是,如果破坏者使用。在整个网络带来了严重的安全威胁。

至于嗅探(一般指嗅探器可以对流经的网络数据包窃听
  
以太网内的嗅探(一般指嗅探器可以窃听网络上流经的数据包)(sniff)对于网络安全来说并非什么好事。尽管对于网络管理员可以跟踪数据包而且发现

  网络问题,可是假设被破坏者利用的话,就对整个网络构成严重的安全威胁。至于嗅探(一般指嗅探器能够窃听网络上流经的数据包)的优点和坏处就不罗嗦了。

  ARP缓存表

  如果这样一个网络:

  ――――――――――

  | HUB |

  ――――――――――

  | | |

  | | |

  | | |

  HostA HostB HostC

  当中

  A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA

  B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB

  C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC

  如果B是属于一个嗅探(一般指嗅探器能够窃听网络上流经的数据包)爱好者的,比方A机器的ARP缓存:

  C:\>arp -a

  Interface: 192.168.10.1 on Interface 0x1000003

  Internet Address Physical Address Type

  192.168.10.3 CC-CC-CC-CC-CC-CC dynamic

  这是192.168.10.1机器上的ARP缓存表,如果。A进行一次ping 192.168.10.3操作。PING主机C,会查询本地的

  ARP缓存表,找到C的IP地址的MAC地址。那么就会进行传输数据,目的地就是C 的MAC地址。假设A中没有C的ARP记

  录。那么A首先要广播一次ARP请求。当C接收到A 的请求后就发送一个应答,应答中包括有C的MAC地址,然后A接

  收到C的应答。就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。

  因此,本地快速缓存的这个ARP表是本地网络流通的基础,并且这个缓存是动态的。

  集线器网络(Hub-Based)

  非常多网络都是用Hub进行连接的。

数据包经过Hub传输到其它计算机的时候,Hub仅仅是简单地把这个数据包广播

  到Hub的全部port(网络中的一对端其一端输入的电流与还有一端输出的电流是相等的)上。

  这就是上面举例中的一种网络结构。

  如今A须要发送TCP数据包给C。首先,A须要检查本地的ARP 缓存表。查看是否有IP为192.168.10.3即C的ARP记

  录。假设没有那么A将要广播一个ARP请求。当C接收到这个请求后,就作出应答。然后A更新自己的ARP缓存表。并

  且获得与C的IP相相应的MAC地址。这时就传输这个TCP数据包,Ethernet帧中就包括了C的MAC地址。当数据包传输

  到HUB的时候,HUB直接把整个数据包广播到全部的port(网络中的一对端其一端输入的电流与还有一端输出的电流是相等的),然后C就行接收到A发送的数据包。

  正由于HUB把数据广播到全部的port(网络中的一对端其一端输入的电流与还有一端输出的电流是相等的),所以计算机B也可以收到A发送给C的数据包。这正是达到了B嗅探的目的。

  因此,Hub-Based的网络基本没有安全可言。嗅探(一般指嗅探器能够窃听网络上流经的数据包)在这种网络中很easy。

  交换网络(Switched Lan)

  交换机用来取代HUB,正是为了可以解决HUB的几个安全问题,当中就是可以来解决嗅探(一般指嗅探器可以窃听网络上流经的数据包)问题。Switch不是把数

  据包进行port(网络中的一对端其一端输入的电流与还有一端输出的电流是相等的)广播。它将通过自己的ARP缓存来决定数据包传输到那个port(网络中的一对端其一端输入的电流与还有一端输出的电流是相等的)上。因此。在交换网络上。假设把上面

  样例中的HUB换为Switch,B就不会接收到A发送给C的数据包。即便设置网卡为混杂模式。也不能进行嗅探(一般指嗅探器能够窃听网络上流经的数据包)。

  ARP欺骗( ARP spoofing)

  ARP协议并不仅仅在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存

  进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此。在上面的如果网络中,B向A发送一个自己伪造的ARP应

  答。而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址)。MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地

  址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不

  知道被伪造了)。

  如今A机器的ARP缓存更新了:

  C:\>arp -a

  Interface: 192.168.10.1 on Interface 0x1000003

  Internet Address Physical Address Type

  192.168.10.3 DD-DD-DD-DD-DD-DD dynamic

  这可不是小事。

局域网的网络流通可不是依据IP地址进行。而是依照MAC地址进行传输。如今192.168.10.3的

  MAC地址在A上被改变成一个本不存在的MAC地址。

如今A開始Ping 192.168.10.3,网卡递交的MAC地址是

  DD-DD-DD-DD-DD-DD。结果是什么呢?网络不通。A根本不能Ping通C!!

  这就是一个简单ARP骗子。

本文来源于 中国的网络协议分析|www.cnpaf.net 原文链接:http://www.cnpaf.net/Class/arp/201111/26040.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117054.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 上位机软件系统开发工具简介

    上位机软件系统开发工具简介1、微软基础类库(MFC)简介本系统上位机软件设计是基于MFC进行开发的,MFC(MicrosoftFoundationClasses)是微软基础类库的简称,提供了基于C++语言的面向对象编程的框架,软件工程师可以使用该框架开发Windows应用程序。本系统采用MFC作为上位机软件开发工具,主要原因是:(1)MFC使用C++作为底层编写语言,并对大多数常用的WindowsAPI进行了类的封装,并以成员函数或变量的形式开放接口供用户使用,这对在Windows系…

  • Oracle数据库增删改查

    Oracle数据库增删改查1、查询SELECT由于之前安装的oracle数据库中选择了生成示例方案,oracle默认提供了三张数据表,分别是(emp,dept,salgrade)此时数据显得很乱,我们可以通过设置显示的宽度以及每页显示的数据SETLINESIZE300;SETPAGESIZE30;emp表dept表salgrade表在编写SQL语句的时候需注意一个规则:关键字使用大写字母,…

  • 虚拟GPU_vmware gpu

    虚拟GPU_vmware gpu本系列文章推送门:阿里云郑晓:浅谈GPU虚拟化技术(第一章)GPU虚拟化发展史阿里云郑晓:浅谈GPU虚拟化技术(第二章)GPU虚拟化方案之——GPU直通模式今天一个小伙伴@我说:“你浅谈一下,没点技术背景的,估计都看不懂…”,醍醐灌顶啊,面向公众的文章不是学术论文,应以普及基本概念为主。所以我决定在接下来的文章力求写的让吃瓜群众能看懂,专业人士能读完也会有很大感触和启迪。至于技术细节,大致…

  • getopt函数[通俗易懂]

    getopt函数[通俗易懂]getopt函数函数说明getopt–解析命令的可选项getopt只是一个简单的解析命令可选项的函数,只能进行简单的格式命令解析,格式如下:对短选项的解析:cmd[-a][-b]对短选项及短选项的参数解析:cmd[-aa_argument][-bb_argument]选项a的参数也是可选的情况解析:cmd[-a[a_argument]]函数原型#include&…

  • 卸载奇安信天擎_奇安信天擎怎么卸载干净

    卸载奇安信天擎_奇安信天擎怎么卸载干净卸载奇安信

  • Qt多线程实例与connect第五个参数[通俗易懂]

    Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimeret;…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号