封斯旸 石景宜 高鸿鹏
网络管理的五大功能之一就是计费管理,我们的校园网计费系统是一种典型的计费系统,我们希望能够通过对校园网计费系统的漏洞调研,以提高同学们的安全意识,帮助网络中心进行漏洞修复。
经过前期调研,绕过计费系统方式主要有如下三种:
- mac地址伪装
- dns隧道
- 网络渗透
由于网络渗透需要网络安全专业知识太多,我们仅对前两种方式进行调研。
对于校园网来说,mac地址伪装是一个致命的攻击手段。校园网络管理系统以mac地址对用户进行标识,如果一个局域网内出现了两个mac地址相同的主机,那么管理系统将无法区分这两个主机,他们将共享一个账户。
为了验证mac地址伪装的效果,我们进行了如下实验。
- 电脑A:windows系统,连接Tsinghua校园网,登录了同学a的账号。
- 电脑B:ubuntu系统,连接Tsinghua校园网,未登录任何账号且未登陆过同学a的账号。(windows系统电脑修改mac地址不太方便)
-
查看电脑A的无线网卡Mac地址,从下图得知,为:40-E2-30-26-4F-7D
-
设置电脑B的无线网卡地址,并重启无线网卡:
-
电脑B进入net.tsinghua.edu.cn/wireless网页,可以看到已经登陆了同学A的账号:
此时,电脑B成功窃取了a同学的校园网账户流量,能够上网,但两台电脑的网络都时好时坏,陷入了一种竞争状态。
-
此时:
- 若电脑A不通过网页断开连接,直接断开校园网,则电脑B能够正常上网。
- 若B直接通过校园网门户断开校园网,则A也会被强制断开。
- 电脑A连接有线网/Tsinghua-secure,电脑B连接Tsinghua并伪装mac地址,无效。
- 电脑A和电脑B均连接Tsinghua-Secure,电脑B在门户上断开原有账户连接,伪装为A的mac地址,此时A/B均无法上网。
53端口是用于域名解析的端口,防火墙通常对dns查询不做任何限制。一般来说,校园网管理系统的dns解析服务在未登录账户的情况下也是可用的。通过搭建dns隧道,可以通过防火墙的dns端口进行通信,从而绕过计费系统。
在不登录账户情况下,使用命令nslookup www.google.com
查询谷歌对应ip地址:
可以查询到对应IP地址,说明校园网防火墙不限制dns查询服务。
首先,我们申请了一个域名shijy.top
,我们可以对该域名的子域名进行dns设置。
在域名管理系统中添加如下两条DNS记录:
第一条为NS类记录,其含义为:子域名a.shijy.top
需要到dns.shijy.top
进行解析。
第二条为A类记录,其含义为:子域名dns.shijy.top
对应的IP为13.71.144.202
,即我们使用的校外服务器IP。
有多种软件可以用来搭建dns隧道,我们使用了dns2tcp
来搭建dns隧道。首先在服务器上安装dns2tcp
,并设置配置文件:
listen = 0.0.0.0
port = 53
user = nobody
chroot = /tmp
domain = a.shijy.top
resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:3128
表示监听53端口,并将查询a.shijy.top
的dns查询包解析为tcp
包,将其请求的资源类型按照resources
字段设置进行发送。
启动dns隧道服务端:dns2tcpd -f /etc/dns2tcpd.conf -F -d 2
。
在客户机上,执行dns2tcpc -r ssh -z a.shijy.top -l 8888 -d 1
,表示将本机8888端口收到的数据包封装为查询a.shijy.top
的dns查询包,资源请求类型为ssh
。
此后,客户机上的网络请求,可以通过代理设置,发送至客户机8888端口,由dns2tcp
封装为a.shijy.top
的域名地址查询包,通过校园网管理系统防火墙的53端口发送出去。由于之前添加了两条dns记录,该查询包会被发送到dns.shijy.top
域名对应的IP地址:13.71.144.202
,即我们的服务器,服务端收到dns查询包后,会去除dns封装,并按照对应资源请求类型发送到对应的端口,并将回复包封装为dns回复包,发送给客户机。
客户机启动dns隧道客户端(在windows下ubuntu子系统进行):
客户机在未登录校园网账户的情况下ssh连接上用户主机(使用windows powershell进行):
如果在客户机和服务端进行进一步配置,则可以实现客户机正常上网。
校园网计费管理系统存在前面所述漏洞。
对于mac地址伪装漏洞,同学们可以设置动态mac地址来尽量避免自己校园网流量被窃取。校园网管理系统也应该重视该漏洞。
对于dns隧道漏洞,校园网管理系统应该严格设置防火墙对dns查询包校验。