如何嗅闻交换网络和ARP骗子-ARP解释的原则
在嗅探以太网(一般指嗅探器可以对流经的网络数据包窃听)(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解释的原则的更多相关文章
- ARP/代理ARP
1.ARP首先讲到ARP,ARP是地址解析协议,它的作用是在以太网环境下,通过3层的IP地址来找寻2层的MAC地址,得到一张ARP缓存表.转发数据的时候根据ARP缓存表来进行传输.下图详细说明数据传输 ...
- ARP协议具体解释之Gratuitous ARP(免费ARP)
ARP协议具体解释之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP.无故ARP.Gratuitous ARP不同于 ...
- 【转】busybox分析——arp设置ARP缓存表中的mac地址
[转]busybox分析——arp设置ARP缓存表中的mac地址 转自:http://blog.chinaunix.net/uid-26009923-id-5098083.html 1. 将arp缓存 ...
- ARP协议具体解释之ARP动态与静态条目的生命周期
ARP协议详细解释之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自己主动加入和删除. q 每一个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉 ...
- Linux 命令 - arp: 操作系统的 ARP 缓存
arp 命令可以查看 ARP 缓存或者手动添加.删除缓存中的条目. 命令格式 arp [-evn] [-H type] [-i if] -a [hostname] arp [-v] [-i if] - ...
- ICMP,ARP协议
ICMP ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制 ...
- arp协议简单介绍
1. 什么是ARP? ARP (Address Resolution Protocol) 是个地址解析协议.最直白的说法是:在IP以太网中,当一个上层协议要发包时,有了该节点的IP地址,ARP就能提供 ...
- Python黑帽编程 3.1 ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
- Python黑客编程ARP欺骗
Python灰帽编程 3.1 ARP欺骗 ARP欺骗是一种在局域网中常用的攻击手段,目的是让局域网中指定的(或全部)的目标机器的数据包都通过攻击者主机进行转发,是实现中间人攻击的常用手段,从而实现数据 ...
随机推荐
- leetcode - Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- 在maven仓库中查找jar
findmaven.net是一个查找Jar和查找Maven的Maven仓库搜索引擎,它能够依据Java开发人员提供的Class名或者Jar名找到包括它的Jar.同一时候提供Jar的Maven仓库链接. ...
- 一般报java.lang.NullPointerException的原因有以下几种
一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化: ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = ...
- Spark1.0.0 属性配置
1:Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项,而且能够单独为每一个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: Sp ...
- poj1260
给定n类等级的珍珠 每类的珍珠都有需求的个数ai,和价格pi 为了防止游客只买1颗珍珠,所以购买ai个珍珠时,要加上10个的价格 即(ai+10)*pi 有时,购买高等级的珍珠代替低等级的珍珠时,可能 ...
- HDU1194_Beat the Spread!
Beat the Spread! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 递归算法的数据结构和算法 C++和PHP达到
递归算法:它是一种间接的方法调用本身,直接或. 实施过程:按功能或子程序完成.在函数编写代码或子程序直接或间接拥有被称为.你可以完成递归. (相同类型的问题,子问题到最小问题有已知条件,然后来求解,然 ...
- 【剑指offer】两个队列实现堆栈
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25076689 题目:用两个队列模拟一个栈,即用两个队列的出队和入队操作.来实现栈的 ...
- Oracle SQL Lesson (10) - 使用DDL语句创建和管理表
数据库对象TableViewSequenceIndexSynonym 对象名称最长30个字符,不能与当前用户下其他对象重名.create table "select" as sel ...
- [ios仿系列]仿支付宝手势解码
呀~.这么快就转到ios阵营了???.android还有那么多坑呢???为此我也仅仅能啃着馒头留下屈辱的眼泪了. . 本次因为开发公司产品的android版,继而ios版也负责一部分.当中一部分就是手 ...