基于WPA的暴力破解(JAVA实现破解WIFI)

article/2025/9/23 16:38:29

基于WPA的暴力破解

基于WPA四次握手协议的暴力破解

在KRACK漏洞发现前,已知的破解WPA方法只有字典攻击。对于WPA-PSK这套体系,如果没有密码几乎没法窃听他的通信,在有了密码的情况下 WPA 的窃听也不具有 WEP 中窃听的随意性,在 WPA 中 SNonce,ANonce(随机数) 也很好的起到了加密数据防止窃听的作用。在这里插入图片描述

基于四次握手的暴力破解

字典攻击作为一种常用的攻击手段要明白的是从哪里开始攻击, 要寻找和密码有有联系的信息元素。在WPA中和密码有联系的有 数据传输包和四次握手包。由于无法知道明文和 WPA的数据加密算法的复杂性,在数据传输包上要找到可以攻击的信息元素基本上很难实现,所以只能在握手包里寻找有密码有联系的信息。在上面的四次握手包的图片中很清楚的表明,在四川握手中主要传递的有如下数据:SSID,Amac,Smac,Snonce,Anonce,802.1x data(在图中没标出,这个数据帧用来生成MIC),MIC签名。前面 6 个元素很清楚,一般不会和密码有联系的。只有最后一个 MIC和密码有所联系。通过MIC的派生图我们知道,MIC是通过上面六个信息元素和密码通过三个主要的算法派生出来的。 实现方法如下:

  • 把字典里的密码作为PSK(预共享密钥),与SSID通过SHA1算法生成PMK,即:PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)(式 3.1-1)
    其中passphrase为PSK,4096表示函数迭代的次数。

  • 生成的PMK再与Amac和Smac,Anonce和Snonce生成PTK,即:
    PTK=SHA1_PRF(PMK, Len(PMK), “Pairwise key expansion”,MIN(Amac,Smac) || Max(Amac,Smac) || Min(Anonce,Snonce) || Max(Anonce,Snonce)) (式3.1-2)

  • 最后MIC KEY取值为PTK 的前16 个字节,然后和802.1x data生成MAC,即:
    MIC = HMAC_MD5(MIC Key,16,802.1x data) (式3.1-3)

  • 当在字典里找到一个密码他的 MIC’等于握手包中的 MIC,这时字典破解成功。这就是我们要的那个密码。如果把字典里的所有密码都找遍了还有没有符合上述条件的。那么破解失败。

常用WIFI破解工具

能否快速破解WiFi密码要看选用的破解工具,而能否破解WiFi密码最终要看字典是否足够强大。

  1. Aircrack是破解WEP/WPA/WPA2加密的主流工具之一,是 Kali Linux 里面最热门的 WiFi 破解领域的软件。Aircrack-ng套件包含的工具可用于捕获数据包、握手验证。可用来进行暴力破解和字典攻击。Aircrack-ng是一款多合一整合套件,该套件大致包含下列几种工具:
  • Aircrack-ng:无线密码破解
  • Aireplay:生成网络数据,去客户端验证
  • Airodump-ng:数据包捕捉
  • Airbase-ng:配置伪造的接入点
  1. Hashcat是自称世界上最快的密码恢复工具。它在2015年之前拥有专有代码库,但现在作为免费软件发布。适用于Linux,OS X和Windows的版本可以使用基于CPU或基于GPU的变体。支持hashcat的散列算法有Microsoft LM哈希,MD4,MD5,SHA系列,Unix加密格式,MySQL和Cisco PIX等。
    使用aricrack-ng暴力破解8位数密码需要50个小时, 但是使用Hashcat只要1个半小时不到。使用aircrac-ng破解密码的时候计算机会爆卡, 内存占用100%是常事, Hashcat不但支持CPU破解,还支持GPU破解,利用显卡的计算能力进行极速破解。即使使用普通的CPU或GPU,每秒也能够生成1.35亿个哈希值。

  2. WiFi万能钥匙[4]的基础功能并不是采用“密码库穷举(逐个尝试)暴力破解”的方式获得正确密码,而是通过用户上传分享的热点(主动或“被动”)到后台服务器的方式收集、积累数据。后台服务器维护一份热点数据库,其中包含着热点名称(或者用来唯一标识的MAC地址)以及与其对应的密码字符串。查询密码时,用户将周围扫描到的陌生热点信息上传,服务器后台查询到相对应的密码(如果分享过的话)后返回给APP供用户选择使用。不过WiFi共享钥匙有一个“深度解锁”的功能与“暴力破解”沾点边,但它也仅仅是使用几个常见的较为简单的密码来尝试连接热点,不能称得上算“密码库穷举”。现在WiFi万能钥匙充实密码库的方式主要是用户主动分享,毕竟用户基数变大了,但在以前可不是这样。早期的WiFi万能钥匙得到热点密码数据的手段并不高明,甚至可以说是不光彩的。

