ARP欺骗分析

1.arp介绍
    arp:地址解析协议;将IP地址映射为MAC地址。

2.为什么要有arp
    平时上网我们都知道要有一个IP地址才能上网,那arp用来干嘛的呢?如果我们学习过计算机网络,就应该知道,上网需要网络协议-》TCP/IP协议(抽象上)有四层,上三层传输数据需要IP地址传输,最底一层数据传输则需要ARP解析成MAC地址进行传输。

3.简单介绍局域网中两台电脑之间数据传输
    假设:
    源主机 A ip:192.168.1.1
    目标主机 B ip:192.168.1.2
    A要向B发送数据,A如何发给B呢?
    A先通过软件编写好要发送的内容,点击发送 -》解释:此时,电脑将要发送的内容,从软件中(或者可以理解为:软件界面中的文本框中)读取数据,将数据从内存中复制到网卡缓存中,在这期间电脑软件自动将要发送到的目标主机地址(这里的目标主机地址是指IP地址)写好。
    注意:网卡发送到的目标地址是MAC地址(只能发送到MAC地址,网卡属于网络接口层,即最下层,只能接触MAC地址,并不接触IP),但现只知道IP如何知道MAC呢?
    这时就要用arp协议了,这时,网卡向整个局域网发送一个广播:谁是 192.168.1.2?把他的MAC地址告诉192.168.1.1。如果B在局域网中,收到该条广播将自己的IP 地址和广播的IP地址进行比对,如果相同则向A发送一个响应包:我的IP是192.168.1.2,我的MAC 地址是BB-BB-BB-BB-BB-BB。其他主机收到后比对IP,IP不同则忽略广播包。如果B不在局域网中,则广播后无响应,则向该局域网连接的路由器发送请求,得到路由器的MAC地址,将刚才的广播信息发给路由器,路由器再进行转发(这里已经不属于局域网的范畴了,我们不在讨论)。
    为什么要用arp转发?答:局域网由交换机组成(不考虑其他原因,这里仅是为了讲解问题),交换机中存储的MAC地址,A->B发送信息,两台主机如果在一个局域网中,且AB都互相知道对方的IP和MAC,这时,消息从网卡发出(包括地址信息)-》到交换机,交换机从MAC表中查找目标主机的MAC,查找到MAC->端口(端口指的主机网线连接到交换机上的口),将消息转发给这个端口,B网卡收到该消息比对MAC->比对ip->交给软件.(传输层的端口用来表示给那个软件(进程),这里不讨论),最终从A发出的消息被B收到。

4.arp欺骗
    假设:C 攻击者
    这里可以看出在A发送广播的时候,如果C冒充B,则可以将自己MAC告诉A,说我就是192.168.1.2,我的MAC是CC-CC-CC-CC-CC-CC(其实这个MAC地址是C的)。如何伪造这份信息呢?这就要用到内核编程了(之前我也很好奇,如果做到伪造,比如说伪造IP,冒充网关进行DNS欺骗)在我慢慢看书积累的过程中,《Linux网络编程》(第二版)宋敬彬P492,写道在linux内核中的netfilter框架(自行百度这个框架的信息吧),框架中有5个钩子点(钩子:程序在系统处理之前,先让用户程序处理一遍,这个用户程序就是钩子程序),在IP层(arp协议属于ip层)最后一个钩子点处,即数据包即将要通过网卡出去的包,这里进行伪装,发送虚假信息给A。
    这里读者可能又问了,我怎么知道A什么时候发消息给B呢?地址解析协议ARP是有一定时间的,即需要不停的发送,指出,其实每台主机都要维护一个ARP表,这个表就是缓解网络压力,刚发的IP对应的MAC我们先放到这个表中,不需要每次都要发送ARP广播,但不是一直都是固定的ARP信息,因为这里有很多情况出现,比如A关机了/换网卡了等,所有这里虽然有ARP表进行记录,但也是要经常更新滴。所以我们可以主动向A主机发送虚假的ARP信息,A就会以为B-IP对应的MAC就是B的(其实C已经欺骗了A)。A-》B发送信息,其实是发送给了B,这样就完成了ARP欺骗。

时间: 2024-11-06 01:10:46

ARP欺骗分析的相关文章

对一次ARP欺骗分析

一次ARP欺骗 一.   实验目的: 学习使用科来数据包生成器构造一个数据包 通过一次ARP实验,分析ARP报文格式 二.  实验内容: 通过科来数据包生成器在A主机上伪造一个arp数据包,并发送出去,将B主机的网关Mac地址的缓存修改为A的Mac地址. 三.  实验用到的工具 Wireshark.科来数据包生成器.若是在win7.8上还需要科来数据包播放器来发包(科来数据包生成器在win7.8上无法使用发包功能) 四.  实验平台 本次实验我是在虚拟机里面做的,xp系统是我装有数据包生成器的攻

