无线网络基础

术语

  • Wi-Fi(Wireless Fidelity,无线保真):是一种可以将笔记本电脑、手持设备(如手机、平板)等终端以无线方式互相连接的技术。简单地说,它就是一个高频无线电信号。

    这里做一个约定,Wi-Fi == WI-FI== WiFi == WIFI

  • WLAN:image-20240604135942841

  • WAP:无线访问接入点(Wireless Access Piont,WAP),相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网。

  • 802.11:802.11是IEEE 802.11 Task Group(一个组织)制定的一系列无线局域网标准。

  • 蓝牙:是一种无线通信技术,它能够在短距离范围内实现设备间的数据传输和通信。

  • NFC:近场通信(Near Field Communication,缩写为NFC),又称近距离无线通信,是一种短距离的高频无线通信技术,允许电子设备之间进行非接触式点对点数据传输,在十厘米(3.9英吋)内交换数据。

  • 网卡芯片:网卡芯片(Network Interface Card Chip,简称NIC芯片)是一种集成电路芯片,用于在计算机或其他设备中提供网络连接功能

    网卡芯片是硬件层面的东西,了解芯片的意义在于,并不是所有的无线网卡都支持“监听模式”,而支持“监听模式”的网卡是我们获取进行无线网络渗透的一个必备硬件条件。

    在硬件圈子中,经常听到的3070、3072、8187都指的是芯片类型。这里提一嘴,3070芯片传输速度是150Mbps的,3072是300Mbps,8187是54Mbps

Wi-Fi网络结构

Wi-Fi网络的组成非常简单,只需要一个AP和一个客户端即可构成一个Wi-Fi网络。但是在Wi-Fi网络中,并不是只可以有一个客户端,而是可以连接多个客户端。

上面的术语中提到过AP,这里解读一下:AP也称为基站,所以有时候就合称为AP基站,也就是平常人们说的Wi-Fi热点,更通俗地说就是家里的无线路由器。它的作用相当于一个转发器,将互联网上其他服务器上的数据转发到客户端。

注意,AP只是一个概念,路由器通常具有有线和无线接口,其中无线接口就是用来提供无线访问接入点功能的(实现了这个概念)。所以,可以说路由器是一种包含无线访问接入点的设备。还有一种关于AP的说法是【AP,是指发送无线信号的无线设备】,这是一种较为笼统的说法,我个人并不赞同,更准确的来说应该称为【AP设备】,AP本身只是一个概念。

除了AP,还有一个概念叫做STA。STA(Station)称为站点,就是所谓的客户端。站点是指具有Wi-Fi通信功能并且连接到无线网络中的终端设备,如手机、平板和笔记本电脑等

Wi-Fi工作原理

在Wi-Fi网络中,数据传输共包括4个过程,分别是:

  1. AP广播
  2. AP探测
  3. 身份认证
  4. 数据传输

image-20240604141634044

下面逐个介绍。

AP广播

如果在无线路由器中开启SSID广播功能的话,AP将自动广播自己的SSID名称。其中,SSID是Service Set Identifier的缩写,意思是服务集标识,简单地说,就是用户在无线客户端搜索到的无线信号名称。

AP探测

当客户端选择加入哪个无线网络时,将会发送一个AP探测请求,以请求特定无线网络的响应包。然后根据AP给予的响应包,确定AP工作的频段。之后客户端将切换到与AP相同的频段。

身份认证

客户端将提供密码,以进行身份认证。如果AP确定客户端提交的认证信息正确后,则允许接入其网络。然后,客户端和AP进行关联,直至关联成功。

数据传输

通过前面的3个过程,客户端就成功加入AP所在的无线网络了。此时,客户端就可以和AP进行数据传输了。

2.4G/5G标准

2.4G和5G是无线通信的两个标准。这两个标准本质上是指Wi-Fi频率不同,而且运行的协议也不同。其中,2.4G Wi-Fi无线网主要使用的是802.11b/g/n协议;5G Wi-Fi无线网只能使用802.11ac协议。在Wi-Fi网络初期,是没有5GHz这个频段的,由于2.4GHz频段设备越来越多,互相干扰得太厉害,所以就开放了5GHz这个标准。因为5GHz是高频频段,而且5G频段连接的设备较少,所以理论上比2.4G传输速度更快。但是,由于5GHz频率高,所以波长相对于2.4GHz要短很多,因此穿透性比较弱、传播距离比较短

很简单的物理常识,频率高,波长短,穿透性弱,传播距离短

信道和频率

