技术本身无善恶,但一旦越界就是违法。本文仅做安全科普,所有流量劫持、抓包、搭建钓鱼热点操作,仅允许在自己拥有完全控制权、获得所有参与者书面授权的内网实验环境中进行,严禁在公共场所、未经他人许可下部署,违者承担全部法律责任。
WiFi 早已融入日常,咖啡厅、商场里随处可见标注 “Free-WiFi” 的开放无线网络。很多人习惯性直接连接,觉得只是免流量上网,不会有风险。但很少有人知道:一台搭载 Kali NetHunter 的安卓手机,搭配一块支持 AP 模式的外置无线网卡,就能装进口袋,随时搭建一个具备流量劫持、强制门户钓鱼、流量抓包能力的恶意 WiFi 热点。下面我们结合实验原理,看懂开放 WiFi 背后的安全陷阱。
一、核心原理:连上热点,你的流量就要经过对方网关
当你的设备接入任意 WiFi 热点,热点设备就成为你的默认网关,你所有上网数据包都会经过这台设备转发。这也是恶意 WiFi 能够获取网络信息的根本原因。
不同协议下,热点持有者能够捕获的信息有明确边界:
- 链路层:可以看到接入设备 MAC 地址、上下线时间。开放 WiFi 没有 WPA 加密,这些关联信息明文传输。
- 网络层:接入设备内网 IP、访问的目标公网 IP、数据包大小、访问时间全部可记录。
- DNS 解析:热点通过 DHCP 下发自定义 DNS 服务器,能够记录你所有域名查询记录,知道你在访问哪些网站。
- HTTP 网站:无加密的 HTTP 网站,完整 URL、表单填写内容、Cookie、图片等全部明文,可直接抓取。
- HTTPS 加密网站:无法获取网页内容、账号密码。但可以通过 TLS 握手 SNI 字段看到你访问的域名、目标 IP,同时获取流量特征,推断你的上网行为。
基于以上能力,恶意热点可以实现四类攻击:
- 记录上网轨迹:保存全部 DNS 访问日志,还原你的浏览行为;
- 窃取明文信息:抓取 HTTP 网站、老旧 APP 接口提交的账号、表单信息;
- 强制门户钓鱼:设备联网自检时自动弹出网页,诱导填写手机号、验证码、账号密码;
- 网络操控:DNS 投毒、网络限速、断流,篡改流量转发路径。
⚠️ 重点澄清:HTTPS 不是完全无敌,但单纯搭建热点,不安装伪造根证书的前提下,攻击者看不到加密网站内的密码和聊天内容。本次实验不做证书劫持,仅捕获 DNS、HTTP 流量以及用户主动在认证页面提交的数据。
二、实验架构:一台安卓手机就能完成的攻击环境
本次实验最大的震撼点,就是整套攻击平台不再依赖笨重的笔记本电脑,仅靠安卓手机 + OTG 外置无线网卡即可实现。
环境优势
- 便携隐蔽:随身携带,在咖啡厅、地铁、宿舍都可以部署,普通人很难察觉这是攻击设备;
- 自带供电:依靠手机电池供电,不需要外接电源;
- 双网卡分工:手机内置无线网卡
wlan0连接正常 WiFi 作为互联网上游;外置 OTG 无线网卡wlan1作为 AP,向外广播开放热点; - 完整 Kali 工具链:在 NetHunter 的 chroot 容器内,直接使用 hostapd、dnsmasq、iptables、Apache、MariaDB 等全套网络工具。
网络拓扑
互联网
│
上游WiFi ← 手机内置网卡wlan0(负责访问外网)
│
安卓手机(Kali NetHunter容器)
├─ hostapd:发射开放热点Free-WiFi
├─ dnsmasq:DHCP分配IP + DNS解析 + 日志记录
├─ iptables:NAT转发 + 强制门户劫持
└─ Apache+PHP+MariaDB:钓鱼认证页面、后台数据存储
│
外置网卡wlan1 广播开放热点Free-WiFi
│
受害设备(手机/电脑)
硬件选型要点
外置无线网卡是整套环境的核心,选型需要满足:
- Linux 驱动支持,
iw list命令能看到支持 AP 模式; - 优先低功耗型号,OTG 供电稳定,供电不足建议搭配带供电的 OTG 集线器;
- 可选定向天线,控制 WiFi 信号覆盖范围。
注意:安卓原生系统和 Kali 容器存在差异,没有 systemd 管理服务、Android 有独立策略路由表、两套 iptables,这些都是部署时最容易踩坑的地方。
软件组件分工
| 组件 | 作用 |
|---|---|
| hostapd | 将无线网卡配置成无线 AP,广播 WiFi 名称 |
| dnsmasq | 给接入设备分配内网 IP、提供 DNS 解析,记录 DNS 查询日志 |
| iptables | 配置 NAT 流量转发,实现 HTTP 强制门户劫持 |
| Apache+PHP | 搭建网页,实现 WiFi 上网认证页面、后台管理面板 |
| MariaDB | 存储接入设备信息、访问日志、用户提交的信息 |
| tcpdump |
抓取全部网络数据包,后续离线解析数据包内容 |
使用教程,程序说明
初次运行会检查依赖,缺少依赖环境,会自动安装。
如下图,一键开启热点。
终端A启动脚本:
cd /root/wifi-ap # 换成你的实际路径
./wifi_ap_phishing.sh

