小米路由器4A 刷入 Breed 与 Padavan
背景
之前实现了校园网内的笔记本远程唤醒。当时确实以为自己成功了,直到第二天。
第二天一醒来我就拿出平板准备远程唤醒床下的笔记本,开始过上小康生活。但是却失败了。这让我非常纳闷。
查询资料过后,推测原因应该是学校的路由器没有将笔记本的mac和ip进行绑定,即没有进行arp绑定。
这就导致笔记本睡眠或者关机超过两分钟,ip和mac的信息就从路由器的缓存中删除了,之后想要唤醒也就不可能了。
于是我就打算在宿舍布置一台路由器,路由器因为一直开着,学校路由器就不会把信息从arp表中删除。从而实现唤醒。
过程
-
我买的路由器是
小米路由器4A千兆版 XiaoMi Route 4A
。它自带的rom其实非常不错,界面也非常美观。除了它有一个致命缺陷,它不支持arp绑定。这令我非常无语。在手机和笔记本都连在路由器的情况下,我无法唤醒笔记本,简直离谱。当然貌似能通过命令的方式手动写arp表,但是当时还想着刷机完,就没尝试,现在有点后悔了。 -
给路由器刷机其实非常简单,首先我们得获得路由器的shell。但是坑爹的小米没有给你ssh的权限。所以一个大神直接用一个路由器管理界面的漏洞来直接get shell 2333。github仓库:acecilia/OpenWRTInvasion。按照文档说明一步步来即可 get shell。
-
以上的脚本不光可以get shell,同时还在路由器的21端口开放了ftp服务器,我们可以用
winscp
来连接路由器,方便之后的文件传输。 -
在终端中输入以下命令来备份路由器的
eeprom
,虽然好像没用。1
dd if=/dev/mtd3 of=/tmp/eeprom.bin
输完命令后,通过winscp把文件备份到电脑上。
-
下载breed的固件。链接 https://breed.hackpascal.net/breed-mt7621-pbr-m1.bin 。
breed就是一个bootloader,用它来可以刷其他固件,而且有了breed就不怕路由器变砖了。长按reset的情况下接通路由器电源,等路由器灯亮了10s左右放开手,路由器就能回到只有一个breed的初始状态,开始新的刷机,十分方便。
breed的固件可以在电脑上下好后通过winscp传到路由器的
/tmp
文件夹下。再输入以下指令刷入breed 固件。1
cd /tmp && mtd write breed-mt7621-pbr-m1.bin Bootloader
-
之后路由器会自动重启,从路由器的LAN口扯出一根网线连到笔记本上,访问
192.168.1.1
即可进入breed控制界面。 -
然后去这个这个 仓库里下载 Openwrt 的breed直装版 Actions · ababwbq/Actions-OpenWrt-Xiaomi-R4A (github.com) 。直接装官网的版本会出错,估计官网是给你直接刷的,而不是通过breed来刷的。
下载以下文件,然后解压后就可以得到Openwrt的breed直装固件了。
这里我记得刷
sysupgrade
的固件即可。 -
openwrt的页面非常好看,功能也非常丰富,但是它有一个非常奇怪的特性。
因为学校上网首先需要过一遍锐捷的校园网认证。那路由器怎么过认证呢?
正常情况下,我们可以用一台设备连接路由器的网络,然后点开一个网页,这是网页就会自动跳转到认证界面,输入账号密码过后就能认证成功。而学校的网络只能识别到一个路由器完成了校园网认证,它没法检测到路由器下的内网。所以我们这样一干实际上就把路由器给认证了。
但是openwrt特立独行,我从LAN口接出一条网线给笔记本,结果笔记本无法跳出认证界面。如果用wifi连,能跳出来,但是一看ip,好家伙,ip是校园网的,认证的是笔记本,而不是路由器。
这非常奇怪,现在回想起来,感觉是openwrt的默认路由模式的问题,从现象来看openwrt像是在AP
(Access Point)
模式,就是一台具有无线的交换机。但是我找不到如何设置模式,网上也没有这种问题的解决方案。当时我想到了一个解决方案,就是用我上次写的校园网自动认证脚本来让路由器过校园网认证。但是这起码得有
curl
命令,但是路由器默认没有curl
,而下载命令需要网络。我甚至还试图用笔记本的网络来共享给路由器,结果不知道为什么不行,总之非常的折磨(然后就放弃了,准备刷padavan。
-
padavan在breed里直接刷就行。固件我是用的恩山论坛这位老哥分享的 小米路由器4A千兆版刷Padavan(WIN10刷,含刷死救砖)
padavan比openwrt好驯服多了,刷完笔记本连上LAN口网线,直接弹出了校园网认证界面,直接就把路由器给认证了。
以下是padavan默认的信息
- 新固件网关:192.168.123.1
- 管理页面:http://my.router
- 管理账号:admin/admin
- wifi名称:pdcn
- wifi密码:1234567890
后台访问界面用的是HTTP Basic认证。
界面没有openwrt和小米原rom好看,但是功能十分丰富。我一开始买路由器就是为了解决远程唤醒笔记本的问题,我惊喜地发现它在管理界面可以直接唤醒设备。
这就十分方便了,那我们就不需要什么WOL软件,更不需要什么麻烦的端口转发了,我们唯一需要干的事就是保持我们可以访问到路由器管理界面。
我们首先打开
高级设置->防火墙->允许从互联网设置MT7621_7603_7612_128M
的开关,这样就能在校园网内访问到管理界面了。然后我又用了实验室的主机做了管理界面的反代,再把服务内网穿透给阿里云服务器,最终实现了公网打开管理界面。
但是这样还是不够方便,于是我用Burp抓了个包。
也就是说我们唤醒笔记本只需要发送这样一个HTTP报文就可以了,那我们如何借助手机或者平板来实现这个功能了。
这里就要介绍无敌Burpsuite的强大功能了,分别是
Copy as requests
和Copy as curl command
,前者可以把HTTP报文转化为python的requests请求,后者可以直接转化为shell中的curl方式。这样我就得到了两个脚本。运行任意一个就可以在公网唤醒我的笔记本。
视频演示
战术总结
刷机过程挺有趣的,学习到了许多。
解决了之前学校路由器没有arp绑定的痛点。实现了真正的随时(电脑关机或睡眠多久都没事)
随地(公网唤醒)
唤醒笔记本。