0%

利用ARP欺骗实现手机抓包

利用ARP欺骗实现手机抓包

什么是ARP协议

地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。ARP最初在1982年的RFC 826(征求意见稿)[1]中提出并纳入互联网标准 STD 37. ARP 也可能指是在多数操作系统中管理其相关地址的一个进程。
ARP是通过网络地址来定位MAC地址。 ARP已经在很多网路层和数据链接层之间得以实现,包括IPv4,Chaosnet, DECnet和Xerox PARC Universal Packet(PUP)使用IEEE 802标准, 光纤分布式数据接口, X.25, 帧中继和异步传输模式(ATM),IEEE 802.3和IEEE 802.11标准上IPv4占了多数流量。
在IPv6中邻居发现协议(NDP)用于代替地址解析协议(ARP)。
–维基百科

ARP基本功能

在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。

正常情况wireshark所抓的包
mark

什么是ARP欺骗

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网上上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线。–维基百科

ARP欺骗原理

ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网络上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到拒绝服务攻击的效果。

简而言之,就是通过发送ARP协议欺骗路由器说我是手机,欺骗手机说我是路由器,将手机发送的包原封不动发给路由器,再把路由器的包发给手机,使流量通过电脑而不察觉。

使用arp欺骗所抓的ARP数据包
mark

原理图
mark

APR欺骗工具

本人使用的环境是Ubuntu19,linux中arpspoof是一个很好用的ARP欺骗工具,安装页非常方便,一句命令即可

1
sudo apt-get install dsniff

以下命令参数后的第一个IP地址是要欺骗的主机,第二个IP地址是你要伪装成的主机,如:

1
2
arpspoof -i eth1 -t 192.168.31.1    192.168.31.220
arpspoof -i eth1 -t 192.168.31.220 192.168.1.1

在使用arpspoof时一定要保证数据包的转发否者相当于ARP攻击使目标终端断网,使用命令:

1
echo 1 > /proc/sys/net/ipv4/ip_forward

接下来就可以使用wireshark来抓包了
本人测试使用fiddler和charles都无法抓到任何包,只能使用wireshark