信道也称做通道(Channel)、频段,它是以无线信号作为传输载体的数据信号传送通道。简单地说就是无线路由器的工作信道。信道的主要作用就是为了避免信号之间的干扰,所以无线路由器可以在多个信道上运行。

==2.4GHz(=2400MHz)频段共划分为14个信道,但第14信道一般不用。==每个信道的实际宽度,为22MHz,有效宽度是20MHz,另外还有2MHz的强制隔离频带(类似于公路上的隔离带)。中国可用13个信道(1-13),美国可用11个信道(1-11)。信道及中心频率如下图:

image-20240604145540821

相邻信道中心频点间隔5MHz,相邻的多个信道存在频率重叠,相互不干扰的信道有三组(1、6、11或2、7、12或3、8、13),如下图

image-20240604145237633

5GHz频段的中心频率范围是4.915~5.865GHz。国内规定可用的5G信道只有5个,分别是149、153、157、161、165。这5个信道及其中心频率如下图:

image-20240604203226068

Wi-Fi网络协议标准

Wi-Fi网络通用的协议标准是IEEE 802.11。IEEE 802.11是由电气和电子工程师协会(IEEE)为无线局域网络制定的标准。为了满足用户的需求,IEEE小组又相继推出了一系列的标准,如802.11a、802.11b、802.11g、802.11ac等

这里给出一张802.11 协议历史时间线的图片,如下

image-20240606155311802

虽然802.11协议已经发展了多个标准,但是目前主流的无线Wi-Fi网络设备都支持802.11a、802.11b、802.11g、802.11n这4个协议标准。而且,802.11n向下兼容,即兼容802.11a/b/g。这4个协议标准的信道带宽、工作频段和理想速率如下图:

image-20240604203758644

上面也提到了802.11ac协议,它是在802.11a标准上建立起来的,802.11ac协议标准工作的信道、频段及传输理论速率如下

image-20240604204251440

无线路由器的加密模式

无线路由器的加密模式又叫无线网络加密标准,一般有以下几种:

  • WEP
  • WPA
  • WPA2
  • WPA3

WEP

WEP

  • 英文全称:Wired Equivalent Privacy
  • 中文名称:有线等效加密
  • 提出时间:1997
  • 使用的算法:RC4
  • 功能:保护客户端和接入点 (AP) 之间的无线数据免受黑客攻击

WEP 虽然被广泛使用,但它太容易受到黑客的攻击,网络安全专家检测到WEP的许多漏洞,因此,Wi-Fi 联盟在 2004 年正式将其退役。

WPA

  • 英文全称:Wi-Fi Protected Access
  • 中文名称:Wi-Fi 访问保护
  • 提出时间:2003
  • 使用的算法:TKIP

由于 WEP 的漏洞,必须开发一种新协议,WPA应运而生,TKIP 使用 256 位密钥而不是 WEP 中的 64 位和 128 位密钥。

WPA 包括消息完整性检查和临时密钥完整性协议 (TKIP)。

WPA有两种不同的模式:

  • 企业模式 (WPA-EAP)
  • 个人模式 (WPA-PSK)

TKIP 使用与 WEP 相同的底层机制,因此容易受到许多类似攻击(例如 Chop-Chop、MIC 密钥恢复攻击)的攻击。

WPA2

  • 英文全称:Wi-Fi Protected Access Version 2
  • 中文名称:Wi-Fi 访问保护2代
  • 提出时间:2004
  • 使用的算法:AES-CCMP

WPA2 是第一个 WPA 的高级版本。WPA 的脆弱部分在 WPA2 中变得更强大。

WPA2 用两种更强大的加密和身份验证机制取代了 RC4 和 TKIP:高级加密标准 ( AES ) 和分别使用密码块链接消息身份验证代码协议 ( CCMP ) 的计数器模式。

WPA2对于家庭网络很实用,但它对企业网络很脆弱,因为,攻击者可以访问使用 WPA2 保护的网络,访问网络后,他们可以访问密码,字典攻击是 WPA2 密码最容易受到攻击的部分。

WPA3

  • 英文全称:Wi-Fi Protected Access Version 3
  • 中文名称:Wi-Fi 访问保护3代
  • 提出时间:2018
  • 使用的算法:AES-GCMP

WPA3 使用以下两种 WiFi 安全模式之一:

  • WPA3个人模式(WPA3-Personal):提供 128 位加密,使用 WPA-PSK/预共享密钥
  • WPA3企业版(WPA3-Enterprise):提供 192 位加密,使用 AAA/RADIUS 认证服务器

无线网络渗透工具

