渗透&&探测 (之ARP毒化篇)

1,565 阅读4分钟

题记

【PS:本实验都是在虚拟环境下进行,非真实环境,恶意攻击是违法的】

  • hacker
    A hacker is any highly skilled computer expert.
  • script kiddie
    A script kiddie is an unskilled individual who uses scripts or programs developed by others to attach computer systems and networks and deface websites

上期回顾

  通过上期分享,我们已经了解了ARP协议其实就是 映射 逻辑地址物理地址数据链路层 协议,它是工作在 操作系统 内核之中的。
  它有非常大的 安全漏洞 ,以太网中的 任意 一台主机,如果收到一个 ARP应答报文,即使该报文不是该主机 所发送ARP 请求的 应答报文,该主机也会将ARP报文中的发送者的MAC地址和IP地址更新或加入到ARP高速缓存中。

ARP欺骗

  ARP 欺骗攻击就利用了 这点,攻击者主动发送ARP回复报文,发送者的MAC地址为攻击者主机的MAC地址,发送者的IP地址为被攻击主机的IP地址。
  通过不断发送这些 伪造ARP报文,让 以太网 上所有的主机和网关ARP表,其对应的MAC地址均为攻击者的MAC地址,这样所有的 网络流量 都会发送给 攻击者主机。由于ARP欺骗攻击导致了主机和网关的ARP表的 不正确,这种情况我们也称为ARP毒化

  根据ARP 欺骗者被欺骗者 之间的角色关系的不同,通常可以把ARP 欺骗攻击分为如下 两种

  1. 主机型ARP欺骗
    欺骗者 主机冒充 网关设备其他主机 进行欺骗

  2. 网关型ARP欺骗
    欺骗者 主机冒充 其他主机网关设备 进行欺骗

arp

  其实很多时候,攻击者都是进行 双向欺骗,既 欺骗主机欺骗网关

Coding

  1. 构造网络中活动主机的IPMAC映射
    可以通过上篇分享ARP探测发现网络中活动主机的IPMAC

    ip-mac

  2. 构造ARP欺骗数据包
    我们需要导入scapy

    scapy

  • get_if_hwaddr
    为获取本机网络接口的函数
  • getmacbyip
    是通过ip地址获取其Mac地址的方法
  • ARP
    是构建ARP数据包的类
  • Ether
    用来构建以太网数据包
  • sendp 在第二层发送数据包的方法

关于各个数据包构造的参数,本文就不在继续啰嗦啦,请参考arp探测

  1. 定向欺骗
    现在来构造数据包就很容易了,我们可以随机选择一个区域网的主机进行毒化。告诉192.168.3.5这台 主机 网关地址为192.168.3.17所在的主机,构造的 数据包 应该是这样的:
    arp
    上面的代码我们不论是以太网数据包还是ARP数据包,我们都明确指定了 来源目标,在ARP数据包中,我们将3.17Mac地址和网关的IP地址进行了绑定,op 取值为 2,作为一个 响应包3.5接到,这样3.5会更新自己的ARP缓存表,造成 中毒 ,从而3.5发往网关的数据包都会被发往3.17

那么我们如果要 欺骗网关,只需要将3.53.17IPMAC分别改为网关和欺骗主机的IPMAC,根据上面的代码稍作修改即可:

arp
上面构造的两个数据包都是ARP响应包,其实发送 请求 包也可以进行毒化,请求包毒化的 原理 是,我们请求时候使用假的源IPMAC地址,目标主机同样会更新自己的 ARP表

ARP 请求的方式欺骗主机,构造的ARP包如下:

arp

我们看到构造ARP请求和响应的主要区别在 op 的值。

目前我们欺骗的方式都是 一对一 欺骗的,事实上我们可以发送 广播 包,对 所有主机 进行欺骗。

  1. 广播欺骗
    广播欺骗,首先以太网数据包直接构造一个广播包ARP包不用填写 目标主机 的信息即可。

    下面是ARP广播响应包的构造方式:

    arp
    最后综合定下和广播欺骗的方式,我们总结一个公式出来:
    arp

  2. 发送数据包
    数据包构造完成之后,我们要做的就是发送了,发送数据包这里我们使用sendp方法,该方法描述如下:

    sendp
    sendp 方法类似的还有一个send方法,两个方法不同的是,sendp方法工作在第二层,send方法工作在第三层。发送构造好的数据包就很简单了:
    sendp

  3. ARPSPOOF
    其实Kali Linux上有一款常用的ARP欺骗工具叫arpspoof
    笔者会专门开设一个专题专门讲这些工具的使用,工具的使用都是script kiddie,授之于鱼不如授之于渔,明白原理永远才是 王道

  关注笔者公众账号[mindev],并回复arp欺骗,就能得到毒化源码哟~~

  愿意与大家分享交流各种技术,个人公众账号[mindev],以及 知识星球[ 极客世界 ]

geeker
           欢迎订阅公众账号,日更哟~~~