这边博文主要讲一下怎么使用arp欺骗进行流量截获,主要用于已经攻入内网以后,进行流量监听以及修改。

一、什么是arp

    arp协议是以太网的基础工作协议,其主要作用是是一种将IP地址转化成物理地址的协议,在以太网上进行通信的时候并不直接使用ip地址作为主机标识,而是使用MAC地址,也就是物理地址。

    某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

    本地的arp缓存可以通过arp –a命令查看。

二、arp欺骗的工作原理

    假定C想监听A和B之间的通信,那么第一步就是C告诉A,我是B;同时高速B,我是A,这样A和B都会把发给对方的数据发送到C这里。

第二步C对收到的数据进行处理,然后再转发给真正的接收者。

    基本原理非常简单,就上面两句话,但是怎么做到的呢?我稍微详细说一下。

    第一步MAC 地址误导

    C怎么欺骗A,告诉他我才是B呢?

    这就是利用了ARP协议的一个标准请求,大家想一下,如果B想要给A发送数据的时候,如果他不知道A的MAC地址,就会在以太网(可以认为是这个局域网)广播一下,我是B,谁知道A的MAC地址是什么?为什么C不可以伪造这个过程呢?如果C伪造一个请求,在请求里面把IP地址下成B的,但是这个IP地址对应的MAC地址写成C自己的,那么A收到以后自然就会认为B的MAC地址是MAC C了。

    不过这样做有一个问题就是,网络上所有的主机都会形成这种错误认识,这个显然是不行的,因为我就想监听A和B之间的通信,不想监听A和所有主机的通信啊,那么怎么办呢?

    其实也很简单,就是一个小技巧,正常的ARP请求包中,因为不知道对方的MAC地址是什么,所以目的MAC填写的是广播地址FF:FF:FF:FF:FF:FF,这也就导致了所有的人都收的到,因为我们知道A的真实MAC地址是MAC A,所以在以太网帧中的目的MAC填写上MAC A,这样其他主机就会忽略该ARP请求,也就不会干扰其他主机的正常通信。

    同理,C也可以这样欺骗B,告诉它其实A的MAC地址是MAC C。

    第二步 进行包转发

    A和B发给对方的数据包都发到了C这里,那么肯定就不能正常通信,这样A和B就无法进行正常通信了,自然也就没必要进行监听了。

    所有C在收到包以后就必须进行转发,比如收到A发送给B的包以后,再将目的MAC地址修改为B真正的MAC B,然后再发送出去,这样B才能收到。同理对于B给A的数据包也一样。

    这里其实还有一个问题就是我们怎么判断这个数据包是A发送给B的呢?这个可以通过IP头中的目的IP是B和源IP是A来判断。那么会不会出现是A发送给B,但是目的IP不是B的这种情况呢?基本上只有一种例外情况,就是B是网关,那么A发送到外网的IP数据包都要发送到B,但是目的IP却可能是任意IP,不过这个IP地址却一定不是本局域网的IP。

    因此后一种情况可以通过指明B是网关,想监听A的一切外网访问来识别。

 

arp欺骗进行流量截获-1的更多相关文章

  1. arp欺骗进行流量截获-2

    上一篇讲了原理,那么这一篇主要讲如何实现.基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到. ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包 ...

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

    ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析 ...

  3. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )

    一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...

  4. arp协议分析&python编程实现arp欺骗抓图片

    arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...

  5. 利用ARP欺骗进行MITM(中间人攻击)

    ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息 0X01  了解ARP Arp协议 ARP(Address Resolution Protocol,地址解析 ...

  6. Arp欺骗和DNS投毒的实验性分析

    1.中间人攻击之Arp欺骗/毒化 本文涉及网络安全攻击知识,随时可能被永久删除.请Star我的GitHub仓库 实现原理: 这种攻击手段也叫做中间人攻击MITM(Man-in-the-Middle) ...

  7. 网络层主要协议与arp欺骗

    网络层主要协议与arp欺骗 目录 网络层主要协议与arp欺骗 一.网络层(Network Layer) 1.网络层的功能 2.IP数据报(IP Datagram) 二.网络层的主要协议 1.ICMP协 ...

  8. kali Linux 渗透测试 | ARP 欺骗

    目录 ARP 欺骗及其原理 ARP 欺骗实施步骤 必备工具安装 nmap 工具 dsniff 工具 driftnet 工具 ettercap 工具 ARP 欺骗测试 ARP 断网攻击 ARP 欺骗(不 ...

  9. 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息

    ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ...

随机推荐

  1. Avro之一:Avro简介

    一.引言 1. 简介 Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件.在Hadoop的其他项目中例如HBase(Ref)和Hiv ...

  2. PHP实现日志写入log.txt

    引言:有时候调试,看不到效果,需要通过写入文件来实现. 案例: <?php $myfile = fopen("log.txt", "a+") or die ...

  3. 如何准确计算Java对象的大小

    如何准确计算Java对象的大小 原创文章,转载请注明:博客园aprogramer 原文链接:如何准确计算Java对象的大小      有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两 ...

  4. C#之Application.DoEvents()

    Application.DoEvents()的最大作用就是时时响应, 可以看做是个线程的一个封装 private void button1_Click(object sender, EventArgs ...

  5. cpu,io密集型计算概念

    I/O密集型 (CPU-bound) I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CP ...

  6. HDFS的介绍

    设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,te ...

  7. leetcode783

    对BST树进行中序遍历,得到递增序列,然后依次计算相邻两元素之间的差,并保存最小的差. class Solution { public: vector<TreeNode*> V; void ...

  8. Mycat主从模式下的读写分离与自动切换

    1. 机器环境 192.168.2.136 mycat1 192.168.2.134 mydb1 192.168.2.135 mydb2 2在mysql1.mysql2上安装mysql 更改root用 ...

  9. Hbase 一次表异常,有一张表 无法count scan 一直显示重连

    z_activeagent z_weekstore z_wstest zz_monthstore row(s) in 0.5240 seconds => ["KYLIN_02YJ3NJ ...

  10. CentOs登陆输入root作为用户名