这里给出一些无线网络渗透工具,如下

  • FreeWiFi:获得免费的WiFi。

  • fluxion:伪AP钓鱼工具。

  • Wireshark:网络封包分析工具。

  • hcxdumptool:无线认证信息抓包工具。

  • hcxtools:HCCAPX文件处理工具集。

    image-20240604211807314

  • Kismet:基于Linux的无线网络扫描工具。

  • Bully:利用路由器WPS漏洞破解WiFi密码的工具。

  • Airgeddon:这是一个多用途的bash脚本,用于Linux系统审核无线网络。

  • GISKismet:一个无线网络可视化工具。

  • HostedNetworkStarter:是Windows 7及更高版本的简单工具,可以使用Windows操作系统的WiFi托管网络功能轻松创建无线网络适配器的WiFi热点。

  • inSSIDer:WiFi故障排除和优化工具。

  • LinSSID:Linux下的图形化无线网络扫描和分析工具。

  • Pyrit:一款使用GPU运算的无线密码离线破解工具。

  • NetStumbler:Windows下的扫描和监测无线网络工具。

  • wellenreiter:无线网络分析和安全审计工具。

  • whoishere.py:WiFi客户端检测工具。

  • WiFi Channel Monitor:Windows下的用于监测和分析无线网络工具

  • WifiInfoView:无线网络扫描器。

  • wireless_network_watcher:无线网络扫描器。

  • Aircrack-NG:无线网络分析安全工具集。

  • Reaver:暴力破解WPS加密的工具包。

  • wash:无线信号扫描工具。

  • Wifi Honey:一个Wi-Fi蜜罐脚本

  • AirSnort:是一种无线局域网(WLAN)工具,可以破解802.11b WEP网络上的加密密钥。

  • Asleap:用于检测和攻击 LEAP (Lightweight Extensible Authentication Protocol) 认证机制的开源工具

    LEAP是微软在早期Windows操作系统中引入的一种无线网络认证协议。

  • auto-reaver:使用Reaver进行多个接入点攻击。

  • AutoEAP:无线网络自动化登录工具,用于处理 EAP(Extensible Authentication Protocol) 认证方式的无线网络连接。

  • Cowpatty:基于WPA-PSK认证的离线密码破解工具。

  • crackle:破解和解密BLE加密。

  • Fern Wifi Cracker:图形化的WIFI密码破解工具。

  • FruityWiFi:无线网络审计工具。

  • Metasploit的getwlanprofiles:是一个简单的Meterpreter脚本,当对Windows 7或Vista框运行时,将提取并下载所有使用Windows客户端设置的无线配置文件。

  • infernal-twin:无线网络渗透工具。

  • KillerBee:用于渗透测试802.15.4/ZigBee网络的工具。

    802.15.4/ZigBee是一种基于无线个人区域网(WPAN)技术的短距离无线通信标准。它主要应用于物联网(IoT)和智能家居等领域。

  • mdk3:无线网络攻击工具。

  • PixieWPS:离线暴力破解WPS PIN码的工具。

  • reaver-wps:破解无线网络WPS的工具。

  • WEPCrack:是一款用于破解802.11 WEP密钥的开源工具。

  • wifijammer:无线网络干扰工具,可用于断开客户端和无线网络的连接。

  • Wifiphisher:Wi-Fi钓鱼攻击工具。

  • Wifitap:是一个WiFi注入工具集。

  • Wifite:自动化WEP、WPA、WPS破解工具。

  • zizzania:无线网络拥塞攻击工具。

  • waidps:无线审计、入侵检测与防御系统。

  • fakeAP:创建假AP工具。

  • ghost-phisher:无线网络渗透工具。

  • Jasager:无线网络渗透工具。

  • mitmAP:一个python程序来创建一个假的AP并嗅探数据。

  • WiFi-Pumpkin:Wi-Fi钓鱼攻击工具。

  • Wifi-Dumper:用于在Windows机器上转储连接的接入点的WiFi配置文件和明文密码的工具。

  • Wifresti:在Windows、Linux和Mac OS中找到无线网络密码。

  • Hijacker:是一个安卓平台下的无线渗透工具。它的功能非常强大,几乎集成了aircrack-ng 套件、MDK3、Reaver这些工具的功能。

无线网络渗透的硬件需求

在无线网络渗透中最重要的硬件就是需要一张无线网卡,更准确的说是一张支持监听模式的无线网卡。无线网卡有很多,而且每个网卡使用的芯片和驱动不同。所以,并不是所有的无线网卡都可用于无线网络渗透。下面列举一些无线网卡的参数,以供选择:

QQ图片20240604224215

