题记
【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
欺骗攻击分为如下 两种:
-
主机型
ARP
欺骗
欺骗者 主机冒充 网关设备 对 其他主机 进行欺骗 -
网关型
ARP
欺骗
欺骗者 主机冒充 其他主机 对 网关设备 进行欺骗
其实很多时候,攻击者都是进行 双向欺骗,既 欺骗主机 又 欺骗网关。
Coding
-
构造网络中活动主机的
IP
和MAC
映射
可以通过上篇分享的ARP
探测发现网络中活动主机的IP
和MAC
-
构造
ARP
欺骗数据包
我们需要导入scapy
- get_if_hwaddr
为获取本机网络接口的函数 - getmacbyip
是通过ip地址获取其Mac地址的方法 - ARP
是构建ARP数据包的类 - Ether
用来构建以太网数据包 - sendp 在第二层发送数据包的方法
关于各个数据包构造的参数,本文就不在继续啰嗦啦,请参考arp探测
- 定向欺骗
现在来构造数据包就很容易了,我们可以随机选择一个区域网的主机进行毒化。告诉192.168.3.5
这台 主机 网关地址为192.168.3.17
所在的主机,构造的 数据包 应该是这样的: 上面的代码我们不论是以太网数据包还是ARP
数据包,我们都明确指定了 来源 和 目标,在ARP
数据包中,我们将3.17
的Mac
地址和网关的IP
地址进行了绑定,op 取值为 2,作为一个 响应包 被3.5
接到,这样3.5
会更新自己的ARP
缓存表,造成 中毒 ,从而3.5
发往网关的数据包都会被发往3.17
。
那么我们如果要 欺骗网关,只需要将3.5
和3.17
的IP
和MAC
分别改为网关和欺骗主机的IP
和MAC
,根据上面的代码稍作修改即可:
ARP
响应包,其实发送
请求 包也可以进行毒化,请求包毒化的
原理 是,我们请求时候使用假的源
IP
和
MAC
地址,目标主机同样会更新自己的
ARP表。
ARP 请求的方式欺骗主机,构造的ARP
包如下:
我们看到构造ARP
请求和响应的主要区别在 op 的值。
目前我们欺骗的方式都是 一对一 欺骗的,事实上我们可以发送 广播 包,对 所有主机 进行欺骗。
-
广播欺骗
广播欺骗,首先以太网数据包直接构造一个广播包,ARP
包不用填写 目标主机 的信息即可。下面是
最后综合定下和广播欺骗的方式,我们总结一个公式出来:ARP
广播响应包的构造方式: -
发送数据包
和
数据包构造完成之后,我们要做的就是发送了,发送数据包这里我们使用sendp
方法,该方法描述如下:sendp
方法类似的还有一个send
方法,两个方法不同的是,sendp
方法工作在第二层,send
方法工作在第三层。发送构造好的数据包就很简单了: -
ARPSPOOF
其实Kali Linux
上有一款常用的ARP
欺骗工具叫arpspoof
。
笔者会专门开设一个专题专门讲这些工具的使用,工具的使用都是script kiddie
,授之于鱼不如授之于渔,明白原理永远才是 王道。
关注笔者公众账号[mindev],并回复arp欺骗,就能得到毒化源码哟~~
愿意与大家分享交流各种技术,个人公众账号[mindev],以及 知识星球[ 极客世界 ]
欢迎订阅公众账号,日更哟~~~