在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(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

如何嗅闻交换网络和ARP骗子-ARP解释的原则的更多相关文章

  1. ARP/代理ARP

    1.ARP首先讲到ARP,ARP是地址解析协议,它的作用是在以太网环境下,通过3层的IP地址来找寻2层的MAC地址,得到一张ARP缓存表.转发数据的时候根据ARP缓存表来进行传输.下图详细说明数据传输 ...

  2. ARP协议具体解释之Gratuitous ARP(免费ARP)

    ARP协议具体解释之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP.无故ARP.Gratuitous ARP不同于 ...

  3. 【转】busybox分析——arp设置ARP缓存表中的mac地址

    [转]busybox分析——arp设置ARP缓存表中的mac地址 转自:http://blog.chinaunix.net/uid-26009923-id-5098083.html 1. 将arp缓存 ...

  4. ARP协议具体解释之ARP动态与静态条目的生命周期

    ARP协议详细解释之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自己主动加入和删除. q  每一个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉 ...

  5. Linux 命令 - arp: 操作系统的 ARP 缓存

    arp 命令可以查看 ARP 缓存或者手动添加.删除缓存中的条目. 命令格式 arp [-evn] [-H type] [-i if] -a [hostname] arp [-v] [-i if] - ...

  6. ICMP,ARP协议

    ICMP ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制 ...

  7. arp协议简单介绍

    1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议.最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供 ...

  8. Python黑帽编程 3.1 ARP欺骗

    Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...

  9. Python黑客编程ARP欺骗

    Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...

随机推荐

  1. ural1018(树形dp)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题意:给一棵边有权值的二叉树,节点编号为1-n,1是根节点 ...

  2. Driver 初始化顺序

    Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有模块的程序编译到Linux内核中,由do_initcall函数加载 核心进程(/init/main.c)kernel_ini ...

  3. Blob API及问题记录

    接上一篇<js创建下载文件>, 记录核心部分 Blob 的API, >>传送门 , 同时说下使用过程中碰到的一个问题. 先说问题: 用Blob创建后缀为.sql的文件, 内容是 ...

  4. SessionFactory的创建和Session的获得

    1.当我们调用 Configuration config=new Configuration().configure(); 时候Hibernate会自己主动在当前的CLASSPATH中搜寻hibern ...

  5. Android版本铎A梦幻连连看游戏源代码完整版

    我写主代码,没有版权问题,它少量小游戏和应用源代码稍后会陆续上线!哆啦A梦连连看包含了2种游戏模式和60关卡,并能够通过改动配置文件非常方便的实现自行添加新关卡.採用andengine游戏引擎开发,内 ...

  6. sql语句用'in'执行多条语句时候,执行错误的解决方法

    一般报错是出现,无法将nvarchar类型转换为int类型 这是因为 SqlParameter  带参数  是不能用  , 分割的. 第一种解决方法就是  不用 SqlParameter  带参数的s ...

  7. oracle数据库恢复与备份

    一.oracle数据库恢复 1.恢复刚才删除的一条数据 delete from emp e where e.empname='SMITH' select * from flashback_transa ...

  8. 原创教程“ActionScript3.0游戏中的图像编程”開始连载啦!

            经过近两年的不懈努力,笔者的原创教程"ActionScript3游戏中的图像编程"最终在今日划上了完美的句号!这其中记录着笔者多年来在游戏制作,尤其是其中图像处理方 ...

  9. C# 32位程序访问64位系统注册表

    原文:C# 32位程序访问64位系统注册表 我的上一篇文章已经阐述了“32位程序和64位程序在64位平台上读\写注册表的区别”,那么接下来将要回答上篇所留下来的一个问题:32位程序如何访问64位系统注 ...

  10. Portal.MVC

    Portal.MVC Portal.MVC 简介 项目是基于MVC4+EF,带有角色,权限,用户中心及账户相关(登录,注册,修改密码,找回密码等)等基本功能.参考的开源项目nopcommerce,这是 ...