关于破解联通校园宽带限制终端数量的探究

今年学校新装的死妈的联通光纤,每个账号独享10M带宽,但是每个账号限制两台终端同时登陆,一台电脑,一台手机。以前全宿舍6个人共用一条8M ADSL从此成为历史。

网络大概是这样的,其中路由器工作模式为路由模式的动态ip方式。

光猫←路由器←─┏─Portal认证←手机

………………………….┗─PPPoE     ←电脑

正常的上网姿势

PC

要在电脑上上网的时候,需要使用联通的客户端进行拨号,其中限制终端数量,及限制承载网络的功能都由这个客户端来实现。

这个客户端最恶心的地方在于,它会把电脑中所有活动的网卡,包括虚拟的和物理的,都当做一个终端来对待。比如我想要在电脑上连接AnyConnect,这时AnyConnect的虚拟网卡就会被认为是新接入的一个终端,随即联通客户端提示超过两个有效终端,并且自动断开互联网连接。如果在电脑上启动承载网络,包括但不限于小度WiFi,猎豹免费WiFi、Connectify,联通客户端同样也会提示发现承载网络,随即将连接断开。

但是,虽然此客户端的本质就是一个PPPoE客户端,但是我并不能使用我的用户名密码直接在电脑上用Windows自带的拨号器进行拨号,否则会报691错误,也就是用户名/密码有误。经过这篇文章 使用 PPPoE 代替流氓的联通宽带客户端进行 ADSL 拨号上网 的启发,我意识到确实可能是因为真实的PPPoE密码并不是联通给我的用户名密码,而是经过客户端处理过的。

移动终端

要在手机上上网时,只要随便打开一个http的url,然后请求会被劫持至联通的Portal认证页面。在认证页面里填入用户名和密码,认证服务器即会对此设备的IP授权,一般来说如果不主动断开的话,授权大概可以持续一天左右。

由于服务器仅靠UA来识别该设备是手机还是电脑。所以如果将电脑上的浏览器改成手机的UA(使用Chrome的调试器即可),同样可以完成认证。这样做的好处是不会有对网卡和承载网络的限制。所以可以放心开承载网络中继给其他设备使用。这是一个最基本的解决方案。


作为一个一向痛恨运营商的流氓行为的人,当然不会就此停止。我的目标是没有蛀牙能够像使用家庭宽带那样,只使用一个路由器经由光猫连向互联网,无论我的路由器下面挂了多少设备。

另外据说有些地方的运营商使用一种叫做网络尖兵的东西,通过检测数据包指纹的方式来判断接入的终端数量。如果那样的话,本文所述的方法都无能为力,请自求多福。不过我没有听说过北京联通有部署这样的设备。

如何破解?

方案A:

上文说过,真实的PPPoE密码并不是联通给我的用户名密码,而是经过拨号客户端处理过的。PPPoE的认证使用的是PAP,所以可以用WireShark抓包抓出明文的用户名和密码。

方案B:

在OpenWRT上使用curl或者python脚本,假装自己是手机浏览器去完成Portal认证,然后将获得授权的以太网和无线AP这两个interface桥接即可。

方案1更加简单,因此优先尝试它。

方案A

使用联通客户端拨号,与此同时用WireShark进行抓包,结果如图:

Image 101

由图可得,真实的用户名是联通提供的用户名(8位数字)后面加上 @wo201
真实的密码则是你自己设置的密码前面加上 \001

这里开始我的思路出现了偏差。我看着那个莫名其妙的\001不知所措。而且实际的密码长度跟Password-Length里写的也不太一样。

直到有一天我跟朋友聊天的时候,他提到他有一个同学也做了跟我一样的事情,但是他成功找出了那个奇怪的编码是ASCII。

通过查找ASCII字母表得知, \001SOH,Start Of Header的意思。

Image 117

设置路由器的时候只需要把路由器设置为路由模式,上网方式选择pppoe。用户名为8位数字的用户名,后面加上@wo201。比如23333333@wo201。

在Sublime Text里打出ASCII的 SOH字符,在后面输入自己设置的密码,然后全选并复制,粘贴进密码那栏里。 SOH字符你也可以在这里:http://nyan.im/soh/ 下载到。

注意并不是所有路由器都能识别这种非法的字符,我的TP-Link路由器亲测没有问题。

然后就可以愉♂快地上网了

方案B

期间我试图尝试方案B,但是进展并不多:

首先用WireShark抓出认证时的HTTP包,如图:

Image 113

然后使用curl来发送一个相同的HTTP请求,curl的参数请自行查询文档。

然而并没有成功。

一直返回的是login refused,但是我确定我输入的表单都没有错,原因不明,如果谁有兴趣的话可以继续尝试继续研究。

7 thoughts on “关于破解联通校园宽带限制终端数量的探究

  1. 人似秋鸿
    MIUI Browser 2.1.1 MIUI Browser 2.1.1 Android 4.4.4 Android 4.4.4

    你那位朋友真是太机智啦,我和楼主栽在一个地方

  2. Asimov
    Google Chrome 52.0.2743.116 Google Chrome 52.0.2743.116 Windows 10 x64 Edition Windows 10 x64 Edition

    以相同思路企图破解武汉宽带的终端限制,折腾了几个小时发现武汉用了更先进的PPP-CHAP认证方式,哭瞎。。。
    求PPP-CHAP破解方式

    1. Frank  Mod
      Google Chrome 55.0.2846.4 Google Chrome 55.0.2846.4 Windows 10 x64 Edition Windows 10 x64 Edition

      chap是加密的,那可能确实比较麻烦吧。google了一下没找到有太大用的信息。

      1. Asimov
        Chrome 53.0.2785.86 Chrome 53.0.2785.86 iPad iOS 9.3.5 iPad iOS 9.3.5

        是啊,这个是三次握手认证协议,每次都要双方验证随机MD5值,简直是变态。技术上没法实现,最后通过投诉还是把问题解决了,哈哈。
        感谢博主又让我学到了东西。

        1. Frank  Mod
          Google Chrome 52.0.2743.91 Google Chrome 52.0.2743.91 Android 7.0 Android 7.0

          投诉竟然解决了。可以可以

  3. Safari 10.0 Safari 10.0 Mac OS X  10.12 Mac OS X 10.12

    抓出包来发现是PPP-CHAP认证方式,已哭瞎

    1. Frank  Mod
      Google Chrome 55.0.2883.9 Google Chrome 55.0.2883.9 Android 7.0 Android 7.0

      太惨,试试投诉吧

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

如果你是人类,请点击Pineapple...