【Kali】WPA / WPA2破解

article/2025/9/23 16:12:15

文章目录

    • WPA / WPA2简介
    • 攻击WPA
    • 使用Aircrack-ng进行WPA破解
    • 用Cowpatty进行WPA破解
    • 使用GPU进行WPA破解
    • Pyrit
    • OclHashcat
    • Wifite

WPA / WPA2简介

      WPA / WPA2是Wi-Fi联盟开发的两个不同版本的安全协议,用以替代WEP作为802.11协议的安全标准。
WPA协议于2003年首次发布,并于2004年被其后继WPA2取代,作为IEEE 802.11i标准的一部分。
      WPA和WPA2都支持两种身份验证模式:WPA-PersonalWPA-Enterprise
在WPA-个人模式下,预共享密钥(PSK)用于身份验证,不需要身份验证服务器。 PSK可以是8到63个可打印ASCII字符的密码。
同时,WPA-Enterprise模式需要使用RADIUS协议与访问点(AP)通信的身份验证服务器,并且使用可扩展身份验证协议(EAP)对客户端进行身份验证。

      我们将重点研究攻击WPA个人认证。
      WPAPpersonal和WPA-Enterprise在AP和客户端(下图中的STA)之间共享身份验证过程,称为四次握手
在这里插入图片描述
      身份验证过程的四个阶段如下:

   •在第一阶段,双方独立建立了256位的成对主密钥(PMK)。它是根据PSK和网络SSID生成的。然后,AP向客户端发送一个随机数A-Nonce。
   •客户端向AP发送随机的S-Nonce,以及消息完整性代码(MIC)。同时,客户端计算将用于加密流量的成对瞬态密钥(PTK)。 PTK源自客户端和AP的PMK,A-Nonce,S-Nonce和MAC地址。
   •AP派生PTK本身,然后向客户端发送用于解密多播和广播流量的组临时密钥(GTK)和MIC。
   •客户端向AP发送确认。通过分析四次握手,我们可以注意到,与WEP不同,加密密钥(PTK)是唯一的,因为它是与握手过程相关的参数的函数,并且永远不会在握手过程之间进行交换。 AP和客户端。

      WPA使用Wi-Fi联盟开发的临时密钥完整性协议(TKIP)加密协议来临时替代WEP加密,但是还发现了一些漏洞,并且在802.11标准的最新版本中已弃用该漏洞。

      WPA2默认情况下使用CCMP(反密码模式协议),它是基于高级加密标准(AES)(事实上的标准对称加密算法)的协议。

攻击WPA

      WPA / WPA2协议(以下简称WPA)被认为是安全的,因为它依赖于强大的身份验证和加密协议,尤其是具有AES-CCMP的WPA2。

      接下来,我们证明仅当使用弱PSK时,它才容易受到攻击。
      事实证明,TKIP容易受到攻击的攻击,这些攻击可能导致数据包解密和注入,但不受PSK恢复的攻击。
      对于PSK破解,我们需要捕获四个握手帧,这些握手帧为我们提供了用于计算PTK的所有参数,包括用于检查候选密钥是否正确的MIC。一旦获得了捕获的数据包文件,我们就可以尝试通过对它发起离线暴力攻击或字典攻击来破解密钥。暴力攻击意味着检查整个密钥空间,即所有可能的组合 可能构成关键的字符。
      为了可行,PSK必须简短。 否则,强大的PSK将需要很长时间才能破解。 要了解所需的时间量,我们可以通过在线提供的一种暴力计算器进行估算。 假设我们每秒可以测试100,000个密钥,这是一个相当高的比率,并且密钥的字符集是字母数字,那么我们可能会惊讶地发现破解8个字符长的密钥所需的时间:
在这里插入图片描述
      对于一个63个字符的长键,结果更加惊人:
在这里插入图片描述
      在词典攻击中,我们需要测试词典文件或单词列表中包含的所有单词。
      为了成功,密钥必须包含在所使用的单词表中。

      有一些技术可以加快破解过程。对于字典攻击,一种技术是使用预先计算的哈希表(或表)(也称为彩虹表)代替单词列表。
这样,我们就可以根据字典文件中的单词预先计算PMK,并将它们存储在Rainbow表中。
      缺点是每个网络ESSID都需要其彩虹表,因为PMK也依赖于ESSID,并且需要大量磁盘空间。
      另一种加速该过程的技术是利用最新视频卡的图形处理单元(GPU)的计算能力。

使用Amazon Linux AMI进行WPA破解 破解WPA密钥的一种有趣且相对较新的方法是使用由Amazon
EC2提供的启用了NVIDIA GRID GPU驱动程序的Amazon Linux AMI。 AMI(Amazon Machine
Image)可以利用具有1,536个CUDA内核和4 GB视频内存的NVIDIA
GPU的处理能力。有关更多信息,请阅读位于http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using_cluster_computing.html的指南。

