BY SK · PUBLISHED MAY 7, 2020 · UPDATED MAY 8, 2020
您可能已经知道,当您第一次连接到无线网络时,密码将保存在您的linux机器中。所以你不需要每次都输入你的无线网络密码。在以后的时间里,可用的WiFi网络会自动连接。随着时间的推移,您可能会忘记密码。现在你想在同一个WiFi网络中添加一个新设备,但是你不记得密码了。你打算怎么办?不用担心!来看看在Linux中找到已联网WiFi密码的几种方法吧。
我们可以从命令行或GUI或使用任何第三方密码恢复工具找到保存的网络的Wi-Fi密码。以下实现步骤在Ubuntu 20.04 LTS desktop (GNOME)中进行了测试,但是这些步骤在其他Linux发行版中可能是相同的。让我们先看看如何从命令行显示无线网络密码。
在Ubuntu及其衍生版中,无线网络配置文件保存在/etc/NetworkManager/system-connections/目录中。让我们来看看保存或连接的WiFi网络配置文件:
$ ls /etc/NetworkManager/system-connections/
输出示例:
'HP 7 VoiceTab Network' JioFi4_12E9FE sktab
如你所见,我的Ubuntu系统中保存了3个网络的对应配置文件。这些文件包含每个网络的各种详细信息,如Wifi名称、mac地址、SSID、身份验证方法、wifi密码等。使用cat命令或文本编辑器打开此文件即可查看密码。
例如,我将使用命令查看“JioFi4_12E9FE”WiFi的详细信息:
[...]
[wifi]
mac-address=XX:XX:XX:XX:XX:XXmac-address-blacklist=mode=infrastructuressid=JioFi4_12E9FE[wifi-security]auth-alg=openkey-mgmt=wpa-pskpsk=xxxxxxxxxxx[ipv4]DNS-search=method=auto[ipv6]addr-gen-mode=stable-privacydns-search=method=auto
在上面的输出中,psk值是给定Wifi网络的密码。PSK(预共享密钥)是一种客户端身份验证方法。它是使用一个由64个十六进制数字组成的字符串,或者是一个由8到63个可打印ASCII字符组成的密码,来为每个无线客户端生成唯一的加密密钥。PSK是Juniper Networks无线网络上用于WPA和WPA2加密的两种可用身份验证方法之一。
或者,您可以使用grep command快速查找保存的或连接的WiFi网络密码,如下:
$ sudo grep -r '^psk=' /etc/NetworkManager/system-connections/
此命令将显示所有已连接的无线网络的psk(密码)。
输出示例:
/etc/NetworkManager/system-connections/sktab:psk=xxxxxxxx
/etc/NetworkManager/system-connections/JioFi4_12E9FE:psk=xxxxxxxx
你也可以使用:
$ sudo grep psk= /etc/NetworkManager/system-connections/*
如果您不想看到WiFi SSID名称,而只想看到密码,请使用-h 参数:
$ sudo grep -hr '^psk=' /etc/NetworkManager/system-connections/
输出示例:
psk=xxxxxxxx
psk=xxxxxxxx
上述命令的一个问题是,您不知道哪个密码用于哪个SSID。所以,最好不要使用-h参数。
如果您不习惯命令行方式,下面我们将介绍一些图形化的方法。
点击顶部面板上的WiFi图标。将出现一个下拉菜单。点击已连接的WiFi SSID,再次点击“WiFi设置”。
在下一个窗口中,您将看到当前连接的网络的列表。点击你喜欢的wifi网络旁边的齿轮图标。
现在将打开所选的WiFi网络设置窗口。在“Security”选项卡下,您将看到密码以星号表示。要显示密码,只需点击“显示密码”复选框。
Wifresti是一个简单的Python脚本,用于查找保存或连接的WiFi网络的密码。它适用于Linux、Mac OS和windows操作系统。这个脚本是由* " Katoolin " ](https://www.ostechnix.com/install-kali-linux-tools-using-katoolin-linux/)的开发人员创建的。
使用命令从GitHub克隆仓库:
$ git clone https://github.com/LionSec/wifresti.git
This command will download the contents of Wifresti repository in a local folder named “wifresti”.
Cd into this directory:
该命令将下载Wifresti仓库中的内容到名为“Wifresti”的本地文件夹中。进入到这个目录:
$ cd wifresti/
将wifresti.py复制到您的$PATH:
$ sudo cp wifresti/wifresti.py /usr/bin/wifresti
使其具有可执行权限:
$ chmod +x /usr/bin/wifresti
接下来,以sudo用户的身份运行wifresti,列出所有可用的WiFi网络:
$ sudo wifresti
选择你使用的操作系统:
/$$ /$$$$$$ /$$ /$$
|__/ /$$__ $$ | $$ |__/
/$$ /$$ /$$ /$$| $$ __//$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ /$$
| $$ | $$ | $$| $$| $$$$ /$$__ $$ /$$__ $$ /$$_____/|_ $$_/ | $$
| $$ | $$ | $$| $$| $$_/ | $$ __/| $$$$$$$$| $$$$$$ | $$ | $$
| $$ | $$ | $$| $$| $$ | $$ | $$_____/ ____ $$ | $$ /$$| $$
| $$$$$/$$$$/| $$| $$ | $$ | $$$$$$$ /$$$$$$$/ | $$$$/| $$
_____/___/ |__/|__/ |__/ _______/|_______/ ___/ |__/
Author: LionSec | Website: www.neodrix.com | @lionsec1 V1.0
Please choose your operating system. 1) linux
2) Windows
3) Mac OS
> 1
[...]
您将看到可用Wifi网络的列表。输入网络名称以查看其密码。要查看所有WiFi网络的密码,输入“a”,然后回车。
[...]
All wireless networks : HP 7 VoiceTab Network
JioFi4_12E9FEsktab Insert the network name , or press (a) to see information about all networks.
> JioFi4_12E9FE###################################### - JioFi4_12E9FE - ######################################
key-mgmt=wpa-psk
psk=xxxxxxxx
#############################################################################################
[...]
要退出,请按CTRL+C。
此外,在Kali Linux中还有许多可用的密码恢复工具。您不必安装Kali Linux。只需在Ubuntu系统上安装Kali Linux工具并使用您选择的密码恢复工具。
本文译自: Find WiFi Password Of Connected Networks In Linux
作者: SK
译者: 生材有道
校对: 开源科学计算
原文及本文遵循: [CC BY-NC 4.0]