上图列出了支持网卡的驱动、制造商、是否能够作为AP、是否支持监听,以及支持的协议模式。?表示不确定,yes表示支持,no表示不支持。

无线网卡可以工作在多种模式下,以实现不同的功能。如果要实施无线渗透,将需要监听网络中的所有数据。所以,必须将无线网卡设置为监听模式。如果所使用的无线网卡不支持监听模式,则无法监听数据。那么,这里列出一些支持监听模式的无线网卡,如下图

QQ图片20240605123730

无线网卡的基本使用

在Linux系统中,如果能正常加载网卡驱动,则我们可以通过以下一些常用命令来查看网卡详细信息。

# 查看PCI接口连接的所有设备信息
lspci
# 查看USB接口连接的所有设备信息
lsusb
# 查看所有无线网卡的硬件参数信息
iw phy
或
iw list
# 查看所有无线网卡的接口标识信息
iw dev
# 查看最近加载的(硬件)驱动日志信息
dmesg

上面提到了PCI设备和PCI接口,这里介绍一下

image-20240605130918475

image-20240605130932125

此外,还可以使用ifconfig命令查看当前系统中的网络接口

image-20240605132236522

这里提一下回显信息中的eth0lowlan0。其中,eth0是有线网络接口,lo是本地回环接口,wlan0是无线网络接口

如果接入的无线网卡没有自动启动的话,可以使用以下命令进行手动启动

ifconfig <interface> up
# interface参数表示将要启用的网卡接口,即使用ifconfig命令获取到的接口名
# 比如,ifconfig wlan0 up

无线网卡使用的协议标准不同,则支持的信道也不同。当无线网卡要接入到一个无线网络时,则客户端需要与AP工作在同一个信道。所以,如果AP支持5GHz频段的信道,无线网卡不支持的话,则可能不能协同工作。所以,用户在接入无线网卡时,也需要确定无线网卡支持的信道。

使用iwlist工具查看无线网卡支持的信道,如下

iwlist <interface> channel

比如我的这张无线网卡共支持14个信道,并且显示了每个信道的频率

image-20240605133258379

无线网卡监听模式的使用

无线网络监听模式就是将无线网卡设置为监听状态,以捕获附近其他主机的数据包,进而实施无线网络渗透。对于无线网络渗透测试,通常情况需要将无线网卡设置为监听模式,如扫描网络、嗅探数据包等。

网络监听原理

无线网络中的数据包是以广播模式传输的,所以用户通过对这些数据包进行监听,即可截取到传输的数据。

无线网卡的工作模式

无线网卡一般有4种工作模式,分别是:

  • 管理模式(Managed)
  • 主模式(Master)
  • 点对点模式(Ad-Hoc)
  • 监听模式(Monitor,也叫RFMON)

下面将分别介绍这4种工作模式。

Managed模式

Managed模式用于无线客户端直接与无线接入点(Access Point,AP)进行接入连接。在这个模式中,用户可以将无线接入互联网。其中,无线网卡的驱动程序依赖无线AP管理整个通信过程。

Master模式

一些无线网卡支持Master模式。这个模式允许无线网卡使用特制的驱动程序和软件工作,作为其他设备的无线AP。主模式主要使用于无线接入点AP,提供无线接入服务及路由功能。例如,无线路由器就是工作在Master模式下。对于普通的PC机来说,如果有合适的硬件也可以变成一台无线AP。

Ad-Hoc模式

image-20240605134906812

Monitor模式

监听模式主要用于监控无线网络内部的流量,用于检查网络和排错。如果要捕获无线数据包,用户的无线网卡和配套驱动程序必须支持监听模式。

监听模式的工作原理

正常情况下,网卡都工作在管理模式,将要发送的数据包发往连接在一起的所有主机,数据包中包含着应该接收数据包主机的正确地址,只有与数据包中目标地址一致的主机才能接收。但是当处于监听模式下时,无论数据包中的目标地址是什么,主机都将接收,而且网络监听不容易被发现。因为运行网络监听的主机只是被动地接收在局域网中传输的信息,不主动与其他主机交换信息,也没有修改在网络中传输的数据包。

开启监听模式

由于支持2.4GHz和5GHz的网卡芯片不同,所以启用的监听模式也不同。

判断网卡是否支持2.4GHz/5GHz

