如何去除Telstra路由器中的Telstra Air服务和Fon WiFi
Telstra Smart Modem Gen 2(DJA0231)关个Telstra Air实在是太难了!
我刚开始使用Telstra的时候就遇到过这个问题:新路由到手,家里莫名其妙多了一个Telstra Air+Fon WiFi的热点。我曾经无数次通过Telstra Dashboard关闭它,每次它都会显示"Deactivating..." 然后又!变!回!了!Active。我只在刚使用Telstra之初,找了无数次客服,通过Telstra Perth(我也不知道为什么莫名其妙转去了Perth)的Engineering Team成功关闭过一次。我至今都不知道是如何关闭的,只知道是和一个Engineer通话以后成功关闭了这个神坑服务。
最近改了套餐以后这个服务又被莫名其妙的再次激活了。我无数次联系过Telstra的客服,他们真的只会说:
- 我帮你关了(其实并没有)
- 已经关了我看到工单了(那个单子没有关啊大哥)
- 我又帮你关了一次(完全没有)
- 我帮你问上级(然后杳无音讯)
- 你这个服务没办法关闭(那你第一次怎么关的??)
0x00 关不掉的Telstra Air
本来想说忍忍算了,但是因为我多数时候在桥接模式使用Telstra Smart Modem Gen 2(DJA0231),它近距离同时和我桥接的Asus工作会明显的干扰到正常的WiFi使用(抢频段问题),IoT设备尤其明显。
事实上,就算我像大多数人一样直接使用Telstra给的路由器不做桥接,依然会对正常使用产生一定的干扰,游戏/视频通话突然的卡顿很多时候都和Telstra Air的访客接入有关。尤其是你在无线高负载访问内网用NAS,又或者链路质量一般你在接近满载跑WAN的时候有人连了你路由的Telstra Air——在用户路由器上加载这种服务(还关不掉!)真的就是丧心病狂的设计。
0x01 我黑我自己
做了一下功课,Telstra Smart Modem Gen 2(DJA0231)是属于相对比较容易root的Modem。
常见的漏洞及Hack方式在 hack-technicolor 有很全面的总结。以DJA0231为例,能通过已知漏洞中的tch-exploit方式入侵。
1. 手动设置自己的IP为Static IP:
IPv4 Address: 58.162.0.1
Subnet Mask: 255.255.255.0
Default Gateway\Router: 58.162.0.1
2. 准备tch-exploit工具(假设你已经安装了nodejs):
# 从github下载tch-exploit
git clone https://github.com/BoLaMN/tch-exploit.git
cd tch-exploit
# <你现在在tch-exploit文件夹根目录>
# 安装dependency+compile
npm install pkg coffee-script -g
npm install
npm run compile
npm run package
# 工具就绪 - 东西都在release文件夹里了,win/mac/linux全平台支持
cd release
3. (推荐)reset一次(恢复出厂设置)。因为你如果你在bridge模式下,该root工具无法正常运作。
4. 网线接路由器的WAN口(土澳这些Modem WAN大部分是红色的),注意不是LAN口。逻辑是我们要假装自己是服务器利用DHCP+远程管理漏洞(CWMP),所以你要让Modem认为你是它的上游ISP服务器,所以做这一步的时候千万别接到了LAN口。
5. 用管理员权限(Linux/Mac下请sudo)执行release文件夹下的可执行文件,然后开始等待,大概1分钟左右开始出现滚屏,再1分钟左右提示按下WPS按钮5s左右,看到屏幕信息提示成功就完成了。
这个流程如果有问题,可以参考:https://github.com/BoLaMN/tch-exploit#full-example-with-windows-and-technicolor-dja0231
到此处,把网线插回LAN口+本机获得ip方式改回dynamic IP/Auto DHCP就大功告成了。
ssh root@192.168.0.1
# 密码也是root就能进去了
# 如果不行(新系统可能会提示KexAlgorithm不支持),请尝试下方命令连接:
ssh root@192.168.0.1 -oKexAlgorithms=+diffie-hellman-group1-sha1
# 登录进去第一件事把默认密码改了
passwd root
# 确保SSH只开放给LAN口用户(否则就分分钟公网爆破了)
uci set dropbear.wan.enable='0'
uci commit dropbear
0x02 删除Telstra Air和Fon WiFi
在Telstra制定的固件中,这两项服务主要以 /etc/init.d/hotspotd来提供服务。Root以后执掌一切生杀大权,赶紧杀了这个服务助助兴。
杀完以后进入后台你会发现这两服务都黑了:
0x03 删除监控和奇怪的预留访问(后门?)
我摸索了一下发现一件有意思的事情:
DJA0231的固件是基于Openwrt的(事实上大部分NBN的Modem固件都是基于Openwrt的)。Dropbear包提供SSH服务(相当于常见Linux发行版的OpenSSH),遵循同样的逻辑我下意识看了一下 /etc/dropbear/authorized_keys 文件,直接好家伙,里面预留了一个TCH Debug Key和一个未知用途/来源的key。
第一个Key我假设是Technicolor粗心忘记删除了开发时候用的key好了,第二个Key是什么操作我真的不明白。我root过iiNet的另一个ISP Modem(见下节),其中是没有任何预授权Key的。
这种预留Auth Key的操作,要放在其他国内品牌被挖出来早就炸锅了。
除了这个坑以外,大家有否觉得奇怪为什么你在Telstra App当中查看连接路由的设备的时候iOS系统不给LAN权限它依然能获得完整的app列表?像这个功能:
既然Root了直接按照hack-technicolor的指南清理一波:
清理完成以后,你再在app当中尝试这个功能,应该会获得以下提示:
提示说功能无法正常使用。说明这些冗余的监控应该是被清理掉了。
0x04 所以这些ISP路由有多脆弱?
有一说一,Telstra的Telstra Smart Modem Gen 2(DJA0231)在最新固件的加持下已经是相对安全的了。我倒腾了一下手头iiNet的ISP老Modem(TG-789),真的从连上到获得root不超过10s:
- 你连上运行老固件的TG-789(我的固件好像是17年的)
- 找到 Diagnostics,ping的目标输入:
3. 好了用户名root,密码root,端口6666,去登录吧(来自 autoflashgui 的方案)
(不要问我为什么,我也不知道为什么iiNet那时候用了一个Demo build部署给了我的Modem,我拿到就是这样的)
所以如果你的ISP路由器有漏洞,简单的入侵并不是遥不可及的,也未必需要物理接触Modem。
0x05 一点建议
- 尽可能不要直接使用ISP送的路由器,你需要一个自己的路由器。
部署网络的时候建议桥接连自己的路由器 或 Double NAT(把自己的路由器作为客户端挂载在Modem LAN口,然后把这个唯一的客户端设置成DMZ) - 不要过于乐观的假设自己的网络环境是安全的(我在家使用家里的WiFi所以我是安全的),有条件的还是得挂上VPN。
- 没条件的尽可能做到DNS都上DoT/DoH+能HTTPS就HTTPS。路由一旦被入侵,没有加密的http流量在路由这一侧就是透明的。什么局域网登录个NAS都是什么账号密码、访问过哪些网站(DNS如果是不加密的就能记录所有访问结果了)。