一次 UCAS 校园网 IPV6 RA 污染的屏蔽及反攻

起因

有一天早上起来,打算登上自己IPV6 onlyNAS网站。结果发现持续性的connection timeout。打开Terminal一看,好啊,有人搁着搞IPV6 Router Advertise投毒(并不是故意污染的)开了,出现了一堆乱七八糟的地址。

本地IPV6

IPV6洁癖这可忍不了,网都上不了,实验要用的包还在NAS里呢

分析

终端分析

因为我是用的路由器做了IPV6转发(这个后续会更新一下如何做SLAAC校园网转发的文章),所以我先看路由器啥情况。

目光集中到WAN6接口,可以发现有3种地址分配:

  1. 2400:dd01:103a:4010::/64,中国科学院大学雁栖湖校区学生5公寓官方路由分配的SLAAC地址。
  2. fd30:4dcf:77f9:1|0::/64,污染源路由器分配的DHCPv6 Stateless地址(有能力Stateful,但似乎不是优先选项)。
  3. fd30:4dcf:77f9:1::/64,污染源路由器分配的DHCPv6-PD地址段。

如果不了解这SLAACDHCPv6地址分别是什么,可以看 IPv6 动态地址配置 答疑解惑。

然后再来看被污染的路由,因为上不了网毕竟和路由器的路由相关。

image-20220910204130447

看到一堆unreachable的时候我火就上来了,我好端端一个配置优雅整洁的路由器,就被你一个坏东西糊弄成这样?当然,只是有unreachable是不能证明连不上网的,并且这张图甚至还证明了我可以连上网:

  1. fe80::7625:8aff:fe0e:b2af是桌下网口的官方RA,mac地址是74:25:8a:0e:b2:af,查询公司可以得到是H3C,个人用户概率很小。
  2. 2400:dd01:103a:4010::/64 网段的路由没受干扰,子设备的网络也正常访问。

为什么能上网呢?因为这个是我处理完之后才拿到的截图,在这之前因为有DHCPv6的存在,LAN口混合模式选择服务器模式DHCPv6而非SLAAC,并且Android设备不支持DHCPv6。这导致了我的手机根本不能获得v6地址,进而无法访问。

污染溯源

局域网出问题哪家强,GNU Linuxtcpdump。指定接口,监听广播域,谁干坏事把IP连着MAC一起扬了!

这里我就示意性的放一张图,展示一下我找到的“犯罪嫌疑路由器”:

image-20220910210626277

分析的过程大概分为三步:

  1. 首先DHCPv6SLAAC的源设备相同,所以可以利用SLAAC的包均为ICMP6这一特性进行分析。
  2. 指定接口eth0(我的v6 wan口,不确定则请使用any),过滤 22 ssh流量(指定wan口则不需要),使用-e选项显示mac地址。注意:如果要获得结果,需要进行重连(例如重新连接接口)。
  3. 找到含有 router advertisement 类型的包(可以使用grep过滤),然后查看mac地址和local v6 address (fe80::/10),在网站上查找制造商。根据网卡MAC地址查询厂商信息

然后我就找到了如下几个设备:

tcpdump -i any port ! 22|grep ICMP6|grep "router"|grep "advertise"

fe80::7625:8aff:fe0e:b2af   74:25:8a:0e:b2:af   华三,桌下网口官方Router
fe80::1219:65ff:fec8:9c01   10:19:65:c8:9c:01   华三,AP网口官方Router
fe80::8ede:f9ff:fe51:7f5e   8c:de:f9:51:7f:5e   小米,污染源

PS:有没有发现fe80::/10的地址生成规则?

这次因为发现的早,所以只有一个污染源,如果多了就更麻烦了。不过找到了地址后面就好办了。

处理

DHCPv6

因为我们亲爱的UCAS拿到的 2400:dd01:103a::/48这个地址段着实有点小,也也不该指望亲爱的网管冒着头秃的风险给每栋楼的设备搞DHCPv6-PD段的划分,降低学校设备负载balabala…

不行我摊牌了,就是因为菜+方便管理,要不然/48完全有的拆:2^16 = 655362^12=4096,16栋楼给划分一个/60也不是不能搞。不过就这样吧,整个中国科学院大学分/48也确实勉强,谁能保证后面不会配错,而且现在这样只玩SLAAC也算能用。

