使用 airodump-ng 发现隐藏 SSID

Beginner
立即练习

引言

无线网络可以配置为不广播其服务集标识符 (SSID),使其成为“隐藏”网络。虽然这提供了一层轻微的混淆,但它并不是一个强大的安全措施。攻击者仍然可以使用网络分析工具发现 SSID。

在本实验中,你将学习发现隐藏 SSID 的过程。你将使用 airodump-ng 来监控无线流量并识别隐藏网络,然后使用 aireplay-ng 执行 deauthentication 攻击。此攻击会强制已连接的客户端短暂断开连接然后重新连接,在重新关联过程中暴露网络的 SSID。

我们将在为本次实验准备的模拟无线环境中进行操作。

启动 airodump-ng 进入通用扫描模式

在此步骤中,你将启动 airodump-ng,这是一个用于捕获 802.11 帧的工具。我们将使用它来扫描附近的所有无线网络。实验环境已配置好一个名为 wlan2mon 的监控接口。

首先,打开一个终端。本实验中的所有命令都将在终端中执行。

现在,在监控接口上运行 airodump-ng。这需要 sudo 权限。

sudo airodump-ng wlan2mon

运行命令后,你的终端将充满有关附近 Wi-Fi 网络的信息。让此命令继续运行,因为我们将在后续步骤中观察其输出。

你应该会看到一个类似以下的显示,它会实时更新:

CH  6 ][ Elapsed: 10 s ][ 2023-10-27 10:00

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 XX:XX:XX:XX:XX:XX  -30       10        0    0   6  54e  OPN              <length:  0>

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe

保持此终端打开并运行 airodump-ng。你需要为第 4 步的命令打开一个新的终端。

识别 ESSID 为 '<length 0>' 的网络

在此步骤中,你将分析 airodump-ng 的输出以找到隐藏的网络。

查看运行 airodump-ng 的终端。隐藏网络通过未广播的 ESSID(网络名称)进行识别。airodump-ng 将其显示为 <length: 0>

在输出中,你应该会看到类似以下的行:

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 XX:XX:XX:XX:XX:XX  -30       10        0    0   6  54e  OPN              <length:  0>

此行代表我们的目标隐藏网络。请注意此行中的两个重要信息:

  • BSSID: 接入点的 MAC 地址。在示例中,它是 XX:XX:XX:XX:XX:XX
  • CH: 网络运行的信道。在示例中,它是 6

在后续步骤的 deauthentication 攻击中,你需要 BSSID。为了方便你在本次实验中操作,模拟 AP 的 BSSID 已保存到文件中。如果需要,你可以在新终端中运行 cat /tmp/bssid.txt 来查看它。

等待客户端连接以显示 SSID

在此步骤中,我们将讨论发现隐藏 SSID 的被动方法。

发现 SSID 的一种方法是简单地等待。当合法客户端连接到隐藏网络时,它会发送包含 SSID 的探测请求(probe requests)和关联请求(association requests)。如果 airodump-ng 正在运行并在正确的信道上监听,它将捕获这些数据包并显示 SSID。

airodump-ng 的输出显示两个部分。顶部部分列出接入点(APs),底部部分列出已连接的客户端(Stations)。

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
 XX:XX:XX:XX:XX:XX  -30       10        0    0   6  54e  OPN              <length:  0>

 BSSID              STATION            PWR   Rate    Lost    Frames  Probe
 XX:XX:XX:XX:XX:XX  YY:YY:YY:YY:YY:YY  -40    0- 1      0        1

在上面的示例中,MAC 地址为 YY:YY:YY:YY:YY:YY 的客户端已连接到我们的隐藏 AP (XX:XX:XX:XX:XX:XX)。

然而,等待客户端连接可能需要很长时间。在下一步中,我们将使用一种主动方法来强制解决此问题,从而更快地显示 SSID。

发起 Deauthentication 攻击以揭示 SSID

在此步骤中,你将使用 aireplay-ng 通过 deauthentication 攻击主动强制揭示 SSID。此攻击会向已连接的客户端发送特殊数据包,导致其与网络断开连接。行为良好的客户端会立即尝试重新连接,并在重新连接握手过程中,它会揭示 SSID。

首先,你需要打开一个新的终端。不要关闭运行 airodump-ng 的终端。

在新终端中,你将构建 aireplay-ng 命令。命令格式为:
sudo aireplay-ng --deauth <number_of_packets> -a <AP_BSSID> <interface>

  • --deauth 5: 我们将发送 5 个 deauthentication 数据包。
  • -a <AP_BSSID>: 这是你在步骤 2 中识别出的隐藏网络的 BSSID。
  • wlan2mon: 这是我们的监控接口。

为了方便操作,你可以从我们准备的文件中获取 BSSID。执行以下命令来发起攻击:

sudo aireplay-ng --deauth 5 -a $(cat /tmp/bssid.txt) wlan2mon

你将看到指示正在发送 deauthentication 数据包的输出。

10:05:10  Waiting for beacon frame (BSSID: XX:XX:XX:XX:XX:XX) on channel 6
10:05:10  Sending 64 directed DeAuths. STMAC: [YY:YY:YY:YY:YY:YY] [ 0|63 ACKs]
...

现在,快速切换回运行 airodump-ng 的第一个终端,以便在下一步观察结果。

在 airodump-ng 显示中注意已揭示的 SSID

在最后一步中,你将观察 deauthentication 攻击的结果。

切换回你的第一个终端,也就是运行 airodump-ng 的那个终端。在 deauthentication 攻击之后,客户端重新连接到了接入点。在此过程中,airodump-ng 捕获了 SSID。

之前显示 ESSID 为 <length: 0> 的那一行,现在应该会显示实际的网络名称 LabExHidden

攻击前:

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 XX:XX:XX:XX:XX:XX  -30       10        0    0   6  54e  OPN              <length:  0>

攻击后:

 BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

 XX:XX:XX:XX:XX:XX  -32       25        1    0   6  54e  OPN              LabExHidden

你已成功发现隐藏网络的 SSID!

现在你可以通过输入 exit 或使用 Ctrl+C 先停止正在运行的进程,然后关闭两个终端。

总结

在本实验中,你学习了一种发现隐藏 Wi-Fi 网络的实用技术。你了解到隐藏 SSID 并不是一种有效的安全措施,因为它很容易被揭露。

你练习使用了 aircrack-ng 套件中的关键工具:

  • airodump-ng: 用于扫描无线网络,并通过其 <length: 0> ESSID 识别隐藏网络。
  • aireplay-ng: 用于执行 deauthentication 攻击,迫使已连接的客户端在重新连接时揭示 SSID。

这种被动监控后进行主动攻击的过程,是无线安全审计中的一个基本概念。