家里路由开启https后,证书提示错误,查看是openwrt的证书。咨询售后无果,也不支持远程登陆。猜测是基于openwrt修改的固件,遂百度方法。

tplink_crt1

主要步骤

  • 尝试远程登陆,无果,使用内网机器nmap扫描tplink全端口,无果。
  • 咨询tplink售后如何替换证书,是否支持ssh登录管理,无果。
  • 根据证书google登录ssh登录tplink方法,找到可行方案。
  • 导出备份文件,二进制格式无法打开,根据提示使用7-ZIP,成功查看到目录结构。
  • 此时,目录下已发现证书公私钥,替换后导入配置即可。 tplink_crt2

可能遇到的问题

  • bin文件不支持修改,需要重新打包 由于可以查看到根目录,尝试使用7zip替换文件,存在风险,不过成功了。
  • 证书文件是二进制格式 使用openssl转换openssl x509 -in upttpd.crt -outform der -out uhttpd.der.crt 使用openssl转换openssl rsa -in uhttpd.key -outform der -out uhttpd.der.key

证书编码格式一般为PEM1、DER2 证书编码转换

PEM转为DER openssl x509 -in cert.crt -outform der -out cert.der

DER转为PEM openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

(提示:要转换KEY文件也类似,只不过把x509换成rsa,要转CSR的话,把x509换成req…)


成功SSL tplink_ssl

主要配置文件

/etc/profile.d/profile    #修改静态路由限制
/etc/config/static_route #静态路由配置文件
/etc/config/dropbear   #openwrt管理ssh配置文件
/etc/passwd
/etc/shadow

原教程提供了详细修改方法,发现修改tplink密码文件后,重启路由仍会被覆盖,并解释了相关代码。作者后根据信息直接提取出root密码

密码都是根据各种硬件号来生成的,就直接在当前用户下重新执行一下getNewPasswd里的那几条代码,root密码就出来了

成功登陆 tplink_ssh

证书知识点 破解TP-Link路由


  1. Privacy Enhanced Mail,打开看文本格式,以"—–BEGIN…“开头, “—–END…“结尾,内容是BASE64编码. 查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout Apache和*NIX服务器偏向于使用这种编码格式 ↩︎

  2. Distinguished Encoding Rules,打开看是二进制格式,不可读. 查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -noout Java和Windows服务器偏向于使用这种编码格式. ↩︎