今天BOSS让我总结ARP欺骗的原理和防范策略,在这里把总结的结果贴出来吧。求人品,求速转正。

ARP原理:
在局域网内部,各主机之间以MAC地址作为标识通信对象的标志。然而,有时通信发起的主机并不知道目标主机的MAC地址,仅知道其IP地址。ARP协议就是将IP地址转换MAC地址的协议。

主机A要向主机B发起通信,先本地的ARP缓存表,如果找到了B的IP地址对应的MAC地址,就会使用MAC B进行数据传输。如果未找到,则A广播一个ARP Request报文(携带主机A的IP地址IPa和物理地址MACa),请求IP地址为IPb的主机B的物理地址MACb。同一局域网内的所有主机包括B都收到ARP Request报文,但只有主机B发现报文中的目的IP,即IPb,是本机的IP地址。于是向A主机发回一个ARP Reply报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据。
因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。ARP缓存表采用老化的机制,在一段时间里表中的某一个表项没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询的速度。

ARP欺骗原理:
黑客C经过收到A发出的ARP Request广播报文,能够偷听到A的 (IP, MAC) 地址, 黑客C就伪装为B,告诉A (受害者) 一个假MAC地址(这个假地址是C的MAC地址),使得A在发送给B的数据包都被黑客C截取,而A, B 浑然不知。

欺骗种类:

1、截获网关发出的数据。
欺骗源通过ARP报文通知网关一系列错误的内网MAC-IP地址关系,并按照一定的频率不断进行,使网关的ARP缓存表中不能保存正常的地址信息中,结果网关的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。
2、伪造网关
欺骗源把自己伪装成网关,向局域网内的主机发送ARP应答或免费ARP报文。使得局域网内的主机误以为欺骗源的MAC是网关MAC地址。使得原本流向网关的数据都被错误地发送到欺骗源。
3、伪造主机
欺骗源C把自己伪装成局域网内的另一台主机B,使得局域网内发往B的报文都流向了C。伪造主机的过程与伪造网关类似。
4、跨网段的ARP攻击
把ARP欺骗与ICMP重定向相结合。假设A,B在同一网段,C在另一网段,C要欺骗A,自己是B。C发送一个TIP为A,SMAC为C,SIP为B的ARP应答报文到网关,网关会把MACc---IPb的对应关系学习到自己的ARP缓存表中,同时把ARP应答转发到A。A更新自己的ARP缓存 IPb --- MACc, A要向IPb发送报文时,网关发现IPb不在与A同一网段内,而在C所在的网段,于是发送ICMP重定应报文给A,告诉A“IPb的不在同一网段内,下一跳为网关”,A在自己的路由表中添加一个表项,把IPb的报文都发往路由器。这样C就能截获A发往B的报文。

防范技术:
1、在网关和主机上设备静态ARP表项,这样欺骗ARP报文携带的信息与静态表项不同,会被忽略。
仅适合于小规模局域网,不适合于DHCP

2、在交换机上限制每个端口的ARP表项数量。端口上仅能够学习有限数量的ARP表项。如果设置为1,则只允许一个ARP表项被学习,伪装的MAC地址就无法通过交换机。对上述[欺骗种类1]比较有较。

3、与DHCP结合
DHCP snooping的过程中,会建立DHCP表项,主机的的IP以及用户MAC、VID、PORT、租约时间等信息组成用户记录表项,从而形成DHCP Snooping 的用户数据库。DHCP可以很清楚地知道给哪个MAC分配了哪个IP。
交换机收到ARP报文时,将收到ARP报文的源IP、源MAC、端口号、VLAN ID信息同DHCP-Snooping数据库的用户信息进行匹配。如果一致则认为合法ARP报文,按既有流程处理;否则视为非法ARP报文,丢弃处理。


4、在交换机端收集所有ARP报文信息,一但MAC和对应的IP有变动,发出警告。







ARP欺骗,骗你没商量的更多相关文章

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

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

  2. 防止ARP欺骗的方法!!!

    防止ARP欺骗的方法!!! 根据鄙人上网经常掉线,怀疑可能是某人使用网络剪刀手,网络执行官,局域网终结者等工具.经过搜索有关资料,有了一点点防范经验,借以参考~! 一 首先我们来了解下这类攻击工具的原 ...

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

    起因 某天中午午睡时,笔者被激烈的键盘和鼠标声音吵醒,发现实验室的同学在那边忘我地打LOL,顿觉不爽,于是决定整他一下.想了一下之后觉得就让他掉线一下作为惩罚好了.结合以往的理论知识,大家在同一个局域 ...

  4. arp欺骗技术

      ARP欺骗技术-获取内网目标IP访问图片!   简介: ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析 ...

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

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

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

    中间人攻击之arp欺骗 科普ARP欺骗 A <-> B A中有个ARP Table,每次发包都会在此Table中查找,若找不到,发APR Request包询问.此时若hacker冒充B的M ...

  7. 一篇故事讲述了计算机网络里的基本概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等...

    计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关.当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声 ...

  8. kali系统:局域网arp欺骗, 搞定任意windows计算机

    目的 通过Arp欺骗, 给局域网内的所有用户网页中植入木马, 只要用户运行以后, 就会反弹一个shell到我们计算机 准备 kali系统 metaspolit的使用 Arp欺骗工具:bettercap ...

  9. ARP欺骗配置及演示过程

    目录 环境 软件 网络拓扑图 配置流程 配置构思 具体流程 问题 演示过程 状态 检查Attack前centOS7_1的ARP地址表 在kali上输入以下命令发动攻击 此时查看centOS7_1的AR ...

随机推荐

  1. 【剑指offer】字符串转整数

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/28015693 题目描写叙述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函 ...

  2. android随记

    [Android]中国大部分城市地区的结构定义与按拼音排序  http://blog.csdn.net/sodino/article/details/6739522

  3. telerik 控件 SCRIPT5007: 无法获取未定义或 null 引用的属性“documentElement” (IE 文档模式)

    IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有 ...

  4. NProxy——Mac和Linux平台下的Fiddler

    Fiddler 相信大家,尤其是前端工程师们都知道. 用它的文件替换功能,将线上的静态资源文件(JS.CSS.图片)替换为本地相应的文件,来调试线上(代码都被压缩过)UI的问题.的确是一神器.(相比, ...

  5. ORA-01092 ORA-12432: LBAC error: zllegnp:OCIStmtExecute 故障一例

    最近由于数据库hang住,无奈之下直接干掉了pmon进程,再次启动的时候收到了ORA-01092: ORACLE instance terminated. Disconnection forced以及 ...

  6. cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示

    1.先定义坦克的一些属性 class Tank : public CCSprite { public : Tank(); ~Tank(); static Tank* createTankWithTan ...

  7. 在VC++中使用Tab Control控件

    系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用 查阅MSDN文档,对于创建T ...

  8. Swift - 添加、修改、删除通讯录联系人

    使用AddressBook.framework框架,我们除了可以很方便的获取通信录里的联系人.同时,还能对通讯录进行新增.修改.删除联系人操作. (注意:这些操作同查询一样,首先需要发起授权请求) 1 ...

  9. 不包含SDK头文件, 补全API定义

    /// @file main.cpp /// @brief 不包含SDK头文件, 补全API定义 #ifdef __cplusplus extern "C" { #endif /* ...

  10. Linux主机上发布java web应用

    1.链接远程主机命令 ssh user@hostname 如: shh root@192.168.1.1 2.查看主机操作系统版本 uname -a 3.linux系统安装mysql a)检查是否安装 ...