Kali Linux 暴力破解 wifi密码

2023-05-16

Kali Linux 暴力破解 wifi密码


注意:私自破解他人WiFi属于违法行为,我这里使用自己的WiFi热点作为学习和测试。明白了破解原理就知道应该怎么防范了。


前期准备

暴力破解需要准备的工具:

  • kali linux 操作系统,我使用的是装在虚拟机中的kali linux
  • 支持监听模式的无线网卡,我这里使用的是USB无线网卡RT3070
  • 字典文件,我这里使用的是kali 默认的字典文件

所谓暴力破解就是穷举法,将密码字典中每一个密码依次去与握手包中的密码进行匹配,直到匹配成功。所以能否成功破解wifi密码取决于密码字典本身是否包含了这个密码。破解的时间取决于CPU的运算速度以及密码本身的复杂程度。如果WiFi密码设得足够复杂,即使有一个好的密码字典,要想破解成功花上个几天几十天甚至更久都是有可能滴。

kali linux操作系统本身有默认的字典文件,我们将它解压出来。

root@kali:~# gzip -d /usr/share/wordlists/rockyou.txt.gz
 
 
  • 1

暴力破解

1.使用airmon-ng命令检查网卡是否支持监听模式

root@kali:~# airmon-ng
 
 
  • 1

Alt text

从图中可以看到我的无线网卡wlan0是支持监听模式的。如果该命令没有任何输出则表示没有可以支持监听模式的网卡。

2.开启无线网卡的监听模式

root@kali:~# airmon-ng start wlan0
 
 
  • 1

这里写图片描述

开启监听模式之后,无线接口wlan0变成了wlan0mon,可以使用ifconfig命令查看 
Alt text

3.搜索周围的WiFi网络

root@kali:~# airodump-ng wlan0mon
 
 
  • 1

Alt text
使用airodump-ng 命令列出无线网卡扫描到的WiFi热点详细信息,包括信号强度,加密类型,信道等。这里我们记下要破解WiFi的BSSID和信道,如图中我用红色标记出来的。当搜索到我们想要破解的WiFi热点时可以 Ctrl+C 停止搜索。

4.抓取握手包 
使用网卡的监听模式抓取周围的无线网络数据包,其中我们需要用到的数据包是包含了WiFi密码的握手包,当有新用户连接WiFi时会发送握手包。 
抓包:

root@kali:~# airodump-ng -c 10 --bssid D4:EE:07:12:57:80 -w ~/ wlan0mon
 
 
  • 1

参数解释:

  • -c 指定信道,上面已经标记目标热点的信道
  • -bssid指定目标路由器的BSSID,就是上面标记的BSSID
  • -w指定抓取的数据包保存的目录

Alt text 
上面可以看到连接到wifi热点的设备,我标记出来的是我的平板电脑的MAC地址。

5.强制连接到wifi的设备重连路由器 
现在我们使用aireplay-ng命令给平板发送一个反认证包,使平板电脑强制断开连接,随后它会自动再次连接wifi。 
不难看出,airplay-ng生效的前提是WiFi热点中必须至少已经接入一个设备。 
由于刚刚打开的终端一直在执行抓包工作,所以我们重新打开一个终端,输入命令。

# aireplay-ng -0 2 -a D4EE:07:12:57:80 -c AC:CF:85:B6:81 wlan0mon
 
 
  • 1

参数解释

  • -a指定WiFi热点的BSSID
  • -c指定要攻击设备的MAC地址 
    Alt text

此刻可以看到已经成功抓取到握手包了。如下: 
Alt text 
这个时候使用Ctrl+C命令停止抓包,同时结束无线网卡的监听模式。 
结束监听:

kali@root:~# airmon-ng stop wlan0mon
 
 
  • 1

这里写图片描述 
6 暴力破解 
上面已经成功抓取到了握手包,现在要做的工作就是将握手包的密码和字典文件中的密码进行匹配,我只是使用了一般复杂的全字母密码,花了将近20分钟破解出密码。

kali@root:~# aircrack-ng -a2 -b D4:EE:07:12:57:80 -w /usr/share/wordlist/rockyou.txt ~/*.cap 
 
 
  • 1

Alt text 
从图中可以看到已经破解成功了。

再次提醒大家:私自破解他人WiFi属于违法行为,知道了破解方法,相信大家就懂得如何防范了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kali Linux 暴力破解 wifi密码 的相关文章

  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 为 OpenWrt 编写和编译程序

    我有一个在 OpenWRT 下运行的具有 MIPS 架构的嵌入式设备 系统类型 MediaTek MT7628AN ver 1 eco 2机器 WRTnode2P 处理器 0CPU型号 MIPS 24KEc V5 5 我想通过我的电脑 ub
  • 从应用程序打开/关闭 iPhone 的 Wifi

    我需要打开或关闭 iPhone 中的 wifi 有什么方法可以做到吗 还是被禁止了 私有框架 所有使用公共 SDK 编写的应用程序都经过沙箱处理 他们只能访问苹果认为可以在该沙箱中使用的属性和数据 恐怕 Wi fi 不在列表中 请看一下这个
  • 如何在Linux中自动启动需要X的应用程序

    我试图在系统进入运行级别 5 时自动启动 X 应用程序 这样做的正确方法是什么 我写了一个脚本并将其放在 etc init d 中 我已运行适当的 chkconfig 命令来设置 etc rcX d 目录中的符号链接 一切工作正常 除了当我

随机推荐