kali上安装NVIDIA DRIVER:
vim leafpad /etc/apt/sources.list
添加源
#清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙江大学源
deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
执行 apt-get update 命令即可更新源
执行 apt-get upgrade 更新软件
然后安装下载更新,使用
命令 apt-get dist-upgrade
然后 sudo apt-get install nvidia-smi
安装好后,nvidia-smi
可以看到显卡信息。

      还有一些基于云的在线服务,这些服务只需支付费用即可破解WPA / WPA2密钥,仅提供四路握手文件和网络SSID。例如:[CloudCracker]。

使用Aircrack-ng进行WPA破解

      要破解WPA密钥,我们必须首先捕获与目标AP和客户端之间的WPA握手相关的四个帧。
      为此,我们可以被动地等待客户端成功进行身份验证,完成握手并捕获相关帧。
      在某些情况下,我们需要等待更长的时间,因此我们可以加快对已连接的客户端进行身份验证的过程,从而促使其与AP进行身份验证(身份验证攻击)。
      首先,像往常一样,使用airmon-ng start wlan0命令将无线接口置于监视模式,然后使用BSSID和目标AP的信道作为参数运行airodump-ng:

airodump-ng --channel 1 --bssid 08:7A:4C:83:0C:E0 --write wpa_crack mon0

      其中08:7A:4C:83:0C:E0 为目标AP的BSSID,channel为AP所在的channel,在此之前应该确保airmon-ng start wlan0 1
在这里插入图片描述
      当客户端向AP进行身份验证时,
      airodump-ng输出的第一行将显示发生的WPA握手。
      在这种情况下,airodump-ng将捕获的握手保存在wpa_crack文件中。
      如果没有握手发生,但是客户端已经连接并且距离我们不太远,
      则可以使用以下命令从AP取消对它的身份验证:

aireplay-ng --deauth 1 -c  98:52:B1:3B:32:58 -a 08:7A:4C:83:0C:E0 mon0

      在这里,–deauth(或-0)代表取消身份验证攻击,1代表要发送的一堆帧,
      -c是客户机的MAC地址,-a是AP的MAC地址。在这里插入图片描述
      如果攻击成功,我们应该看到客户端在短时间内重新连接,然后我们可以捕获WPA握手。
      捕获握手后,我们可以使用aircrack-ng破解密钥,指定要使用的词典文件或单词列表。
      只有在使用的字典文件中存在aircrack-ng时,才能找到WPA PSK。
      Web上有许多可用的字典。
      如: http://www.aircrack-ng.org/doku.php?id=faq#where_can_i_find_good_wordlists。
      默认情况下,Kali Linux中的/usr/share/wordlists下也包括了单词表,
      其中rockyou.txt.gz文件提供了一个较大的压缩单词表供使用。
      可以使用 crunch工具(在man中键入man crunch)创建自定义单词列表。

      对于我们的示例,我们使用rockyou.txt.gz单词列表,因此首先将其解压缩:gunzip rockyou.txt.gz
      为了减少尝试的单词数量,我们必须考虑PSK至少由八个字符组成,并且最多63个字符。
      因此,我们可以从rockyou.txt创建一个满足这些要求的新单词列表。
pw-inspector是允许您过滤和减少单词列表的工具。

      我们通过将rockyou.txt用作pw-inspector的输入来创建新的单词表wparockyou.txt:

cat rockyou.txt | sort | uniq | pw-inspector -m 8 -M 63 > wparockyou.txt

      之后我们执行aircrack-ng:

aircrack-ng -w wparockyou.txt wpa_crack-01.cap

在这里插入图片描述
      经过一段时间的等待后,如果在使用的单词表中找到了密钥,
则aircrack-ng会将其连同经过的时间,经过测试的密钥数量和测试速度一起返回到输出中,如下所示屏幕截图:
在这里插入图片描述
      如果要使用彩虹表进行字典攻击,则可以使用airolib-ng工具创建带有相对预计算的PMK的网络ESSID的数据库。

      要创建目标网络的数据库wpa_db,
      请运行以下命令:

airolib-ng wpa_db --import essid InfostradaWiFi-201198

      然后导入先前使用的字典文件:

airolib-ng wpa_db --import passwd wparockyou.txt

      要计算PMK,建议清理和优化数据库:

airolib-ng wpa_db --clean all

在这里插入图片描述
      接下来,我们使用以下命令计算PMK:

airolib-ng wpa_db -batch

      最后,我们可以在数据库上执行aircrack-ng:

aircrack-ng -r wpa_db wpa_crack-01.cap

用Cowpatty进行WPA破解

      aircrack-ng的替代方法是由Joshua Wright开发的Cowpatty,一种易于使用且有效的WPA PSK破解工具。
      它的用法与aircrack-ng的用法非常相似,因为它的输入是一个包含四次握手和一个单词表以及网络ESSID的数据包捕获:

cowpatty -f wparockyou.txt -r wpa_crack-01.cap -s InfostradaWiFi-201198

在这里插入图片描述
      正如我们在以下屏幕截图中所看到的,破解的PSK显示在输出中。 Cowpatty像aircrack-ng一样,还显示经过的时间,测试的密码短语的数量和发生率:
在这里插入图片描述
      Cowpatty也可以使用彩虹表作为输入。要从单词列表中构建它,我们使用genpmk工具,方法是执行以下命令:

genpmk -f wparockyou.txt -d hash_table -s InfostradaWiFi-201198

在这里插入图片描述
      然后,我们启动程序,使用-d选项而不是单词列表指定Rainbow表:

cowpatty -d hash_table -r wpa_crack-01.cap -s InfostradaWiFi-201198

使用GPU进行WPA破解

      最新视频卡的GPU通常包含大量可以同时执行线程的内核,从而比CPU更快地执行复杂的计算。

      为了适合通用计算(GPGPU),GPU必须支持NVIDIA Compute Unified设备架构(CUDA)或开放计算语言(OpenCL)平台,

      这些平台允许普通程序在以下情况下访问并利用GPU的硬件:执行代码的指定部分。

PyritoclHashcat是Kali Linux中包含的两个最受欢迎的程序,它们利用GPU破解密码。

为GPU破解做准备
首先,值得指出的是,基于GPU的破解工具不能在虚拟机中使用,因为它们需要直接访问物理视频卡。
因此,我们需要在本机安装的Kali Linux中运行它们。要进行GPU破解,我们首先需要检查视频卡的驱动程序是否正确安装。
如果我们要使用CUDA或OpenCL,请为相关卡(NVIDIA或AMD / ATI)安装专有驱动程序。
对于NVIDIA卡,有用的参考资料是http://docs.kali.org/general-use/install-nvidia-drivers-on-kali-linux,而对于AMD /
ATI卡,以下文章可能对您有用:https://forums.kali.org/showthread.php?17681-Install-AMD-ATIDriver-in-Kali-Linux-1-x。
我们还需要安装NVIDIA CUDA TOOLKITS或AMD APP SDK

Pyrit

      Pyrit是用Python编写的工具,它支持CPU和GPU破解,后者通过CUDA和OpenCL模块进行支持。
      使用最新的视频卡,Pyrit每秒可以计算多达100,000个PMK(成对主密钥),与仅依靠CPU相比,可以大大加快破解过程。

      Pyrit的工作方式是像aircrack-ng一样,
      将字典文件作为输入,或者将预先计算的PMK数据库用作目标ESSID。后一种方法要快得多,但是需要您先前创建数据库或使用预建数据库

      在第一种情况下,启动命令如下:

 pyrit -r wpa_crack-01.cap -i wparockyou.txt Attack_passthrough

在这里插入图片描述
   在这里,
attack_passthrough使用字典文件指定攻击,
-r指定捕获数据包,
-i使用指定的单词表。
      在第二种情况下,使用数据库时,我们首先将ESSID添加到数据库:

pyrit -e InfostradaWiFi-201198 create_essid

      现在,我们将字典文件导入数据库:

pyrit -i wparockyou.txt import_passwords

      然后,我们使用以下命令从相对密码计算PMK:

pyrit batch

      最后,我们可以运行破解过程:

pyrit -r wpa_crack-01.cap Attack_db oclHashcat 

OclHashcat

      oclHashcat工具是一个功能强大的基于GPGPU的multihash破解程序,同时支持CUDA和OpenCL API。

      OclHashcat是流行的Hashcat工具的GPGPU版本,它是先前版本oclHashcat-plus和oclHashcat-lite的融合。它支持多种哈希算法攻击,其中包括字典攻击和蛮力攻击。

      OclHashcat不接受.cap格式的数据包捕获,但必须将其转换为自己的.hccap格式。
      为此,我们可以使用aircrack-ng:

aircrack-ng wpa_crack-01.cap -J wpa_crack-01.hccap

      要对捕获的握手执行字典攻击,请使用以下命令:

oclHashcat -m 2500 wpa_crack-01.hccap wparockyou.txt

,此处-m 2500指定WPA攻击模式。

      例如,要对由四个小写字母和四个数字组成的八个字符的PSK进行暴力攻击,我们将需要运行以下命令:

oclHashcat -m 2500 -a 3 wpa_crack-01.hccap ?l?l?l?l?d?d?d?d

      实际上,oclHashcat具有自己的内置字符集,可用于定义掩码,即配置我们想要破解的密码的密钥空间的字符串。