字典攻击代码实现

用JAVA实现了在windows系统暴力破解WIFI密钥的脚本。代码原理是生成对应WIFI的本地文件,然后使用调用控制台使用netsh命令进行网络连接,使用ping命令测试是否连接破解成功。
在这里插入图片描述
主机连接的WIFI都会在本地生成配置文件,内容包含了WIFI配置的关键信息。比如SSID信息:WIFI名name(划线处)以及对应的16进制hex,还有WIFI的加密方式以及预共享密钥。所以连接WIFI要生成本地的配置文件,让机器识别代码。

在这里插入图片描述
第一步就是连接本地字典,然后从字典读取密码作为PSK,第三步根据指定的格式以及PSK创建配置文件,第四步就是将配置文件添加到本地指定的位置。然后就是尝试连接网络。最后一步就是ping一个网站来测试是否连接成功。

实验结果以及总结

在这里插入图片描述
由于密码比较简单,所以尝试5次就破解了,但是上述代码中,每执行一次就要暂停3s,来等待连接结果,所以效率是很低的。

破解 WPA 是最好要在纯命令行下进行,在命令行模式下会执行的更快。他们的速度差异是:linux命令行最快398.24 k/s,windows下次之 264.93 key/s。这个也说明了像Aircarck类的无线破解软件都基于linux系统。所以破解 WPA在纯命令行模式下有更高效的优势。下面是在纯命令行模式下实测数据。 密码尝试数398.24key/s ,产生 PMK 的速度是193PMK/s PMK 库的增长数度是24.6kb/s ,直接PMK 库尝试密码的速度为57136.97key/s 。所以对于PMK的生成:
PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
在这个函数里的输入值都很明了除了这个4096,这就是设计者加入的防范,他的意思让函数迭代 4096次,主要目的就是大大的降低字典攻击的效率,同时也增加了函数的复杂性。这个函数的消耗的时间占派生一个 MIC 的总时间的 99.3%,也就是WPA里其他算法消耗的时间只占不到总时间的 0.7%。所以建库破解就是先完成时间上99.3%的任务,产生一个 PMK 库。破解时只要完成时间上 0.7%的工作了。这也就解释了为什么建库比较慢。

源码

package wifi_crack;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader

http://chatgpt.dhexx.cn/article/WYL6Xb2H.shtml

相关文章

无线渗透(中)--WPS破解

