zoukankan      html  css  js  c++  java
  • 简记 ARP 和 ARP攻击

    1.

    ARP = 询问局域网内的各个主机某 IP对应的机子的MAC是多少

    ARP 请求帧的MAC会是FFFFFFFF,表示待寻找。

    IP地址为A , 硬件地址为a 的主机,找IP地址为 B 的主机( 硬件地址为b ),但是A的缓存表中没有特定条目,即没有 B - b 的缓存条目。

    于是A发送 一条ARP信息 : 源IP = A    源MAC = a ; 目的IP = B   目的MAC = FFFFFFFF  类型是ARP request

    B收到之后 在本机的ARP缓存中存 A - a 记录。表示知道IP为A的主机的MAC地址是a。

    并且发出 一条ARP信息: 源IP = B 源MAC = b;目的IP = A   目的MAC = a  类型是ARP reply

    A收到之后 在本机的ARP缓存中存 B - b 记录。表示知道IP为B的主机的MAC地址是b。

    以后向B通信就可以在 MAC帧中把 b 当作目标MAC地址包进去。

    2.

    ARP攻击

    上述过程如果有一台黑客的机子 C 要冒充 B 的话

    C打开网卡的混合模式(Linux 通过 ifconfig 网卡名 promisc 指令打开混合模式,还没试过能不能达到效果)

    在A发送ARP request之后,即使C的IP不是 B,C也会对A的 ARP request 做出反应。

    具体是回复一条ARP信息 : 源IP = B  源MAC = c(C的MAC地址)  目的IP = A  目的MAC = a

    A接收到这条假的ARP信息,就会把 B - c 这条记录存在ARP缓存中

    如果A,B,C 之间是通过一条交换机链接的话,交换机会记下MAC地址对应的端口。

    C发送上述的这条伪装的ARP信息之后,交换机就会记录下c对应的端口是通向C的。

    以后只要A访问IP地址B,就会根据A上的ARP缓存,指定MAC地址是 c,而交换机又记录了 c 的端口是通向 C的,所以信息都会发送给C。

    B得不到A发送的信息。上述即ARP攻击,同理,对B也可以发起同样的攻击。这样的话,相当于C在A,B两者之间充当一位代理。

    掌控A和B之间通信的内容。如果通信的内容没有加密的话,C可以根据内容,在A,B两者之间建立起看似正常的会话。

  • 相关阅读:
    Maven的pom文件依赖提示 ojdbc6 Missing artifact,需要手动下载并导入maven参考
    Maven全局配置文件settings.xml详解(转)
    SpringBoot -- 项目结构+启动流程
    64匹马,8个赛道,找出前4名最少比赛多少场?——最快10次,最慢11次;
    Spring家族主流成员介绍
    java 中文与unicode互转
    Netty的Marshalling编解码器
    解决svn迁移过程中出现:SVN Error: is not the same repository as的问题
    netty入门实例
    Dubbo的使用及原理
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/13253990.html
Copyright © 2011-2022 走看看