当有设备连接热点后,会出现客户端信息。

终端 B(Android su):加 FORWARD
原因:chroot 里的 iptables 写不了 filter 表 。
iptables -I FORWARD 1 -i wlan1 -o wlan0 -j ACCEPT
iptables -I FORWARD 1 -i wlan0 -o wlan1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -L FORWARD -n -v | head -5

终端 C(Kali chroot 新会话):NAT + 策略路由
T=$(ip -4 route show table all | awk '/^default/ && /dev wlan0/ {for(i=1;i<=NF;i++) if($i=="table"){print $(i+1); exit}}')
echo "T=$T"
echo 1 > /proc/sys/net/ipv4/ip_forward
# NAT(脚本一般已加,重复无害)
iptables -t nat -C POSTROUTING -o wlan0 -j MASQUERADE 2>/dev/null || \
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -L POSTROUTING -n -v --line-numbers | head -4
# 策略路由(优先级高于脚本的 10500/14000)
ip rule del pref 9998 2>/dev/null
ip rule del pref 9999 2>/dev/null
ip rule add from 192.168.66.0/24 lookup "$T" pref 9998
ip rule add to 192.168.66.0/24 lookup main pref 9999
ip route get 223.5.5.5 from 192.168.66.100 iif wlan1
访问设备后台,效果如下:
账号密码/admin/admin123

登录后,在首页便可以显示基本信息。,点击设备,目前仅可以看到认证时,提交的号码、设备名称等信息。设备在具体时间访问的URL