0x00. 前言 基于第一篇文章WPA密码破解的反馈,有人提问说能否写一下关于WPA2的文章。笔者在这里回答一下,破解WPA2的流程和WPA是一样的,WPA2只是采用了更加复杂可靠的加密算法(利用CCMP替代了TKIP,AES替代了RC4&#…

WPA2破解教程(详细步骤)

本博客内容旨在技术学习交流,仅供学习参考之用,请勿用于任何非法用途,否则后果作者概不负责。 一、前言 本人前段时间在研究WiFi破解(WPA2)的相关原理和具体步骤,期间在网上搜索了很多资料,也走…

Ubuntu 下 Wine的安装与使用(以22.04为例)

安装 验证是否为64位架构 dpkg --print-architecture返回amd64 查看是否安装了32位架构 dpkg --print-foreign-architectures若显示i386则跳过此步,否则执行 sudo dpkg --add-architecture i386再次检查 dpkg --print-foreign-architectures下载并添加 WineHQ…

wine 的使用方法

wine中文乱码的终极解决方法 准备字体:simfang.ttc 是许多 Windows 应用默认使用 simfang.ttc 字体。下载simfang.ttc 字体 simsun.ttc复制到/home/user/.wine/drive_c/windows/fonts里面。 进入 Wine 的注册表 “/home/用户名/.wine/dosdevices/c:/windows/”&…

linux安装wine

wine安装过程记录 1 2 You will find documentation on https://www.winehq.org/documentation 3 For help with installing from a package or from source, please consult the Getting Wine chapter of the User’s guide. 4 5 https://wiki.winehq.org/Category:Di…

如何在CentOS上安装和使用Wine

转载:http://ghoulich.xninja.org/2016/08/09/install-and-use-wine-on-centos/ 最近想要把工作环境从Windows切换到Linux系统,但公司的IM软件(豆芽)只有Windows和MAC的版本,很多常用工具也只有Windows的版本&#xf…

wine 安装与使用(ubuntu中安装windows下软件)

转载自:https://blog.csdn.net/qq_34638161/article/details/81271977 https://m.linuxidc.com/Linux/2007-11/8759.htm https://blog.csdn.net/Gerald_Jones/article/details/80781378 一、安装 wine :能够在多种 POSIX-compliant 操作系统&#xff08…

WinEdt使用技巧

最近在使用WinEdt编辑论文,遇到了不少问题,接下来会慢慢更新,帮助大家避坑。 目录 1安装包 2公式 2.1行内公式 2.2显示公式或列表公式 2.3分数 1安装包 如果在编译时遇到错误:!LaTeX Error: File xxx.sty not found. 说明还…

Linux浅析之四——Wine

一、Wine的缘起 Wine——Wine Is Not an Emulator,这是和GNU一样的递归命名方式,Wine的目的就是让Windows软件可以不加修改的运行在Linux系统中,换句话说实现Linux对Windows的“兼容性”。在Red Hat(包括Fedora和CentOS&#xff…

wine学习笔记

目前 wine 版本为较为稳定的 8.0 版本,本文也是重点围绕 wine 8.0 安装、使用以及 wine 工具介绍等方面进行了学习和整理。 一、安装 wine 1. 如果你使用的是 64 位系统,需要先开启 32 bit 架构支持: $ sudo dpkg --add-architecture i386…

【如何在Ubuntu 20.04系统上安装和使用Wine教程】

文章目录 在Ubuntu上安装Wine 5.0在Ubuntu上安装Wine 6.0配置Wine在Ubuntu上安装Notepad ubuntu 下安装caj Wine是一个开源兼容层,允许您在诸如Linux,FreeBSD和MacOS等UNIX的操作系统上运行Windows应用程序。 Wine是“Wine Is Not an Emulator”的首字母…

wine使用技巧

wine使用技巧 一:常用软件使用技巧1.1:给安装的软件添加快捷方式到桌面方便下次打开 一:常用软件使用技巧 在网上看到有人问wine安装软件后下次不知道怎么打开,打开不方便,于是就写了这个帖子 1.1:给安装…

wine安装及使用

首先说明下系统环境,我系统使用的是deepin15.11,其他基于debain的发行版,安装及使用方法应该也是差不多的。 一、Wine安装 这里引用deepin论坛上的一个帖子:https://bbs.deepin.org/forum.php?modviewthread&tid176555 Ste…

[Linux] 使用 Wine

Wine 是一个在 x86、x86-64 上允许类 Unix 操作系统在 X Windows System 下运行 Microsoft WIndows 程序的软件。Wine 通过提供一个兼容层来将 Windows 的系统调用转换成对 POSIX 标准的调用。 Wine 最早是“Windows Emulator”,即 Windows 模拟器的所写&#xff0c…

Windows 之dos命令

1.应用场景 知道并且熟练掌握常用[有用]的dos命令, 提高工作和生活效率. 2.学习/操作 1.介绍 百度百科: https://baike.baidu.com/item/DOS命令/5143255?fraladdin 简单讲: DOS命令,计算机术语,是指DOS操作系统的命令&#xff…

如何运用dos命令进入C盘?Dos常用命令大全

如何运用dos命令进入C盘?Dos常用命令大全 在开始界面找到运行,快捷键Win+R,输入命令cmd,点击确定 现在我们已经进入以下界面 在Administrator>后面输入c: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前录

dos常用基础命令

目录 dir 查看指定目录 通配符匹配 运行可执行文件 运行其他目录的可执行文件 cd 进入当前盘符的根目录 进入其他盘符根目录 md 和 rd deltree move copy xcopy del diskcopy ren type memory netstat dir 查看当前目录中的文件 /p 分屏显示 /w 简略同行模…

基本DOS命令用法

一.常用的DOS命令: 1.查看目录内容 dir 2.创建目录文件 md 3.打开指定目录命令 cd 4.删除当前指定的子目录 rd 5.改变当前盘符 盘符冒号 6.文件复制拷贝 copy 7.显示文本文件内容命令 type 8.更改文件名 ren 9.删除文件命令 del 10.清楚屏幕命令 cls 11.…

1、常用DOS命令大全

一、DOS(DiskOperatingSystem),磁盘操作系统 特点:单任务、单用户系统使用命令行方式 控制计算机二、DOS命令行的组成 1、DOS命令行中的基本概念 当前驱动器、当前盘、当前目录、相对路径、绝对路径2、DOS命令的格式 命令/参数 文件或文件夹三、常用D…

常用的dos网络命令

常用的dos网络命令 ping:测试网络连接状况以及信息包发送和接收状况,TCP/IP 协议中最常用的命令。(网络中TTL通常表示包在被丢弃前最多能经过的路由器个数。也可以判断电脑系统:TTL值在100至130之间,主机系统为WINDOWSTTL,值在240至255之间&…