判断方法有很多,我列举几个:

  • 直接搜索无线网卡型号,查看厂商给出的信息

  • Windows下

    # 显示所有无线网卡的驱动程序信息和功能支持
    netsh wlan show drivers

    image-20240605151228881

    "支持的无线电类型"字段处,如果只有802.11 b/g/n,则说明该网卡不支持5GHz,如果包含了802.11a或者802.11ac,则说明该网卡支持5GHz。具体如下

    image-20240605151422279

  • Linux下

    # 使用iwlist查看支持的信道
    iwlist <interface> channel
    或者
    # 使用iw命令查看名为Frequencies的字段
    iw list
    或者
    iw phy

    image-20240605151915334

    image-20240605151803114

启用2.4GHz无线网卡监听

# 使用Airmon-ng工具来启用监听模式
airomon-ng start <interface>

image-20240605135430670

image-20240605135725455

image-20240605135807401

这里注意一下,开启监听模式后无线网卡有几个信息会变更。

一是,无线网卡名称会变更,如上图,wlan0变更为wlan0mon

二是,监听模式下,无线网卡的Mac地址会显示为一长串字符,如上图,e2:ad:b6:9d:26:69变更为70-F1-1C-47-48-89-00-08-00-00-00-00-00-00-00-00

关闭无线网卡监听模式,可以使用

# 停止监听
airmon-ng stop <interface>
# 比如监听模式下的网卡名为wlan0mon
airmon-ng stop wlan0mon

启用5GHz无线网卡监听

对于一些支持5GHz频段的无线网卡,也可以使用airmong-ng工具来启用监听。但是,一些芯片的无线网卡无法使用该工具来启用监听,这时候可以使用iwconfig命令来启用5GHz无线网卡为监听模式。先简单介绍一下iwconfig命令:

image-20240605141557283

具体命令如下:

# 在启用无线网卡为监听模式时,需要先停止无线网卡。以wlan0为例
ip link set wlan0 down
# 注意,执行以上命令后,不会输出任何信息
# 设置无线网卡为监听模式
iwconfig wlan0 mode monitor
# 启动无线网卡
ip link set wlan0 up
# 执行以上命令后,也不会输出任何信息
# 查看无线网卡的工作模式,Mode字段即为工作模式
iwconfig wlan0

image-20240605143132034

注意,如果使用iwconfig命令开启无线网卡的监听模式,监听模式下的无线网卡名不会变更。

停止监听也是一样的逻辑,如下

# 还是以wlan0为例,停止无线网卡
ip link set wlan0 down
# 设置无线网卡为管理模式
iwconfig wlan0 mode managed
# 开启无线网卡
ip link set wlan0 up
# 查看无线网卡的工作模式,Mode字段即为工作模式
iwconfig wlan0

远程监听

由于Wi-Fi信号强度的限制,渗透测试人员只能监听主机周围的无线信号。如果想要监听其他位置的主机,则无法扫描到。此时,可以借助树莓派设备,将树莓派放在目标网络附近,来开启远程监听接口。这样,通过远程连接到树莓派,即可实现远程监听。在Aircrack-ng套件中,提供了一个airserv-ng工具,可以为无线网卡创建一个服务。然后,渗透测试人员就可以通过IP:端口号方式,远程访问该无线网卡,进行各项操作。

airserv-ng工具的语法格式如下:

airserv-ng [options]

主要用到的参数有:

  • -p:指定监听的端口号,默认值为666。
  • -d:指定使用的无线网络接口。
  • -c:指定使用的信道。
  • -v:指定的冗余级别。其中,支持的冗余级别有3个(1~3),默认值为1。冗余级别1表示显示连接和断开连接的客户端;冗余级别2表示除了显示冗余级别1的信息外,还显示信道改变请求和无效客户端命令请求信息;冗余级别3表示显示每次向客户机发送数据包时的信息。

下面做一个远程监听的演示:

QQ图片20240606154027

扫描无线网络

扫描无线网络就是侦听周围的无线信号,无线网络信息包括AP名称工作的信道MAC地址连接的客户端等。

扫描方式

有主动和被动两种方式来实施扫描。其中,主动扫描是客户端主动发送探测请求帧,根据响应的信号帧来确定存在的AP;被动扫描是通过监听AP自动发送的信号帧,来确定存在的AP。

主动扫描

主动扫描方式是客户端主动向AP发送探索请求帧。发送时,请求帧使用NULL或设置的SSID名称。当周围的AP收到该请求后,将会响应该探索信号帧。该探索响应帧包括信号帧中的所有信息,即使不发送信号的AP也会响应该请求,进而暴露它的存在。所以,基于这种扫描方式,用户能够发现更多个AP。但是为了AP不被扫描发现,一些网络/系统管理员也可以设置AP,忽略设置为NULL的探索请求。

被动扫描