脚本下载
三、实验完整流程:连上 WiFi,就落入钓鱼页面
整套攻击无需在受害者设备安装任何 APP,只要连接开放热点即可触发。
- 用户连接名为
Free-WiFi的无密码开放热点; - dnsmasq 分配内网 IP,网关设置为
192.168.66.1,DNS 指向热点本机; - 手机自动发起联网检测(captive portal 检测),DNS 请求被劫持,解析到热点网关;
- iptables 配置 DNAT 规则,将所有 80 端口 HTTP 请求强制跳转至钓鱼认证页面;
- 页面提示需要输入手机号完成认证,才能访问互联网;
- 用户提交手机号后,后端 PHP 程序将手机号、设备 UA、设备型号、IP 存入数据库;
- 脚本将该设备 IP 加入放行列表,设备正式访问外网;
- 全程后台持续记录 DNS 访问记录,tcpdump 持续抓包保存 pcap 数据包文件,脚本可自动从数据包提取明文 QQ 号。
实验内置 Web 后台,访问http://192.168.66.1,输入账号密码登录,就能查看所有接入设备:用户提交的手机号、设备型号、接入时间、历史访问域名、流量记录。 仅仅一次简单的 WiFi 连接 + 网页认证,攻击者就拿到手机号,再结合 DNS 访问记录,就能绘制出使用者的数字画像:使用者什么时间上网、访问了哪些网站,再配合抓包获取的明文标识,用于社会工程学攻击。
四、部署踩坑:安卓 NetHunter 环境特有问题
在手机 NetHunter 环境部署,和电脑 Kali 有巨大区别,也是实验中最容易失败的地方:
- 没有 systemd,无法使用 systemctl,mariadb、apache 需要手动启动;
- Android 策略路由独立,默认路由不在 main 路由表,每次重新连接上游 WiFi,路由表编号都会改变,必须手动添加 ip rule 规则,否则客户端连上 WiFi 但无法上网;
- chroot 容器内的 iptables 部分规则会报错,FORWARD 转发规则必须在 Android 原生 su 终端执行;
- MariaDB 默认 InnoDB AIO 在手机内核不支持,需要修改配置关闭
innodb_use_native_aio=0; - OTG 网卡容易因为供电不足掉线,手机省电策略会关闭外设,需要提前关闭电池优化。
| 故障现象 | 排查方案 |
|---|---|
| 成功连接热点,但无网络 | 上游 WiFi 变更,策略路由表号改变,重新执行 ip rule 路由脚本 |
| 无法添加 FORWARD 转发规则 | 切换到 Android 原生 shell,使用系统自带 iptables |
| Apache 服务启动失败 | 放弃 systemctl,直接使用 apache2ctl 启动,确认 80 端口监听 |
| MariaDB 数据库无法启动 | 修改配置关闭 InnoDB 原生 AIO |
| 网卡频繁掉线 | 使用带供电 OTG Hub,关闭手机省电、后台限制 |
五、普通人防护指南,避开开放 WiFi 陷阱
看懂这套实验,就能明白公共免费 WiFi 的风险,日常上网记住这几条防护原则:
- 陌生开放 WiFi 尽量不要连接,尤其是名字简单的 Free-WiFi、免费 WiFi;
- 迫不得已使用公共 WiFi,不要在网页弹窗认证页输入手机号、验证码、账号密码;
- 手机关闭「自动连接未知开放 WiFi」功能;
- 转账、登录账号、查看隐私信息等敏感操作,一律使用手机流量;
- 公共 WiFi 环境,可使用可信 VPN 加密全部流量,降低嗅探风险;
- 遇到 WiFi 强制跳转网页要求填写隐私信息,立刻断开连接。
六、最后的思考:技术有边界,法律有红线
这套攻击方案的可怕之处,在于门槛极低。不需要专业机房、昂贵设备,一台 root 安卓手机加几十元外置网卡,就可以部署钓鱼热点。它不会直接破解 HTTPS 加密内容,但是依靠钓鱼页面收集手机号、记录上网元数据,就可以开展社工、精准骚扰。
技术本身可以作为网络安全学习、授权渗透测试的工具,但一旦脱离授权环境,私自搭建热点捕获他人流量、收集手机号、抓取数据包,就触犯《网络安全法》、《个人信息保护法》,情节严重会触及刑法,承担刑事责任。
网络安全的本质,是信任。公共开放 WiFi,本质是让你把流量交给一个完全陌生的网关。学会看懂这类攻击原理,不是学习攻击手段,而是理解网络风险,保护自己的个人信息,不落入这类口袋流量陷阱。
2、本站永久网址:https://xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7.本站原创内容版权归 X黑手网 及对应作者共同所有,欢迎转载,转载请务必注明原文出处及作者信息。









暂无评论内容