你还敢随便连接公共WIFI吗?

2021-08-05 00:00:00 数据 地址 攻击 路由器 以太网

以下文章来源于Linux内核那些事 ,作者songsong001  

平时我们都喜欢连接公共的免费 WIFI,其实公共 WIFI 是非常危险的。因为黑客可以连接到公共 WIFI,然后使用 ARP欺骗 的攻击手法来获取到你所有的上网数据。

本文主要介绍怎么使用 ARP欺骗 来入侵公共 WIFI,让大家知道使用公共 WIFI 的危险。

注意:本文只用于技术交流,请勿用于恶意用途。

上网的过程

一般来说,我们使用手机上网都需要连接无线路由器(WIFI),如下图:

从上图看出,我们上网都需要连接到路由器,而且所有的数据都需要经过路由器。

那么,手机是怎样通过路由器把数据发送出去呢?

手机要把数据发送到互联网,首先需要把要发送的数据打包成 以太网帧,然后再把 以太网帧 发送给路由器,路由器收到 以太网帧 后,会把此 以太网帧 发送出去。以太网帧 由 以太网头部 和 数据 部分组成,如下图:

从上图可以看到,以太网协议 的头部由 源MAC地址目标MAC地址 和 上层协议类型 组成,MAC地址 就是指机器(手机)网络接口的物理地址,比如手机可以从无线局域网信息中查看,如下图所示:

源MAC地址 就是我们手机的 MAC 地址,而 目标MAC地址 就是路由器的 MAC 地址。如下图所示:

但通常来说,路由器的 MAC 地址我们是不知道的,需要通过 ARP协议 来获取路由器的 MAC 地址。ARP协议 的功能就是通过目标机器的 IP地址 来获取其 MAC地址,所以我们只需要知道路由器的 IP地址 即可通过 ARP协议 来获取其 MAC地址

ARP协议 在之前的文章介绍过:ARP协议,所以这里就不再作介绍。

ARP欺骗原理

从上面的分析可知,手机要上网首先要连接到路由器,然后把要发送的数据包打包成 以太网帧,再把 以太网帧 发送给路由器。

以太网帧 需要知道路由器的 MAC地址,但通常来说我们只知道路由器的 IP地址(通常路由器的 IP地址 为 192.168.1.1),所以需要通过 ARP协议 把 IP地址 转换成 MAC地址

ARP欺骗 就是通过使用 ARP协议 把路由器的 IP地址 转换成 中间人机器 的 MAC地址,如下图所示:

从上图可以看出,电脑A发送了一个 ARP消息 给手机A,告诉它 IP地址 为 192.168.1.1 的 MAC地址 为 AE:12:BD:8C:92,也就是电脑A的 MAC地址

这样,手机A就误以为路由器的 MAC地址 是 AE:12:BD:8C:92,从而每次发送数据到互联网时,都需要先把数据发送给电脑A,从而电脑A成为了 中间人,所以这个攻击也叫 中间人攻击

数据流向如下图:

这样,电脑A就可以截获手机A发送的所有数据。电脑A截获到手机A的数据后,就可以修改手机A发送的数据,从而达到攻击的效果。

试想一下,如果当手机使用支付宝支付时,把收款的账号改为攻击人的账号,那就会把钱转到攻击人的账号。

ARP欺骗实验

本来我想自己写个程序来实现 ARP欺骗 攻击的,但是这样可能会导致这篇文章变得枯燥,所以这里直接使用开源的 ARP欺骗 工具来做试验,这个工具就是 arpspoof,下载地址在:https://github.com/alandau/arpspoof

首先,我们把 arpspoof 下载到本机,然后确认要攻击的目标机器的 IP地址,如:192.168.1.13,然后使用 arpspoof 开始攻击,如下:

C:\> arpspoof.exe 192.168.1.13Resolving victim and target...Redirecting 192.168.1.13 (00:11:22:33:44:55) ---> 192.168.1.1 (AE:12:BD:8C:92)             and in the other directionPress Ctrl+C to stop

看到上面的输出说明 arpspoof 已经开始工 (攻) 作 (击)。

然后,我们打开 wireshark 抓包攻击来查看手机A的上网数据包,如下图:

从抓包工具的结果可以看出,IP地址 为 192.168.1.13 的数据包都经过了我们的机器,如果这时对这些数据包稍作修改,就可能会导致很严重的问题。

所以,使用公共 WIFI 是非常危险的行为,有以下几个风险:

  • 泄露账号密码。

  • 数据可能被恶意修改。

  • 收到一些奇怪的消息(如广告)。

那么,怎么杜绝这个问题呢?很简单,就是使用手机卡流量上网(笑...)。

其实,除了 中间人攻击 外,ARP欺骗 还能让连接同一个路由器的所有机器都不能上网,就是通过 ARP欺骗 将路由器的 IP地址 映射为一个不存在的 MAC地址,这样就会导致内网的机器因为把数据发送给不存在的路由器而丢包,从而导致其不能上网。

总结

这篇文章主要通过 ARP欺骗 这种攻击手段来说明,使用公共 WIFI 是一种危险的行为,所以在使用公共 WIFI 时好不要使用移动支付,否则就可能会被盗取账号或者钱财等。

当然,看完这篇文章也不要做恶意的用途,否则后果自负(当然做恶意用途也需要点技术含量的)。





相关文章