被动扫描是利用AP每隔一段时间自动发送信号帧的机制进行扫描。但是如果AP不自动广播信号帧的话,则无法发现存在的AP。

扫描方法

这里以Airodump-ng为例介绍扫描AP的方法。

Airodump-ng是Aircrack-ng工具集中的一个工具,主要用来捕获数据包,以便于Aircrack-ng进行密码破解。用户可以使用该工具扫描AP信息,该工具支持实时扫描和离线扫描

实时扫描

首先要开启无线网卡的监听模式

# 开启无线网卡监听模式(比如网卡名为wlan0)
airmon-ng start wlan0

进行实时扫描

airodump-ng <interface> 
# 如果要获取AP的生产厂商,可以使用--manufacturer参数,使用该参数后输出的信息相比之前扫描的结果多显示了一列。该列名为MANUFACTURER,即AP的生产厂商信息。
airodump-ng <interface> --manufacturer
# 如果要保存成文件可以使用-w参数,用于指定保存捕获数据包的文件名
airodump-ng <interface> -w <file>

当用户不需要继续扫描时可使用Ctrl+C组合键退出扫描。这时,捕获到的所有数据包都将保存在以<file>为前缀的的文件中,默认将会生成5个文件。

比如命令为airodump-ng wlan0mon -w dump,保存的文件如下

image-20240627143933097

.cap是一个流量捕获包文件,用户可以将该流量包导入到流量分析器中(如Wireshark)进行分析;.csv文件中的信息是屏幕输出显示的信息;.netxml用来保存地理位置信息。

离线扫描

离线扫描就是通过从捕获的流量包文件中读取AP数据包,以获取AP信息。

比如使用Wireshark或Tcpdump捕获了一个流量包,下面使用Airodump-ng工具进行离线扫描。

# 参数-r表示指定读取的捕获文件。其中,捕获文件的后缀必须是.pcap格式
airodump-ng -r <pcap>

扫描开启WPS功能的AP

WPS功能介绍

WPS功能就是使客户端连接WiFi网络时,此连接过程变得非常简单。用户只需按一下无线路由器上的WPS键,或者输入一个PIN码,就能快速地完成无线网络连接,并获得一个WPA加密的无线网络。

使用wash扫描

使用Airmon-ng也可以,类似的功能基本都有集成

# 注意要开启无线网卡的监听模式,这里不做赘述
wash -i wlan0mon

image-20240627154023625

以上输出信息共显示了7列,分别为BSSID(AP的BSSID)、Ch(AP的工作信道)、dBm(接收的信号强度)、WPS(WPS版本)、Lck(WPS锁定)、Vendor(生产厂商)和ESSID(AP的SSID)。这里主要是分析Lck列,如果该列的值为Yes,则说明该AP锁定了WPS,即没有开启WPS功能;如果显示为No,则表示没有锁定,即开启了WPS功能。

获取隐藏的ESSID

隐藏的ESSID就是指AP不自动广播SSID名称。如果用户不指定该AP的SSID名称的话,则无法接入该无线网络。一般情况下,用户都会设置广播SSID。但是为了安全起见,一些管理员关闭了SSID广播,即隐藏了ESSID名称。此时,如果要连接该无线网络,则需要获取隐藏的ESSID名称。

这里使用mdk3获取隐藏ESSID名称,命令格式

mdk3 [interface] p -b a -t 目标AP的MAC地址 -s 发包速率
# 举个例子
mdk3 wlan0mon p -b a -t 8C:21:0A:44:09:F8 -s 100

解释一下命令,如下

  • interface:指定监听的网络接口

  • p:指定使用BSSID探测和ESSID暴力破解模式

  • -b a:使用全暴力破解模式

  • -t:指定目标AP的MAC地址

  • -s:设置发包速率

执行命令后,会尝试暴力破解SSID名称。当找到后,将在终端标准输出。类似如下

root@daxueba:~# mdk3 wlan0mon p -b a -t 8C:21:0A:44:09:F8 -s 100
SSID Bruteforce Mode activated!
Waiting for beacon frame from target...
Sniffer thread started
SSID does not seem to be hidden! Found: "Test"

查找AP漏洞信息

这里提一下查找AP漏洞信息的网址,如下

一个技巧是,先根据AP的Mac地址查到其具体型号,再查询漏洞,下面给出几个Mac地址查询站:

扫描未关联的客户端

什么是关联?

