红米音箱Play 开发调试实验 updating



前盖有内扣,拆好之后直接引三根针出来就可以ttl了。

密码 : substr(md5($SN . “5775B10D-15C0-7827-97B9-88EA07FCA97A”), 0, 14),hash salt在 /bin/mi_console 里写死了,根据设备型号判断。

串口波特率115200.

手动启动 ssh。

劫持流量,发现客户端不认第三方的https证书,错误提示是 SSL handshake with client failed: CA certificate could not be matched with a known, trusted CA (unknown_ca)。查了下libxiaomi_http.so,设置了CURLOPT_CAPATH /etc/ssl/certs,然而系统本身是squashfs直接挂载的ro,所以需要曲线救国。

ldd 查看 libxiaomi_http.so,发现引用了 libmbedtls.so libssl.so libcrypto.so,libcurl 的 vtls 里看了下实现,用了 这个函数,同时对比了各个实现,决定还是手工加一下证书。

鉴于系统是readonly挂载的,所以上 overlay 。

这样就可以在 /tmp/certs 里加证书,实现自定义ca。

具体操作我是在一台ubuntu上,把证书pem 文件命名为 .crt后缀放在 /usr/local/share/ca-certificates 下然后执行 update-ca-certificates 再去看 /etc/ssl/certs 里的symlink的hash。

我开发机的charles ca 证书 hash 是 6a3a5fb6.0,所以在我的小爱音箱里,我把证书 pem 文件copy到 /tmp/certs 然后 创建symlink。

再执行 ota check 的实话,观察charles,已经能看到ssl的请求了。



红米音箱Play 开发调试实验 updating by @sskaje: https://sskaje.me/2021/03/%e7%ba%a2%e7%b1%b3%e9%9f%b3%e7%ae%b1play-%e5%bc%80%e5%8f%91%e8%b0%83%e8%af%95%e5%ae%9e%e9%aa%8c-updating/

TL-R470GP-AC v4.0 开启SSH



不用折腾,真的不用折腾。上截图

端口隐藏了,我不确定 TP-Link 官方是否介意这个,所以只是给了个图上来。

我是把 1.1 的固件(1.1.0 Build 200831 Rel.44384n)翻了个遍,之前看到了改备份/配置文件的,再加上自己“经验”的开盒插 TTL,都没必要,固件里直接给了个功能。

系统工具 -》 诊断工具 -》 故障诊断 -》 开启诊断模式。

重启,找到合适的端口,不是 22,能看固件就看固件吧,代码里写死了。

用户名 root ,密码参考下边的代码,来自 /etc/init.d/dropbear 的最前边几行

macAddr 是设备标签上写的 MAC 地址,全大写,没有横线或者冒号。

对于 MAC 地址是 112233445566 的设备,root 密码就是 eb341820cd3a3485 。

给个链接 https://rst.im/hash/112233445566,参考 md5(half) 这行

另外,一些其他信息。

Telnet,telnet是开不了的,因为固件的 /etc/passwd 里放了一个默认密码,而 telnet 的启动脚本检测了,只有各种都是空的情况才能自动开启 telnet。假设条件成立,telnet 的密码也是空,参考 /etc/init.d/telnet 的 start()

串口,依旧没搞定。

opkg,自带配置无效,有空再去看哪个源可以用。

wireguard,等 opkg 搞了再看



You are not authorised to read all content in this post. Please login…

TL-R470GP-AC v4.0 开启SSH by @sskaje: https://sskaje.me/2020/10/tl-r470gp-ac-v4-0-ssh/

Incoming search terms:

SSH复用连接

Mac下没有用着特别爽的SSH客户端,所以基本就Terminal开SSH了。

经常的,连服务器得连好几个窗口,一边跑着程序,一边看日志。
以前Windows下用SecureCRT,可以Clone Session,直接复用当前的连接。OpenSSH也可以。

OpenSSH自带了配置:ControlMaster,ControlPath。

最简单的例子:

Tab 1

Tab 2

SSH复用连接 by @sskaje: https://sskaje.me/2016/07/ssh-reuse-connection/

Incoming search terms:

SSH命令行不重连新加tunnel

以前用PuTTY的时候,可以在会话过程中新开tunnel,而不需要断开原有连接重连。

后来命令行下,想着这么复杂的操作,PuTTY也是因为有GUI才好配置,所以一直当openssh命令行客户端不支持此功能。

直到看到ssh支持Escape Char,才发现原来可以这么搞。

ssh默认的escape char是 ~

这些命令,大都是按着SHIFT不放的。。。
Continue reading “SSH命令行不重连新加tunnel” »

SSH命令行不重连新加tunnel by @sskaje: https://sskaje.me/2016/07/ssh-cli-client-add-new-tunnel-on-the-fly/

Incoming search terms:

SSH Key管理

生成密钥对

ssh-keygen

最常用的参数是 -t 指定密钥类型,默认rsa
私钥文件需要保证其他用户不可读,可以使用 chmod 0600 来限制权限。

私钥生成公钥

ssh-keygen -y
使用 -f 参数指定私钥文件路径,否则程序会提示输入路径

多Key管理

方法 1 增加 用户 ~/.ssh/config

方法2 ssh-agent

不好用,自己找吧,基本思路是 ssh-agent bash 然后再 ssh-add KEY_FILE,完了再使用
具体可以参考几篇文章
http://mah.everybody.org/docs/ssh
http://sshkeychain.sourceforge.net/mirrors/SSH-with-Keys-HOWTO/SSH-with-Keys-HOWTO-6.html

SSH Key管理 by @sskaje: https://sskaje.me/2015/11/ssh-key%e7%ae%a1%e7%90%86/