type
status
date
slug
summary
tags
category
icon
password

背景

入学新学校,校园网 49元/月 100M ,只能够同时登录两台设备,于是着手破解。
破解后当普通 Wi-Fi 连接即可,无设备数量限制,同时还可以做到多账号网速叠加。
notion image

思路

  1. 逆向校园网 Web 登录算法
  1. 将登录算法移植到 OpenWrt 中
  1. 使用 Macvlan 和 MultiWAN 插件实现多账号登录

登录算法逆向

连接校园网,随便输入一个网址就可以跳转到登录界面(这是通过 DNS劫持 实现实现的)。
通过观察代码发现,这是锐捷网络的 Web 认证,便在网络上找到了相同认证系统的登录算法实现,所以这一步非常的轻松,基本没有自己进行逆向分析。
 

OpenWrt

硬路由的选择

因为要使用 OpenWRT 系统,所以路由器需要选择能够刷机的,且自带 Wi-Fi 的硬路由。
这里选择的是 H3C NX30 Pro,二手售价约100元,配置如下:
型号
H3C NX30 Pro
CPU
MT7981B
闪存
128M
内存
DDR3 256M

刷机教程

网络上有很多刷机的教程,这里不多赘述。
使用的 uboot 仓库如下:

固件的选择

固件选择了自编译 ImmortalWrt 23.05.6,且使用最精简固件的思路,仅保留了 mwanturboaccfileassistantupnp 插件。
 
编译产物的 config.buildinfo 如下

 
通过上面的 buildinfo 编译出来的固件仅仅 15.4MB。

登录算法移植

这里使用 OpenWrt 的 init.dprocd 守护校园网登录状态,如果检测到离线则自动尝试登录。
代码如下:
 
修改完配置后将代码写到 /etc/init.d/campus_portal_eth1(注意,文件名要在代码里面一并修改),启动后可以在系统日志中看到日志信息。

多账号

 
配置完成端口后将上面的 init.d 代码全局替换 eth1 为你创建的接口后,复制一份到 /etc/init.d/ 中即可,每个账号一个服务这样可以保证对每个校园网账号的登录控制。

Macvlan

在 网络→接口→设备 中可以添加 Macvlan,选择正确的 基础设备 后点击保存即可。
添加 Macvlan 完成后在 网络→接口 中添加对应的 DHCP客户端,同时设置防火墙区域为 wan 即可。
notion image
notion image

MultiWAN 负载均衡

notion image
notion image
notion image
notion image
mwan 的配置教程这里就不过多赘述了,我使用个两个接口(也就是两个账号)配置如上图。mwan 是通过 iptables + fwmark 路由规则来实现的负载均衡,所以在单线程情况下,无法速度叠加

附图

OpenWrt 后台界面
OpenWrt 后台界面
100M + 50M 账号 mwan 测速
100M + 50M 账号 mwan 测速