警告。如何防止别人“盗窃” 你的 WiFI 密码,6 个方案提供给你~
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了警告。如何防止别人“盗窃” 你的 WiFI 密码,6 个方案提供给你~相关的知识,希望对你有一定的参考价值。
上周写了一篇博客,《用 Python 脚本能获取 Wifi 密码么?能。》,大家反馈这仅仅是解决了本地电脑已链接 wifi 密码,那如果有人尝试暴力“破解” 我们的 WiFI 密码,有没有手段组织他们呢?
有啊,这不就来了么。
文章目录
⛳️ 【敌方】用到的核心第三方库
知己知彼,百战百胜,想要防止别人“盗取”你的 WIFI 密码,那首先要知道对方是如何暴力获取你的密码的。
初级选手一般用到 Python 的第三方库是 pywifi
,手段被属于暴力破解范畴,技巧是弱密码+循环尝试,模块安装使用如下命令。
pip install pywifi
该库开源地址为:https://github.com/awkman/pywifi,可以随时关注其更新情况。
接下来先尝试一下最基础代码。
import pywifi # 模块导入
from pywifi import const # 常量导入
# 创建 wifi 对象
wifi = pywifi.PyWiFi()
# 获取第一个 wifi 网卡
ifaces = wifi.interfaces()[0] # 获取到第一个无线网卡
print(ifaces)
print('无线网卡名为:', ifaces.name())
# 连接到wifi 时状态码是4,未连接是0
print("状态码:", ifaces.status())
# 使用内置常量 const.IFACE_CONNECTED为4
if ifaces.status() == const.IFACE_CONNECTED:
print('已连接')
else:
print('未连接')
获取的是 WLAN 连接状态。
这个准备工作完成之后,他们就会使用密码本或者自定义关键词,尝试获取你的密码,具体实施步骤如下所示。
⛳️ 实战场景
先调用内置方法,获取附近 WiFi,下述代码运行之前一定要增加停顿时间,否则会出现无法找到 WiFi 名称情况。
import pywifi # 模块导入
from pywifi import const # 常量导入
import time
# 创建 wifi 对象
wifi = pywifi.PyWiFi()
# 获取第一个 wifi 网卡
ifaces = wifi.interfaces()[0] # 获取到第一个无线网卡
# 执行扫描
ifaces.scan()
# 停顿一段时间,等待扫描结果
time.sleep(3)
wifi_list = ifaces.scan_results()
print(wifi_list)
for w in wifi_list:
print(w.ssid)
运行代码,输出如下结果。
360WiFi-Cxxxx
CMCC-6pqa
CMCC-CUfQ
@PHIxxxx_E5
yuelxxxxx_EXT2.4G
1303
360WiFi-C8xxxx-5G
有这些 WiFi 名称,下面就会对指定 WiFi 进行连接测试,下面的代码拿一个我们也按照这个步骤,拿一个已知道密码的 WiFi 热点进行测试。
import pywifi # 模块导入
from pywifi import const # 常量导入
import time
def connect_wifi():
wifi = pywifi.PyWiFi()
# 获取第一个无线网卡
ifaces = wifi.interfaces()[0]
print(ifaces)
# 如果连接 wifi 首先断开
ifaces.disconnect()
time.sleep(2)
wifi_status = ifaces.status()
# 未连接,调用如下代码
if wifi_status == const.IFACE_DISCONNECTED:
# 创建WiFi连接文件
profile = pywifi.Profile()
# 设置要连接WiFi的名称
profile.ssid = "我们自己的 Wifi "
# 检测网卡状态
profile.auth = const.AUTH_ALG_OPEN
# 设置 wifi 加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
# 设置加密单元
profile.cipher = const.CIPHER_TYPE_CCMP
# 调用密码
profile.key = '我自己的 Wifi 密码'
# 删除连接过的wifi文件
ifaces.remove_all_network_profiles()
# 设定新连接文件
new_profile = ifaces.add_network_profile(profile)
# 连接 wifi
ifaces.connect(new_profile)
# 等待wifi连接的时间,可长可短,具体自行设置
time.sleep(2)
if ifaces.status() == const.IFACE_CONNECTED:
print("连接成功")
else:
print("连接失败")
# 断开连接
ifaces.disconnect()
else:
pass
if __name__ == '__main__':
connect_wifi()
再总结一下核心逻辑,实现了 WiFi 列表获取之后,他们就会通过暴力循环来实现密码解析。
实战中也可能会用到 WIFI 密码本,不过一般不好用,好用的橡皮擦倒是有一份,在梳理一下对方逻辑,然后我们从中寻找避免被 “盗取” 密码的办法,“偷” 密码逻辑如下。
- 通过 pywifi 模块扫描所有 WiFi 热点;
- 迭代各个热点;
- 读取密码本文件,然后逐一使用密码连接当前正在迭代的 WiFi ,获取连接状态;
- 连接成功记录到文件中,连接失败舍弃掉
- 密码本遍历完毕,更换下一个热点,继续执行相同操作。
该技术的一些疑问
这种方式“获取” 密码速度怎么样?快么?
很慢,除非我们使用的是 12345678,11111111,66666666 这样简单的密码。
这代码到底有没有用?
对于获取 WIFI 密码来说,这代码没啥毛病,但是效率不高,实战中效果并不理想。
可以使用多线程破解吗
不可以,电脑网卡同时只能连接一个 WIFI ,无法使用多线程或者多进程操作。但如果对方在电脑上安装了多个网卡,那就另说了。
他们有没有好一些的 WIFI 破解思路呢?
有,但是学习成本会变高。
例如 单片机 WIFI 攻击。
也可以研究一下 Aircrack-ng ,也能获取到 wifi 密码。
密码本哪里有
一般 “盗窃者” 找不到好用的密码本,除非他们在 评论区留言邮箱或者 联系方式,或者点击下面卡片,找橡皮擦索取。
回到本文标题《如何防止别人“盗窃”你的 WiFI 密码》,到底有什么办法呢。
如何防止别人 “盗取” 你的 WiFi 密码,6 个建议!
- 密码长度不低于 11 位;
- 使用复杂密码组合,用姓名首字母缩写+手机号+2~4 个标点符号。
- 在路由器或家用防火墙关闭 WiFI 热点发现,然后给 WiFi 设置固定名称,只能输入特定名称才能连接
- 开启路由器或家用防火墙的【防蹭网】功能,最新的路由基本都能设置。
- 在路由器/家庭防火墙配置 IP/MAC 绑定,只能指定设备登录。
- 开启 WiFi 连接确认功能,当有新设备连接 WiFi 时,需要我们手动点击一下同意。
掌握这些配置方法之后,我想没有人能 蹭到你的 WiFI 了。
📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 768 篇原创博客
从订购之日起,案例 5 年内保证更新
以上是关于警告。如何防止别人“盗窃” 你的 WiFI 密码,6 个方案提供给你~的主要内容,如果未能解决你的问题,请参考以下文章