arp欺骗进行流量截获-1
这边博文主要讲一下怎么使用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的更多相关文章
- arp欺骗进行流量截获-2
上一篇讲了原理,那么这一篇主要讲如何实现.基本上也就是实现上面的两个步骤,这里基于gopacket实现,我会带着大家一步步详细把每个步骤都讲到. ARP 欺骗 首先就是伪造ARP请求,让A和B把数据包 ...
- ARP欺骗与MITM(中间人攻击)实例
ARP协议(address resolution protocol):地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析 ...
- 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )
一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...
- arp协议分析&python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- 利用ARP欺骗进行MITM(中间人攻击)
ARP欺骗主要骑着信息收集得作用,比如可以利用欺骗获取对方流量,从流量分析你认为重要得信息 0X01 了解ARP Arp协议 ARP(Address Resolution Protocol,地址解析 ...
- Arp欺骗和DNS投毒的实验性分析
1.中间人攻击之Arp欺骗/毒化 本文涉及网络安全攻击知识,随时可能被永久删除.请Star我的GitHub仓库 实现原理: 这种攻击手段也叫做中间人攻击MITM(Man-in-the-Middle) ...
- 网络层主要协议与arp欺骗
网络层主要协议与arp欺骗 目录 网络层主要协议与arp欺骗 一.网络层(Network Layer) 1.网络层的功能 2.IP数据报(IP Datagram) 二.网络层的主要协议 1.ICMP协 ...
- kali Linux 渗透测试 | ARP 欺骗
目录 ARP 欺骗及其原理 ARP 欺骗实施步骤 必备工具安装 nmap 工具 dsniff 工具 driftnet 工具 ettercap 工具 ARP 欺骗测试 ARP 断网攻击 ARP 欺骗(不 ...
- 使用ARP欺骗, 截取局域网中任意一台机器的网页请求,破解用户名密码等信息
ARP欺骗的作用 当你在网吧玩,发现有人玩LOL大吵大闹, 用ARP欺骗把他踢下线吧 当你在咖啡厅看上某一个看书的妹纸,又不好意思开口要微信号, 用arp欺骗,不知不觉获取到她的微信号和聊天记录,吓一 ...
随机推荐
- Avro之一:Avro简介
一.引言 1. 简介 Avro是Hadoop中的一个子项目,也是Apache中一个独立的项目,Avro是一个基于二进制数据传输高性能的中间件.在Hadoop的其他项目中例如HBase(Ref)和Hiv ...
- PHP实现日志写入log.txt
引言:有时候调试,看不到效果,需要通过写入文件来实现. 案例: <?php $myfile = fopen("log.txt", "a+") or die ...
- 如何准确计算Java对象的大小
如何准确计算Java对象的大小 原创文章,转载请注明:博客园aprogramer 原文链接:如何准确计算Java对象的大小 有时,我们需要知道Java对象到底占用多少内存,有人通过连续调用两 ...
- C#之Application.DoEvents()
Application.DoEvents()的最大作用就是时时响应, 可以看做是个线程的一个封装 private void button1_Click(object sender, EventArgs ...
- cpu,io密集型计算概念
I/O密集型 (CPU-bound) I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CP ...
- HDFS的介绍
设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,te ...
- leetcode783
对BST树进行中序遍历,得到递增序列,然后依次计算相邻两元素之间的差,并保存最小的差. class Solution { public: vector<TreeNode*> V; void ...
- Mycat主从模式下的读写分离与自动切换
1. 机器环境 192.168.2.136 mycat1 192.168.2.134 mydb1 192.168.2.135 mydb2 2在mysql1.mysql2上安装mysql 更改root用 ...
- Hbase 一次表异常,有一张表 无法count scan 一直显示重连
z_activeagent z_weekstore z_wstest zz_monthstore row(s) in 0.5240 seconds => ["KYLIN_02YJ3NJ ...
- CentOs登陆输入root作为用户名