关联主要指客户端发送关联请求包(Association Request)给目标AP,以获取AP的关联响应(Association Response)包。其中,关联请求包中携带了一些协商信息,包括加密方式、支持的速率、支持的功率及其他的一些特性。AP如果都支持这些协商的话,则回应携带OK信息的关联响应(Association Response)包给客户端,并同意其接入。至此,关联成功。但如果AP对客户端的协商信息有异议,则会发送携带错误码的关联响应(Association Response)包给客户端,以拒绝其接入。如果要接入无线网络,则必须和该无线网络中的AP关联成功。否则,无法接入其无线网络

使用hoover工具扫描未关联的客户端

hoover工具下载:https://github.com/xme/hoover

命令格式如下

perl hoover.pl --interface=wlan0mon --tshark- path=/usr/bin/tshark --dumpfile=result.txt

常用参数如下

  • –interface:指定使用的无线网络监听接口。
  • –help:显示帮助信息。
  • –verbose:标准输出详细信息。
  • –ifconfig-path:指定ifconfig库的路径。
  • –iwconfig-path:指定iwconfig库的路径。
  • –tshark-path:指定tshark库的路径。
  • –dumpfile:保存查找到的SSID/MAC地址到一个文件中

举个例子,执行扫描命令后会出现类似如下的输出

root@daxueba:~# /root/hoover/hoover.pl --interface=wlan0mon  --tshark- path=/usr/bin/tshark --dumpfile=result.txt
Running as user "root" and group "root". This could be dangerous.
Capturing on 'wlan0mon'
3 ++ New probe request from 1c:77:f6:60:f2:cc with SSID: Wildcard (Broadcast) [1]
26 ++ New probe request from 1c:77:f6:60:f2:cc with SSID: Test [2]
82 ++ New probe request from dc:2b:2a:1d:f7:a6 with SSID: yzty [6]
156 ++ New probe request from 64:09:80:24:d4:64 with SSID: fkhome [7]

比如从输出中可以看出,MAC地址为1c:77:f6:60:f2:cc的客户端,正在连接名称为Test的AP。

扫描一段时间后,按Ctrl+C键即可终止扫描,会得到类似如下的输出:

158 ^C!! Received kill signal!
!! Dumping detected networks:
!! MAC Address  SSID    Count   Last Seen
!! ---------    ----    -----   ---------
!! 1c:77:f6:60:f2:cc    Wildcard (Broadcast)    61      1970/01/01 08:00:01
!! 1c:77:f6:60:f2:cc    Test    1       1970/01/01 08:00:01
!! 14:f6:5a:ce:ee:2a    yzty    14      1970/01/01 08:00:14
!! 64:09:80:24:d4:64    fkhome  1       1970/01/01 08:01:04
!! Total unique SSID: 4

其中以列表形式显示了探索的客户端及SSID个数。在输出的信息中共包括4列,分别为MAC Address(客户端的MAC地址)、SSID(AP的名称)、Count(关联次数)和Last Seen(最后时间)。通过分析Count列,可以看到哪些客户端与AP关联失败。如果能正常连接网络的话,一般情况下一次就关联成功了。如果没有关联成功,将多次尝试关联。由此可以说明,Count列的值越大,则说明该客户端没有与AP关联成功。

查看AP和客户端关联关系

Kali Linux提供了一款名为Airgraph-ng的工具,可以根据Airodump-ng工具生成的CSV文件绘制PNG格式的图。其中,绘制的图有两种类型,分别是AP-客户端关联图和通用探测图。

直接使用apt install airgraph-ng安装即可。

Airgraph-ng命令如下:

# 先使用airodump-ng捕获相关数据
airodump-ng wlan0mon -w dump
# 绘制图像
airgraph-ng -i /root/dump-01.csv -o Image.png -g CAPR

下面对Airgraph-ng工具的参数做一个介绍

  • -h,–help:显示帮助信息。
  • -o OUTPUT,–output=OUTPUT:指定输出的图片文件位置,如Image.png。
  • -i INPUT,–dump=INPUT:指定使用Airodump-ng生成的CSV格式文件。注意,不是pcap文件。
  • -g GRAPH_TYPE,–graph=GRAPH_TYPE:指定生成的图形类型。这里可以指定两种类型,分别是CAPR(Client to AP Relationship)或CPG(Common Probe Graph)。其中,CAPR是一个客户端和AP关联的关联图;CPG是一个通用探测图。

image-20240627165428987

image-20240627165406844

其他攻击手法

我将无线攻击手法分为以下几种形式,如下

  • 伪造AP
  • 破解WiFi密码
  • 断网攻击

伪造AP

伪造AP一般可用作两种方式:骚扰、钓鱼。

伪造AP骚扰

