实验内容:不借助其他工具,用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破解的更多相关文章

  1. 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解

    2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...

  2. 2018-2019-2 20165312《网络攻防技术》Exp1 PC平台逆向破解

    2018-2019-2 20165312<网络攻防技术>Exp1 PC平台逆向破解 一.Exp1.1 直接修改程序机器指令,改变程序执行流程 知识要求:Call指令,EIP寄存器,指令跳转 ...

  3. # 2018-2019-2 20165210《网络攻防技术》Exp1 PC平台逆向破解(BOF实验)

    2018-2019-2 20165210<网络攻防技术>Exp1 PC平台逆向破解(BOF实验) 实验分为三个部分: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...

  4. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  5. python制作wifi破解(跑字典(单线程))

    很鸡巴简单,接上一篇文章 import pywifi import sys import time from pywifi import const def test_wifi_connect(pas ...

  6. 2017-2018-2 20179205《网络攻防技术与实践》第十一周作业 SQL注入攻击与实践

    <网络攻防技术与实践>第十一周作业 SQL注入攻击与实践 1.研究缓冲区溢出的原理,至少针对两种数据库进行差异化研究 缓冲区溢出原理   在计算机内部,输入数据通常被存放在一个临时空间内, ...

  7. Python中的网络扫描大杀器Scapy初探

    Python中的网络扫描大杀器Scapy初探     最近经历了Twisted的打击,这个网络编程实在看不懂,都摸不透它的内在逻辑,看来网络编程不是那么好弄的.还好,看到了scapy,这种网络的大杀器 ...

  8. 20145236《网络攻防》 Exp3 免杀原理与实践

    20145236<网络攻防> Exp3 免杀原理与实践 一.基础问题回答 1.杀软是如何检测出恶意代码的? 恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的 ...

  9. 20155201 网络攻防技术 实验八 Web基础

    20155201 网络攻防技术 实验八 Web基础 一.实践内容 Web前端HTML,能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. We ...

随机推荐

  1. IDEA maven项目下测试mybatis例子,使用mappper class或package引入mapper映射文件,总是报错Invalid bound statement(所有配置完全正确)

    困扰几个小时,终于查到解决办法及原因(可以直接到最后看解决方案) 环境就是用IDEA搭建的maven项目,主要jar包引入配置如下 <dependencies> <dependenc ...

  2. 2. Oracle体系结构

    一. Oracle体系结构图 体系结构图如下: 体系结构图看似简单:其中很有玄机.它对Oracle来讲:相当于武功中的心法.配合体系结构来学Oracle:能起到事半功倍的效果.我们平时遇到Oracle ...

  3. SharePoint如何模拟用户

    try { SPSecurity.RunWithElevatedPrivileges(delegate() //用此方法模拟管理员账户运行此事件处理程序 { SPWeb web = SPContext ...

  4. setTag,getTage复用

    radioButtons = new RadioButton[rgMain.getChildCount()]; //遍历RadioGroupfor (int i = 0; i < radioBu ...

  5. pgAdmin III 单表数据的导出导入

    看了好几种方法也试验了几次都没成功,终于找到一种比较简单的试验成功的方法,记录下来留作备份. 将表testTable_1里的数据导入到表testTable_2里,如图: 两表的结构相同.表testTa ...

  6. C语言字节对齐问题详解

    引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始 ...

  7. Android Studio 第一次启动配置

    第一次启动AS前,为了避免重新下载新版本的SDK 操作如下: AS启动前,请先将bin目录的idea.properties文件中增加一行:disable.android.first.run=true ...

  8. C# XtraGrid的行指示器(RowIndicator)行号以及图标设置

    以下是几种对Xtragrid的行指示器的几种操作方法,在实际场景当中,很多都需要用到,直接上效果图和源码 一.基本篇—设置表头行号 1.效果图 2.实现方法 需要对XtraGrid事件CustomDr ...

  9. sendfile Linux函数

    现在流行的 web 服务器里面都提供sendfile 选项用来提高服务器性能,那到底 sendfile 是什么,怎么影响性能的呢? sendfile 实际上是 Linux 2.0+ 以后的推出的一个系 ...

  10. rabbitmq日志记录进出的每条消息

    参考: https://blog.csdn.net/u013256816/article/details/76039201 https://blog.csdn.net/aosica321/articl ...