我上面扯这么多有的没的就是要引入一个:因为学校不会用DHCPv6,所以直接改成ban了就完事。

image-20220910220842601

SLAAC

这个就比较麻烦了,但是因为伟大的IP桌子神器支持根据MAC过滤,那就相对好办了。

需要进行一个组合规则:

  1. 放行来自白名单MAC地址的。
  2. 阻止所有ICMPv6Router Advertisement包。

因为IP6桌子的匹配是顺序匹配,所以先匹配到的就会直接放行/丢弃/拒绝,因此顺序很重要

image-20220910224729625

并且一定要排在这一条前面

image-20220910224831221

反攻

溯源及尝试

首先,我们的终端设备获得了fd30:4dcf:77f9::/48下的IPV6地址,所以我们已经属于该设备的内网(LAN)。众所周知,内网地址可以访问路由器的管理页面。

因此,我只需要访问 http://[fd30:4dcf:77f9::1]/ 就可以访问到Web管理界面,再配合一个经典的弱密码,我就进去了。(省省力气,我把这个洞修复后堵上了)

image-20220910225502148

这未免有点容易,但是我还是不太满足,打算进一步深挖。在这之前,我要先看看他的配置

image-20220910233445873

我基本可以确定他的连接方式了:

  1. 宿舍网口 <===> 路由器LAN口-1
  2. 路由器LAN口-2 <===> 路由器WAN口

获取更多信息

下列内容已经经过屏蔽处理
如果有敏感信息,请联系我删除!

如果这位用的是普通的小米路由器,这事也就到此为止了,我虽然可以通过拦截DNS去钓鱼 http://portal.ucas.ac.cn这个认证网址(谁让信息中心不用https,活该),但我倒也不至于这么富有进攻性,顶多关掉路由器功能罢了。

但很可惜,这位用的是openwrt,里面还有一些有趣的东西。

image-20220910231109819

看到srun我就来劲了,这是UCAS的网关登录认证,和负责所有学生个人信息的SEP系统密码完全相同。那我自然是打开配置文件并观察验证一下:

image-20220910231445724

试验了一下发现不大对劲,密码错误,我想着应该不会犯这种错误。然后就选择看看有没有其他配置文件:

image-20220910231828876

里面是经过base64编码的用户名密码json文件

image-20220910233112216

然后用这个密码登录相关的系统。

image-20220910234244919

然后试试能不能看到对应的个人信息:

image-20220910234520816

后面还用对应的信息查到了宿舍号,不过这都是后话了。我要是上门八成会被打

其他隐患

弱密码WIFI

如果是觉得外网登录不上去WIFI还很合理,但是WIFI密码也设的这么弱,我真的不知道该说什么了。

修复

因为如果我改了WIFI密码,这位老哥多少是上不去了。所以我就先修复IPV6的遗留问题,免得大家都把这个路由器当后花园乱玩,堵上了这个洞后,只有他WIFI密码的问题需要解决了,这我就无能为力了。

image-20220910235054411

总结

没有金刚钻,别揽瓷器活。网络安全,人人要注意。

  1. 如果他知道LAN口暴露出来的风险,我就不会受影响,也不会受干扰。
  2. 如果他知道弱密码的风险,密码很强,进不去后台,那最多最多通过查找MAC地址巡楼找找到人(我疯了?)
  3. 如果他WIFI密码设的很强,也不会存在别人连到后台搞ARP攻击的风险。

综上,建议所有看到这篇文章的人:

  1. 永远不要把LAN口连出去,除非你十分清楚你在干什么。
  2. 路由器后台设置强密码,不然迟早痛苦面具,尤其是你放了重要数据的时候。
  3. WIFI设置强密码,不然别人连到后台搞ARP,一样能骗到密码。

顺便建议UCAS的信息化,为SRUN认证网页,加上HTTPS,虽然我没进行攻击,但我感觉这种只是换个字母表的操作是无法解决中间人攻击的。不行可以学SEP,搞个RSA加密上去,这样中间人了也最多只能影响流量。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