这种攻击形式主要起到一个骚扰的作用,类似蓝牙弹窗攻击,虽然没什么危害但是搞人心态。

利用形式有很多,比如打广告。

使用mdk3

# 开启无线网卡监听模式(比如网卡名为wlan0,监听模式下的网卡名为wlan0mon)
airmon-ng start wlan0
# 创建一个wifi.lst文件,逐行写入要伪造的WIFI名称(一个、多个都行,但注意名称不能过长)
vim wifi.list
# 伪造WIFI热点(-c为可选项,用于指定伪造热点的信道号)
mdk3 wlan0mon b -c 1 -f wifi.list
# 除此之外,还可以通过下面的几条命令伪造WIFI热点
# 伪造一个WIFI热点
mdk3 wlan0mon b -n test_wifi
# 伪造多个随机名字的WIFI热点
mdk3 wlan0mon b -g -c 1
# 还可以用 -s参数指定伪造WIFI热点的间隔,单位毫秒
mdk3 wlan0mon b -f wifi.list -c 6 -s 1000

image-20240628220202303

使用airbase-ng

首先使用airbase-ng伪造1个AP

airbase-ng -c 11 -e fake_wifi wlan0mon
# 解释一下参数,-c用于设置信道号,-e用于设置伪造的AP名

image-20240627181950964

image-20240627181931666

image-20240627182104915

由于Airbase-ng没有提供伪造多个AP,但是可以使用Python的多线程技术实现伪造多个AP,达到如下效果

image-20240627183004759

此外,还要注意AP名称不能过长,应当小于等于20个字节,所以编写脚本时要做好分词

伪造AP钓鱼

不难发现,通过上面方法伪造的AP是没有密码且无法连接的,所以只能起到【骚扰】的作用,下面介绍如何通过伪造AP钓鱼。

使用Wifiphisher

wifiphisher是AP钓鱼框架,能够快速、自动化地伪造AP钓鱼。

安装和启动wifiphisher

apt install wifiphisher -y
wifiphisher

启动后wifiphisher会扫描周围的WiFi信号,通过方向键+回车选择想要伪造钓鱼的WiFi

image-20240627212123130

之后会提示选择攻击模式,就是伪造的钓鱼页面,有4种页面

  • 第一个为登录认证页面
  • 第二个为浏览器插件更新
  • 第三个为网卡管理连接
  • 第四个为固件升级

image-20240627221817154

同样通过方向键+回车选择即可,之后wifiphisher会伪造一个同AP名的伪AP,并且对原AP下的设备进行Deauthentication攻击(即断网攻击),当设备重新连接上钓鱼AP时会自动跳转到钓鱼界面,诱导用户输入密码。比如这里使用固件升级钓鱼页面(选项4):

image-20240627224100632

image-20240627224349859

image-20240627223554171

从上图不难看出,伪造的AP是没有密码的

当用户输入密码时,攻击机上会显示用户输入的密码

image-20240627222936163

使用fluxion

也是一款无线钓鱼工具,项目地址:https://github.com/FluxionNetwork/fluxion

使用fluxion进行伪造AP钓鱼

# 下载
git clone https://www.github.com/FluxionNetwork/fluxion.git
cd fluxion 
# 安装依赖并启动
./fluxion.sh -i

image-20240628161828681

具体的钓鱼方法可以参考下列文章:

使用wifipumpkin3

wifipumpkin3是一款Python编写的wifi钓鱼攻击强大框架,可以快速方便的搭建一个钓鱼wifi,进行钓鱼或中间人攻击,免去了手动搭建环境的繁琐步骤。

项目地址:https://github.com/P0cL4bs/wifipumpkin3

# 安装
apt install wifipumpkin3 -y
# 要使设备连上伪造的AP也能够上网,要关闭防火墙
# Kali Linux中默认使用的防火墙是ufw(Uncomplicated Firewall)
# 可以通过以下命令关闭ufw
apt install ufw -y
ufw disable
# 启动
wifipumpkin3
# wlan0是无线网卡的名称
set interface wlan0
set ssid 伪AP名
set proxy noproxy
ignore pydns_server
start

有设备连接伪AP时,会显示设备名,如下

image-20240628183348703

因为放通了防火墙,所以设备连上伪AP是能够正常上网的,请求包和响应包均能看到,如下

image-20240628220416477

image-20240628184302943

更进一步可以使用Wireshark监听无线网卡,配合Wireshark自身强大的过滤语法,获取更多信息。

image-20240628184517092

image-20240628192755409

image-20240628192857665

使用airbase-ng

鸣谢

Comments

2024-06-04

⬆︎TOP