在WiFi渗透之前,如果需要信息收集,最好的方法就是捕获数据包。如果用户需要使用白盒方法渗透测试的话,更加容易获得大量的数据包;如果使用黑盒测试的话,就需要先破解无线AP的密码或者使用伪AP,然后才可以获取其他信息。下面介绍一下使用wireshark和伪AP,捕获WiFi网络中的数据包。
数据包简介
包(packet)是TCP/IP协议通信中的数据单位,一般被称为“数据包”。在WiFi网络中,数据包分为握手包,非加密包和加密包。
握手包
WiFi中的握手包指的是使用WEP或WPA加密方式的无线AP和无线客户端进行连接前的认证信息包。
WiFi中的握手包信息交互主要由四个步骤组成:
-
握手开始时,无线网络发送一个“握手请求”数据包,请求建立连接。(握手申请,你好)
-
当无线设备接收到请求后,它将发送一个握手响应数据包,回应这个请求。(你是?)
-
无线网络继续发送一个密钥加密的数据包,这个数据包包含了一个用来加密通信的密钥。(这是我的名片)
-
最后,无线设备接收这个加密数据包,并使用密钥解密。一旦确认密钥的可用性,它会回复一个数据包。这个数据包信息表明它已经接收并能够解密密钥。(原来是自己人呀!)
这就是WiFi中的四步握手过程,保障双方的安全通信。
非加密包
在WiFi网络中的非加密包知道是无线AP没有开启无线安全。这时候使用抓包工具捕获到的数据包,可以直接进行分析。
加密包
在WiFi网络中,IEEE 802.11提供三种加密算法,分别是有线等效加密(WEP)、暂时秘钥集成协议(TKIP)和高级加密标准Counter-Mode/CBC-MAC协议(AES-CCMP)。所以当无线AP使用加密方式的话,捕获的数据包都会被加密。用户如果想要看包里面的内容,必须先对数据包的文件进行解密才可以分析。
使用wireshark捕获数据包
我们先采用白盒测试的方式,使用wireshark工具捕获各种加密和非加密的数据包。
捕获非加密模式的数据包
在无线路由器中,支持三种加密方式,分别是WPA-PSK/WPA2-PSK、WPA/WPA2和WEP。但是有人为了方便使用,没有对网络进行加密。下面我们介绍使用wireshark捕获非加密模式的数据包。
首先将WiFi打开混杂模式
打开wireshark 选择wlan0mon
我们会发现只能捕获到802.11协议的数据包,这是因为以下的原因:
正常情况下,网络适配器只会接收到目标地址为自己MAC地址或广播地址的数据包。开启混杂模式后,网络适配器可以接收到所有经过的数据包,无论目标 MAC 地址是什么。然而,无线网卡并不是简单地接收所有的数据,而是根据 Wi-Fi 协议(802.11协议)来接收数据的。即使在混杂模式下,无线网卡硬件和驱动程序还是只能处理符合802.11协议的数据包。
此外,802.11 协议包含了一种叫做“帧”的包类型,其结构与传统的以太网帧稍有差异。这就使得一些网络抓包工具,如 Wireshark,实际上在处理 Wi-Fi 流量时,只能捕获 802.11 协议的数据帧。
捕获WEP加密模式的数据包
WEP是一种比较简单的加密方式,使用的是RC4的RSA数据加密技术。下面介绍如何捕获WEP加密模式的数据包
重复上面的捕获非加密模式数据包的方式,发现只能捕获到802.11的数据包,这是因为其他协议的数据包都加密了,只有解密才能看到其他模式的数据包。具体解密方法如下所述。
在wireshark中选择编辑,然后点击首选项,就会出现如下图所示的界面
然后在协议中找到IEEE 802.11
然后在这里勾选Enable decryption复选框,然后设置WiFi密码,最后点击Edit...按钮就会出现下图所示的界面。
点击+号,在这里我们可以选择加密方式,工具支持的类型有wep、wpa-pwd和wpa-psk。我们在这里选择加密类型是wep。然后在对应的文本框中输入密码,这里输入的密码格式为十六进制的ASCII码值。比如密码如果是12345,对应的ASCII码为31、32、33、34、35。所以输入的密码应该是31:32:33:34:35。这些也可以不加冒号,设置完成之后点击确定按钮。
从界面我们可以知道,成功添加了一个WEP加密类型的密码,然后如果WiFi是通过WEP加密的方式通信的,可以将数据包解密。
但是事实上,当今,WEP(有线等效隐私)已经基本上不再被用于WiFi加密,因为它的安全性较差。WEP加密可以通过简单的网络嗅探和分析很容易被破解,已经不符合现代无线网络的安全需求。
现在,大多数WiFi网络使用WPA2(WiFi Protected Access II)或者WPA3进行加密。这两种加密协议提供了更强的安全防护,尤其是WPA3,它引入了最新的安全技术,更能有效防止密码猜测和解码攻击。
本人在实验中的模拟嗅探的WiFi也是通过WPA2加密的,所以无法得知,这种嗅探方式是否真实有效(因为没有发现附近有WEP加密的WiFi)。
如何看WiFi的加密类型可以通过我们上篇写到的airodump-ng或者kismet来判断WiFi的加密类型。
捕获WPA-PSK/WPA2-PSK加密模式的数据包
WPA-PSK/WPA2-PSK是WPA的简化版。WPA的全称是Wi-Fi Protected Access,有WPA和WPA2两个标准,是一种保护无线网络安全的系统。WPA加密方式是为了改进WEP秘钥的安全性协议和算法,WPA2比WPA更安全。WPA算法改变了秘钥生成方式,更频繁地交换秘钥可以获得安全。它还增加了消息完整性检查功能来防止数据包伪装。下面将介绍捕获WPA-PSK/WPA2-PSK加密方式的数据包
首先保持原来捕获非加密模式数据包的方式不变,然后改变wireshark抓包的方式。
打开编辑和首部协议命令,打开首部选择窗口。选择IEEE802.11协议添加密码,与上面不同的是这里选择的加密类型是wpa-pwd,这里的密码格式是“密码:BSSID”
成功设置之后就会得到比802.11协议更多的包,包含tcp dns等
使用伪AP
伪AP就是一个和真实AP拥有相同功能实际上是一个假的AP。因为一个伪AP也可以为用户提供正常的网络环境,所以用户可以通过创建伪AP,迫使其他客户端连接到该AP,这样直接使用抓包工具,就可以捕获连接到伪AP的所有数据包,接下来我们来介绍伪AP的工作方法。
AP的工作模式
要实现伪AP要明白真实的AP的工作模式,一共有五种分别是:纯AP模式、网桥模式、点对点模式、点对多点模式和中继模式。
1.纯AP模式
这是最常用的工作模式。用于构建以无线AP为中心的集中控制式网络,所有通信都通过AP来转发。此时,AP既可以和无线网卡建立连接,也可以和无线网卡通过无线建立有线连接。
网络拓扑如图所示:
2.网桥模式
此模式下的AP被主AP当做是一台无线客户端,跟一个无线网卡的地位相同,即主从模式。
3.点对点模式
点对点模式下,网络架构包括两个无线AP设备。通过这台AP连接两个局域网,实现两个局域网之间通过无线互联的方式进行资源共享。也可以实现有线网络的扩展。这里和网桥模式的区别是两台AP的目标Mac地址是互相的MAC地址,也就是实现的是两个客户端互传信号,不再传给第三个客户端
4.点对多点模式
在点对多点的模式下,网络架构包括多个无线AP设备。其中一个AP为点到多点桥接模式,其他AP为点对点桥接模式。一般用于一定区域内,实现多个远端点对一个中心点的访问,将多个离散的远程网络连成一体。
5.中继模式
在中继模式下,通过无线的方式将两个无线AP来连接起来,一般用于实现信号的中继和放大,从而延伸无线网路的覆盖范围。
创建伪AP
如果将伪AP的参数设置和原始AP的参数相同,那伪AP和真实AP可以发挥相同的作用。下面介绍Easy-Creds工具来创建伪AP,从而实现对客户端数据包的捕获。
Easy-Creds是一个菜单式的破解工具,允许用户打开一个无线网卡,并实现一个无线接入点攻击平台。
实战
这个下载的网址是
https://github.com/brav0hax/easy-creds
然后点击这里将包下载
然后在下载目录里面进行解压
unzip easy-creds-master.zip
解压之后就可以发现有这些内容
Archive: easy-creds-master.zip bf9f00c08b1e26d8ff44ef27c7bcf59d3122ebcc creating: easy-creds-master/ inflating: easy-creds-master/README inflating: easy-creds-master/definitions.sslstrip inflating: easy-creds-master/easy-creds.sh inflating: easy-creds-master/installer.sh
这里的installer.sh就是我们安装的需要内容
接下来的安装和运行的方式是这样的:
安装完成的界面
运行界面
选择伪AP攻击 也就是3
这里是选择攻击方式,这里选择使用静态伪AP进行攻击,所以输入编号1
这里选择是否要使用sidejacking模块,sidejacking 是一种网络攻击,攻击者可以截获受害者的无线网络流量并获取他们的登录凭据。这通常发生在公共 Wi-Fi 热点等不安全的网络上。
基本配置如下:
但是在我使用的时候一直会出现dhcp分配报错,反复拷问GPT之后也没有结果,要是有大佬会解决这个问题或者在运行的时候没有报错,请速速教教我,然后就是虽然dhcp工作不了,但是其他的小部件在运行的时候是没有问题的,最后出来的监视窗口就是下面这个情况。
我连接尝试了之后,发现确实制造了伪AP,但是这个AP无法连接网络,就是说应该是dhcp的问题,没有给连接的机器分配IP地址,但是我用静态ip连接也无法登录互联网,我不知道是不是这个easy-creds的版本出现了问题还是我的网卡的问题。
还有一个问题是打开了ettercap但是没有监视窗口,这个问题可能我觉得应该是ettercap版本的问题吧。
这个easy-creds 网上的帖子不多,要是在24年有大佬还能正常使用的话,就速速教教我吧
强制用户下线
刚刚我们讲了怎么创造伪WiFi,但是要用户连接我们的伪WiFi,一定要让用户先在原WiFi中无法登录,这样才会连接我们的伪WiFi。我们这次要使用的工具是MDK3,强制踢用户下线,让他连接到我们的伪WiFi上来。
下面是MDK3的语法格式
mdk3 <interface> <test_mode> <test_options>
interface:指定网络的接口
test_mode :指定测试的模式。支持的模式有a(DoS模式),b(Beacon洪水模式),d(解除验证/接触关联暴力模式)、f(MAC过滤模式)、g(WPA降级模式)、m(关闭开发模式)、p(基本检测和ESSID暴力模式)、w(WID/WIPS混乱)、以及x(802.1X模式)
test_options: 指定一些测试选项。用户可以使用—fulhelp选项,查看所有测试选项。
实战
先将网卡变成监听模式
然后将工作在信道6 的客户端强制下线。
可以看到输入这条命令之后,网络无法连接
如果设置了伪WiFi,那可能设备会自动连接我们的伪WiFi,然后就直接获取了数据包。
捕获数据包
之前通过伪AP捕获的数据包可以直接通过wireshark全部看到,只要选择接口是at0
如果想要抓取特定用户的数据包,可以通过甄别mac,然后筛选ip达到效果