网络攻防大作业——用python实现wifi破解
实验内容:不借助其他工具,用python暴力破解wifi
实验工具:python3.6+pywifi模块+密码字典
实验环境:Windows7(64bit)
实验思路:
- 首先搜索附近的wifi,将这些wifi信息(wifi个数、wifi名称、对应的Mac地址、以及信号强度)显示出来。
- 其次通过显示出来的wifi列表,如果想对某个wifi进行破解,只需点击该行,就可以将该wifi的名称获取到。
- 最后需要将使用密码字典文件导入进来实施破解即可。如果破解成功就弹出对话框显示破解成功,并且将破解获取到的wifi密码显示到wifi密码这一栏中,如果破解不成功,显示破解失败对话框。
实验步骤:分两步
step1:编写界面代码
这一步需要使用tkinter模块,这是python自带的图形界面库,通过import tkinter调用使用就可以了,代码中set_init_window函数就是实现界面排版功能。最后的界面实现结果如下图:

其中,各项表示的含义:
- 搜索附近wifi:搜索wifi
- 开始破解:破解之前需要获取wifi和密码文件路径
- 目录路径:显示密码字典文件的路径
- wifi账号:显示的是所要破解的wifi名称
- wifi密码:显示的是所要破解WiFi的密码
wifi列表中包括四列,分别是:wifiID,SSID,BSSID,signal
- wifiID:表示wifi的个数
- SSID:表示wifi的名称
- BSSID:表示wifi的MAC地址
- signal:表示wifi的信号强度
step2:编写破解wifi代码
实现过程:
1、首先导入pywifi模块,因为要启用wifi那么必须要有启用wifi的模块。
2、有了启用wifi的模块以后,我们首先要抓取网卡接口, 因为连接无线wifi,必须要有网卡才行。一台电脑可能有很多网卡, 但是一般都只有一个wifi网卡,我们使用第一个网卡就行了。
3、抓取到以后就进行连接测试,首先是要断开所有的wifi网卡上 的已连接成功的,因为有可能wifi上有连接成功的在。
4、断开所有的wifi以后,我们就可以进行破解了, 从(.txt)文档中一行一行读取我们的密码字典, 一遍一遍的刷密码,直到返回isOK为True,表示破解成功。
5、因为连接也是要时间的,不可能一秒钟尝试好多次, 而且还依赖字典的强度。

对密码字典的思考:
如果想要破解某个wifi的话,还是应该结合社会工程学搜集该wifi的信息,然后根据这些信息通过密码生成器从而生成更具有针对性的密码,这样破解速度上有很大的提高。
实验总结和不足的地方:
1、学习了python的语法已经针对性的学习了GUI界面设计部分,但是界面部分设计的还是有些死板,可以通过pack()来管理界面,更好地办法可以通过h5+css+python来设计界面,自己造轮子,不用调用tkinter模块。
2、学习了如何使用python破解wifi
github下载
网络攻防大作业——用python实现wifi破解的更多相关文章
- 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解
2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...
- 2018-2019-2 20165312《网络攻防技术》Exp1 PC平台逆向破解
2018-2019-2 20165312<网络攻防技术>Exp1 PC平台逆向破解 一.Exp1.1 直接修改程序机器指令,改变程序执行流程 知识要求:Call指令,EIP寄存器,指令跳转 ...
- # 2018-2019-2 20165210《网络攻防技术》Exp1 PC平台逆向破解(BOF实验)
2018-2019-2 20165210<网络攻防技术>Exp1 PC平台逆向破解(BOF实验) 实验分为三个部分: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...
- 数据库大作业--由python+flask
这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...
- python制作wifi破解(跑字典(单线程))
很鸡巴简单,接上一篇文章 import pywifi import sys import time from pywifi import const def test_wifi_connect(pas ...
- 2017-2018-2 20179205《网络攻防技术与实践》第十一周作业 SQL注入攻击与实践
<网络攻防技术与实践>第十一周作业 SQL注入攻击与实践 1.研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 缓冲区溢出原理 在计算机内部,输入数据通常被存放在一个临时空间内, ...
- Python中的网络扫描大杀器Scapy初探
Python中的网络扫描大杀器Scapy初探 最近经历了Twisted的打击,这个网络编程实在看不懂,都摸不透它的内在逻辑,看来网络编程不是那么好弄的.还好,看到了scapy,这种网络的大杀器 ...
- 20145236《网络攻防》 Exp3 免杀原理与实践
20145236<网络攻防> Exp3 免杀原理与实践 一.基础问题回答 1.杀软是如何检测出恶意代码的? 恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的 ...
- 20155201 网络攻防技术 实验八 Web基础
20155201 网络攻防技术 实验八 Web基础 一.实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...
随机推荐
- moment.js用法总结
moment(),获取当前时间 moment(string)把字符串变成moment时间格式 moment().format("YYYY-MM-DD HH:mm:ss"):规定时间 ...
- OpenGL 知识二
OpenGL综述 September 14, 2014 学习OpenGL是学习计算机图形学的一个工具,因为计算机上图形的显示要依靠底层的软件和硬件,学习图形学除了学习基本的概念,线,曲面,图形生成,变 ...
- RPM常用命令解释
RPM软件包管理器,英文:RPM Package Manager(原Red Hat Package Manager,现在是一个递归缩写) -i安装rpm包 -u升级rpm包 -q查询已安装的软件信息 ...
- Android 监听apk安装替换卸载广播
首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程 ...
- UISegmentedControl的基本用法
本文转载至 http://www.tuicool.com/articles/yUfURj 原文 http://blog.csdn.net/hmt20130412/article/details/38 ...
- 【Java并发编程二】同步容器和并发容器
一.同步容器 在Java中,同步容器包括两个部分,一个是vector和HashTable,查看vector.HashTable的实现代码,可以看到这些容器实现线程安全的方式就是将它们的状态封装起来,并 ...
- Xcode - 添加自定义代码提示
在开发过程中我们要学会去模仿苹果的一些用法,这样才能让开发更有效率,更规范. 1.苹果自带的代码片段提示 代码片段就是你在Xcode中敲for然后回车,你会看到 for (<#initializ ...
- open-falcon之agent
功能 采集数据,解析数据,上报数据至transfer 基本涵盖了系统层面监控指标,直接将数据转换为metricValue形式,上报至transfer 支持插件采集,代码插件放可受git管理,放置在pl ...
- Material Design系列第七篇——Maintaining Compatibility
Maintaining Compatibility This lesson teaches you to Define Alternative Styles Provide Alternative L ...
- c++ 用new创建二维数组~创建指针数组【转】
#include <iostream> using namespace std; void main() { //用new创建一个二维数组,有两种方法,是等价的 //一: ] = ][]; ...