Wifite

      Wifite是基于Aircrack-ng套件的工具。
      默认情况下,它依靠aircrack-ng进行WPA破解,但也支持Cowpatty,Pyrit和oclHashcat。

要破解WPA密钥,我们将运行以下命令:

wifite -wpa -dict wparockyou.txt

在这里插入图片描述
该程序扫描WPA无线网络并显示结果:
在这里插入图片描述
确定目标网络后,请按Ctrl + C并选择网络(在本例中为数字1)
在这里插入图片描述
      Wifite开始收听以捕获WPA握手。之后,程序使用之前提供的字典文件开始破解过程:
在这里插入图片描述
      最后,它返回破解的密钥并显示其他相关信息,例如aircrack-ng所做的事情(经过的时间,测试的密钥数和速率):
在这里插入图片描述
      如果未捕获到握手,Wifite会尝试对已连接的客户端进行身份验证,从而使aireplay-ng执行的身份验证攻击自动进行。
      我们还可以选择使用其他工具而不是aircrack-ng来破解密钥,而是指定相对选项(例如Pyrit或Cowpatty)。


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

相关文章

使用AirCrack破解wifi密码(wpa/wpa2)

本文使用的是Kali Linux,该系统主要以渗透测试及’破解wifi密码’闻名。 如果你使用Macbook,看这里:使用macbook破解WPA/WPA2 wifi密码 要求: 安装有Kali Linux的计算机支持监控模式的网卡,笔记本电脑一般都支持字典…

利用PIN码破解wifi密码(WPA2-PSK)

無奈宿舍無線網絡實在太差,校園網連個QQ都登錄不上,看到XX地方的信號居然是滿格,難免想讓我做一次網絡安全方面的實驗。聲明下,僅僅是實驗而已,禁用於非法目的。 首先,亂扯一些東西,看看就好&a…

【无线网络渗透 】如何使用Aircrack-ng 系列工具进行WPA/WPA2的监听和破解

版权声明:本文为博主tonyzhejiang原创文章,转载请注明来源博客:http://blog.csdn.net/tonyzhejiang) 目录: 前言什么是 Aircrack-ng所需工具参数介绍破解步骤帮助 1.前言 1.1 声明 注意:本文章是审核家庭无线路…

从零开始,教你如何破解WEP、WPA无线网络(完整版)

第一章、引言 近些年无线技术 发展迅速,越来越多的用户开始使用无线网络,最近新搬到一小区没有安装网络,后面想到以前出差时在机场用过无线网络,小区内是否也有无线网络呢?随便一搜,果然有几个无线网…

教你如何破解你家附近的wep wpa wpa2加密方式的密码~~~转的懒得写了。

来源: 童嘉旻◆Kevin的日志 首先申明一点 此行为只是为了大家交流和保护自己无限路由器安全。 但是必须是BT4,5所支持网卡。我的网卡是Realtek USB8187. 自己网卡能否支持请在网上查阅。还有我的这个BT5是英文版本,如果你们是中文版请对号入座&#x…

无线网络密码破解WPA/WPA2教程(包教包会)

在动手破解WPA/WPA2前,应该先了解一下基础知识,本文适合新手阅读 首先大家要明白一种数学运算,它叫做哈希算法(hash),这是一种不可逆运算,你不能通过运算结果来求解出原来的未知数是多少&#…

无线安全之破解WPA/WPA2 加密WiFi

由于古老的WPE加密的WiFi已经几乎没有了,所以这里我就不去细说如何破解WPE加密的WiFi了。今天就来聊聊 如何来使用Kali Linux来破解Wpa/Wpa2加密的WiFi。本次破解WiFi使用的是Kali Linux下经典的aircrack-ng 准备 可以使用无线网络的Kali Li…

wpa或者wpa2暴力破解WiFi(因为wep已经很少有人使用了,所以略过)

现在看看其实很多渗透测试的时候你需要在内网的情况下进行测试。那既然是内网,你得必须混进内网的网络中去对吧。那么WiFi的破解就是第一个突破口了,当然企业级的WiFi不一样哈,但是家用的完全可以了哈。当然,其实不只这种攻击哈。…

无线渗透(下)—企业级WPA破解

0x00. 企业级WPA/WPA2简介 WPA/WPA2企业版:在大型企业网络中,通常采用802.1X的接入认证方式。802.1X认证是一种基于接口的网络接入控制,用户提供认证所需的凭证,如用户名和密码,通过特定的用户认证服务器(…

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

基于WPA的暴力破解 基于WPA四次握手协议的暴力破解 在KRACK漏洞发现前,已知的破解WPA方法只有字典攻击。对于WPA-PSK这套体系,如果没有密码几乎没法窃听他的通信,在有了密码的情况下 WPA 的窃听也不具有 WEP 中窃听的随意性,在 WPA 中 SNonce,ANonce(随机数) 也很好的…

无线渗透(中)--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…