arpspoof - 拦截交换局域网上的数据包
概要
arpspoof [-i 接口] [-c own|host|both] [-t target] [-r] host
描述
arpspoof 通过伪造 ARP reply ,拦截 并 重定向 LAN 内 target
主机(或所有主机)发往网络中其他主机的数据包。
需要提前开启内核 IP 转发(或实现相同功能的用户态程序,例如 fragrouter(8))。
选项
-
-i interface
- 指定要使用的网络 接口 。
-
-c own|host|both
指定在恢复 ARP 配置时使用的硬件地址;- own(自身):
- 作用:使用 arpspoof 工具 自身 的 MAC 地址来发送 ARP 数据包。
- 原理:在清理阶段,arpspoof 会发送 ARP 数据包来恢复网络中的正常 ARP 表项。使用自身 MAC 地址可能会被一些网络设备识别为异常行为。
- host(主机):
- 作用:使用
host
的 MAC 地址来发送 ARP 数据包。 - 原理:这种方法模仿了合法主机的行为,可能更不容易被检测到。但是,使用其他设备的 MAC 地址可能违反某些网络策略。
- 作用:使用
- both(两者):
- 作用:同时使用 arpspoof 自身 的 MAC 地址和
host
的 MAC 地址来发送 ARP 数据包。 - 原理:这种方法结合了上述两种方式的优点,增加了成功清理的可能性,但也可能增加被检测的风险。
- 作用:同时使用 arpspoof 自身 的 MAC 地址和
- 使用 “own” 更 安全 ,因为它不会冒充其他设备,但可能更容易被检测。
- 使用 “host” 可能 更难被检测 ,但在某些网络配置中可能会造成连接问题。
- 使用 “both” 提供了一个折中的方案,增加了成功率,但也增加了复杂性。
使用伪造的硬件地址发送数据包可能会干扰某些 Switch/Ap/Bridge 配置的网络连接。但比使用自己的地址(默认的清理方式)更可靠。
- own(自身):
-
-t target
指定要进行 ARP 欺骗的 目标 主机(如果未指定,则针对 LAN 上的所有主机)。 可重复使用以指定多个主机。 -
-r
同时对两个主机host
和target
进行欺骗,以 捕获双向流量 。(仅在与 -t 选项一起使用时有效) -
host
必须
指定你想要拦截数据包的主机(通常是本地网关)。
欺骗到底骗了什么?
假设局域网中有 3台 主机,2台正常用户,1台攻击者
10.10.10.1 // 小明
10.10.10.2 // 小红
10.10.10.9 // 小王
小王想知道小明给小红说了什么
于是小王骗小明说: “小明,小明,我是小红,我是小红!”
小明于是对小王说: “小红,小红,我喜欢尼,做我铝盆友”
这就是单向欺骗
现在,小王不满足了,他想知道小红会是什么回应
于是小王又欺骗小红说: “小红,小红,我是小明,我是小明!”
然后将小明的话告诉小红: “小红,小红,我喜欢尼,做我铝盆友”
小红一听,对小明(小王)说: “你是个好人~”
小王知道了小红不喜欢小明,又将小红的话告诉小明: “你是个好人~”,小明哭晕在厕所…
这就是双向欺骗
arpspoof 示例
单向欺骗
欺骗 LAN 上的所有主机
arpspoof ip1
kali 发广播 说 ip1 is kali
局域网上所有发往 ip1
的数据包都会发往 kali
欺骗一个目标
arpspoof -t ip1 ip2
kali 对ip1 说 ip2 is kali
ip1
发往 ip2
的数据包都会发往 kali
欺骗多个目标
arpspoof -t ip1 -t ip2 ip3
kali 对ip1 说 ip3 is kali
kali 对ip2 说 ip3 is kali
ip1
和 ip2
发往 ip3 的数据包都会发往
kali`
双向欺骗
欺骗一个目标
arpspoof -t ip1 -r ip2
kali 对ip1 说 ip2 is kali
kali 对ip2 说 ip1 is kali
ip1
发往 ip2
的数据包都会发往 kali
ip2
发往 ip1
的数据包都会发往 kali
欺骗多个目标
arpspoof -t ip1 -t ip2 -r ip3
kali 对ip1 说 ip3 is kali
kali 对ip3 说 ip1 is kali
kali 对ip2 说 ip3 is kali
kali 对ip3 说 ip2 is kali
ip1
发往 ip3
的数据包都会发往 kali
ip3
发往 ip1
的数据包都会发往 kali
ip2
发往 ip3
的数据包都会发往 kali
ip3
发往 ip2
的数据包都会发往 kali