警告。如何防止别人“盗窃” 你的 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 密码本,不过一般不好用,好用的橡皮擦倒是有一份,在梳理一下对方逻辑,然后我们从中寻找避免被 “盗取” 密码的办法,“偷” 密码逻辑如下。

  1. 通过 pywifi 模块扫描所有 WiFi 热点;
  2. 迭代各个热点;
  3. 读取密码本文件,然后逐一使用密码连接当前正在迭代的 WiFi ,获取连接状态;
  4. 连接成功记录到文件中,连接失败舍弃掉
  5. 密码本遍历完毕,更换下一个热点,继续执行相同操作。

该技术的一些疑问

这种方式“获取” 密码速度怎么样?快么?
很慢,除非我们使用的是 12345678,11111111,66666666 这样简单的密码。

这代码到底有没有用?
对于获取 WIFI 密码来说,这代码没啥毛病,但是效率不高,实战中效果并不理想。

可以使用多线程破解吗
不可以,电脑网卡同时只能连接一个 WIFI ,无法使用多线程或者多进程操作。但如果对方在电脑上安装了多个网卡,那就另说了。

他们有没有好一些的 WIFI 破解思路呢?
有,但是学习成本会变高。

例如 单片机 WIFI 攻击。
也可以研究一下 Aircrack-ng ,也能获取到 wifi 密码。

密码本哪里有
一般 “盗窃者” 找不到好用的密码本,除非他们在 评论区留言邮箱或者 联系方式,或者点击下面卡片,找橡皮擦索取。

回到本文标题《如何防止别人“盗窃”你的 WiFI 密码》,到底有什么办法呢。

如何防止别人 “盗取” 你的 WiFi 密码,6 个建议!

  1. 密码长度不低于 11 位;
  2. 使用复杂密码组合,用姓名首字母缩写+手机号+2~4 个标点符号。
  3. 在路由器或家用防火墙关闭 WiFI 热点发现,然后给 WiFi 设置固定名称,只能输入特定名称才能连接
  4. 开启路由器或家用防火墙的【防蹭网】功能,最新的路由基本都能设置。
  5. 在路由器/家庭防火墙配置 IP/MAC 绑定,只能指定设备登录。
  6. 开启 WiFi 连接确认功能,当有新设备连接 WiFi 时,需要我们手动点击一下同意。

掌握这些配置方法之后,我想没有人能 蹭到你的 WiFI 了。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 768 篇原创博客

从订购之日起,案例 5 年内保证更新

以上是关于警告。如何防止别人“盗窃” 你的 WiFI 密码,6 个方案提供给你~的主要内容,如果未能解决你的问题,请参考以下文章

别人用手机连接了局域网内的 wifi,怎么窥视到手机中的信息数据??

android中怎么用代码获取当前wifi的密码

Wifi万能钥匙如何破别人家的WiFi?

如果别人改我wifi密码是否他得先连我家wifi?

怎么攻击别人wifi?

防止别人下载或访问你的PHP配置文件