You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
5.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: 绕过Portal认证的另一个想法
tags: [WiFi, Portal, 认证, 绕过]
---
也许反弹还是挺好用的?<!--more-->
# 起因
前段时间我换了宿舍。待了一段时间之后我发现在新宿舍里比旧宿舍里多了一些WiFi比如CMCC-EDU啥的。原来我们宿舍除了自己的WiFi就再没有别的了那这个新的WiFi就引起了我的注意力。
我很久以前也研究过类似的WiFi这种WiFi通常不使用密码验证而是使用Portal验证。这种验证更加的自由所以很多公共区域的WiFi都使用的是这种方式。但是这种验证有一个很大的缺陷那就是正常来说用密码的WiFi即AP的密码算是在第一层也就是物理层上做的验证通常物理层验证还是很难破解的毕竟这就相当于把网线剪了再厉害的黑客也没办法通常也只能靠些什么旁路攻击之类乱七八糟的歪门邪道不如直接接入网络直接干合适。
所以呢当我可以直接接入WiFi时不管怎么说这都相当于我已经直接用网线直连到了这个网络中然后只要想办法绕过认证服务器就可以。不过这么说也不是很准确因为大多数人配交换机不会配的很严格但是AP还要特地开个AP隔离就比较恶心。
通常来说这个所谓的认证服务器也不过是一个二级的防火墙通常就是通过认证的设备就在出站白名单里加上这个MAC地址这样这个设备就可以正常上网了。
# 绕过的思路
绕过Portal认证的方法网上大多数是给的通过DNS隧道来绕过因为大多数的这种服务器都不会自己写的DNS而是用已经很成熟的软件所以通常解析都不会受到影响。根据这一点很多人就想出了使用DNS作为隧道来达到免费上网的目的一般来说有两种方法第一个是防火墙完全不封DNS的情况也就是对UDP 53端口完全不设限的情况这种情况直接搭一个使用UDP的任意隧道都可以。
还有一种是只允许使用DHCP分配的DNS服务器一般也为了考虑到认证通过后能正常上网所以解析都是正常的考虑到DNS的特点我们可以给自己服务器设置一个NS解析这样我们就能拿被指定的这个DNS服务器作为跳板来和远程的服务器通信了。不过这个就不能随便选择软件了需要用能伪装成DNS流量的软件来搭隧道比如dns2tcp之类的就可以。
其实吧那个CMCC-EDU我试过确实解析是没有问题的正好Github之前还给我送了一年[mayx.me](https://mayx.me/)的域名,我回头有机会我试试看能不能建立隧道吧。
# 另一个想法
上面的方法虽然很不错但是太常见了网上基本上搜怎么绕过Portal认证基本上都是这些办法比较没意思而且一般来说现在新的厂家应该都封掉了这个办法吧毕竟只要给指定的DNS上面也加一个认证必须是通过认证的设备才能正常解析或者是像中国防火长城一样来一波DNS污染这样DNS隧道就不能正常工作了。所以学了些网络知识的我有个不成熟的想法那就是这种防火墙一般拦截的是出站会不会不拦截入站
事实上我还试了一下那个CMCC-EDU很神奇的居然分配的是公网IP所以我就试了试去ping连接的设备想不到也可以ping成功不过也可能只是防火墙没有拦截ICMP具体因为我没待几天就回家了有了这个想法也只是简单的做了几个测试而已所以我也不是很清楚。不过没关系如果没拦截ICMP也可以用ptunnel搭ICMP隧道。
不过如果入站真的没有防火墙那么我可以试试主动连接的隧道用起来有点像反弹。具体怎么搭这种隧道如果用的是Linux系统的设备可以看[怎么搭SSH隧道](/2021/05/07/ssh.html)不过我这次实验想用frp来搭也就是连接CMCC-EDU的设备打开frps然后找个能连外网的服务器用frpc连进来在配置段中加入
```
[socks_proxy]
type = tcp
remote_port = 1080
plugin = socks5
```
最后就直接用`127.0.0.1:1080`这个隧道上网就可以了如果是Windows设备的话用Proxifier来上网效果还是相当不错的。不过我目前在家里不好试等我开学了回宿舍试试看。
# 局限性
像这个方法也只能说是特定情况的另一种可能性吧因为限制也是蛮多的首先大多数Portal认证的WiFi不可能给一个公网IP想要反弹至少要在同一个网络中就这个限制就挺严格的可能也就校园网可以用另外就是不开入站防火墙也可能只是疏忽万一管理员开了这个办法也不行这也只能靠赌也并不怎么好使所以说这也就只是另一个想法看以后如果真的遇到了类似的问题看怎么解决吧。
不过我确实也没接触过真正严格的网络,像那种极其严格的公司网络我也没见过,也许到时候如果有机会见一见的话就不会觉得这种垃圾防火墙算什么事情了吧😀。