ARP协议-攻击与欺骗分析-交换机工作原理--(精华全篇版)

ARP协议攻击与欺骗分析-交换机工作原理 一:交换机的工作原理 (一):实验拓扑 1:主机A与主机B通信 交换机的工作原理 (1):主机A将一个带有主机A的的ip地址和MAC地址的数据进行封装成帧,向局域网中发送广播. (2):交换机1的接口G0/0/1接收到主机A发送来的数据帧,会立即将数据帧的源MA地 址和接收数据帧的接口G0/0/1记录在它的MAC地址表中.此时的源MAC地址是主机A. (3):交换机这个时候查看自己MAC地址表,看看自己的MAC地址表中是否记录了数据帧的目标MAC地址和默

arp欺骗进行流量截获-2

上一篇讲了原理,那么这一篇主要讲如何实现.基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到. ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包发到我这里来. 利用gopacket 发送一个ARP请求,下面是一个实现函数,可以用来发送一个指定ip地址和mac地址的arp请求. //send a arp reply from srcIp to dstIPfunc SendAFakeArpRequest(handle *pcap.Handle,

中间人攻击之arp欺骗 科普ARP欺骗

中间人攻击之arp欺骗 科普ARP欺骗 A <-> B A中有个ARP Table,每次发包都会在此Table中查找,若找不到,发APR Request包询问.此时若hacker冒充B的MAC,于是A -> hacker. (1)如何清空A中的ARP Table?不然它一查询,直接发包给B. 经过百度: ARP Table采用老化机制,某一行一段时间不用就被删除,提速. hacker大量发ARP包产生大量ARP通信量使通络堵塞,A就找不到B,A必然会发ARP Request包问:B是谁,

ARP欺骗与MITM(中间人攻击)实例

? 主题名称 ARP欺骗与MITM(中间人攻击)实例 ? ? ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解析成MAC地址.ARP协议的基本功能就是通过目标设备的IP地址,来查询目标设备的mac地址. 在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照关系.AR

[c#]记一次实验室局域网的ARP欺骗

起因 某天中午午睡时,笔者被激烈的键盘和鼠标声音吵醒,发现实验室的同学在那边忘我地打LOL,顿觉不爽,于是决定整他一下.想了一下之后觉得就让他掉线一下作为惩罚好了.结合以往的理论知识,大家在同一个局域网中,用ARP欺骗显然是一个好办法,于是就有了本文接下来的故事. ARP欺骗理论 首先先来整理一下关于ARP欺骗的理论知识.ARP欺骗[1](英语:ARP spoofing),又称ARP病毒(ARP poisoning)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术.此种攻击可让攻击

什么是ARP?如何防范ARP欺骗?

http://blog.csdn.net/terryzero/article/details/4092114今天发生了件很奇怪的事,由于我和邻居用路由器共享上网,但今天他一上线,我就上不了网了,经过多方面得寻找资料,发现时我邻居中了ARP病毒. 什么是ARP?     ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址. 什么是ARP欺骗?     从影响网络连接通畅的方式来看,ARP欺

【转】如何判断ARP欺骗?该怎么防护?

因为在进行通信的时候,数据是通过MAC地址与IP地址的对应关系来进行转发的.若其中MAC地址与IP地址对应的关系出错,就会导致数据错误转发,影响正常通信.通过某种手段,来更改MAC与IP地址的对应关系,导致电脑无法正常上网,这就是ARP欺骗. ARP欺骗的现象: a.局域网内频繁区域性或整体掉线,重启计算机或网络设备后恢复正常.当带有ARP欺骗程序的计算机在网内进行通讯时,就会导致频繁掉线,出现此类问题后重启计算机或禁用网卡或重启网络设备会暂时解决问题,但掉线情况还会发生: b.网速时快时慢,极

浮动IP地址(Float IP)与 ARP欺骗技术

浮动IP地址: 一个网卡是可以添加多个IP的. 就是多个主机工作在 同一个集群中,即两台主机以上.每台机器除了自己的实IP外,会设置一个浮动IP,浮动IP与主机的服务(HTTP服务/邮箱服务)绑在一起的.即应用服务在哪台机器上启动,浮动IP也在这台机器上激活,这台机器看上去就有两个IP地址.对于客户端它只需访问浮动IP即可. 即使主机端的机器由于故障发生切换,客户端只要连接上浮动IP,就可以找到主机端的服务. 好处就是一旦其中一台机器不能工作了,可以很快的将服务切换到另外一台主机上.提高系统的冗