找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 17474|回复: 11

小米路由器 SSH 密码计算器

[复制链接]
发表于 2016-7-14 16:34 | 显示全部楼层 |阅读模式
本帖最后由 xiaooloong 于 2016-7-23 15:01 编辑

写了个 php 命令行版的,用自己的 mini 版(R1CM)测试了一下,和官方给出的 SSH 密码一样。
解包了三代(R3),二代(R2D),青春版(R1CL)的 mkxqimage ,盐和 mini 版一样,可以使用。
解包了垃圾桶(R1D)的,发现盐是 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',且 hash 时不反转

  1. #!/usr/bin/env php
  2. <?php
  3. //路由器固件解包后,从 /bin/mkxqimage 中提取的盐
  4. $salt = array(
  5.     'r1d' => 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
  6.     'others' => 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'
  7. );

  8. isset($argv[1]) or die('Usage: ' . $argv[0] . " SN\n");
  9. print_line(get_passwd($argv[1]));

  10. function print_line($message) {
  11.     echo $message . "\n";
  12. }

  13. //密码算法:
  14. //原始 SN 拼接反转后的盐,做 md5 运算取前 8 个字符
  15. function get_passwd($sn) {
  16.     return substr(md5($sn . get_salt($sn)), 0, 8);
  17. }

  18. // SN 中不含 '/' 则为 r1d
  19. function get_salt($sn) {
  20.     global $salt;
  21.     if (false === strpos($sn, '/')) {
  22.         return $salt['r1d'];
  23.     } else {
  24.         return swap_salt($salt['others']);
  25.     }
  26. }

  27. //非 R1D 盐要反转后才能使用
  28. function swap_salt($salt) {
  29.     return implode('-', array_reverse(explode('-', $salt)));
  30. }
复制代码


使用方法:
保存为 a.php
在命令行界面运行:

  1. [xiaooloong@localhost ~]# php a.php 0000/00000000 #输入完整的 sn (带有 /)
  2. 6e9ea860 #即可获取 ssh 密码
复制代码


centos 可以用
  1. yum install -y php-cli
复制代码

安装 php 命令行环境


评分

参与人数 1恩山币 +1 收起 理由
如也。 + 1 强大的恩山!(以下重复1万次)

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
 楼主| 发表于 2016-7-14 16:44 | 显示全部楼层
本帖最后由 xiaooloong 于 2016-7-14 16:59 编辑

顺便借问一下,有没有知道
d44fb0960aa0-a5e6-4a30-250f-6d2df50a
是怎么变成算密码用的盐的?


老眼昏花,就是把 - 分隔的翻转一下
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2016-7-14 17:51 | 显示全部楼层
试了一下和程序算出的一样:
<?php
$sn = 'xxx';
echo substr(md5($sn . '6d2df50a-250f-4a30-a5e6-d44fb0960aa0'), 0, 8);



R1D的salt是 "A2E371B0-B34B-48A5-8C40-A7133F3B5D88"

剩下的机型全部是 "6d2df50a-250f-4a30-a5e6-d44fb0960aa0"

登陆官方系统后运行 "mkxqimage -I" 就会显示SN对应的root密码,

不过光算出密码是登陆不了的,还得把nvram参数ssh_en设置为1才能启动dropbear,

还有论坛里这个帖子https://www.right.com.cn/FORUM/thread-160082-1-1.html,方法全是错误的,ssh_rom.bin文件根本就不通用,SN不一样是过不了验证执行不了脚本的,不知道怎么就被版主稀里糊涂高亮加精了。


R1D:
<?php
$sn = 'xxx';
echo substr(md5($sn . 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88'), 0, 8);



这里有个在线算R1D的 http://www.iptvfans.cn/miwifi/passwd/


点评

现在还没拿到 R1D,请教一下,一代的盐不用反转么?  详情 回复 发表于 2016-7-14 19:17
我就说 iptvfan 上的盐不对,原来是算 R1D 的  详情 回复 发表于 2016-7-14 18:30
我就说这个地址怎么算出来不对,原来是算 R1D  详情 回复 发表于 2016-7-14 18:29
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-14 18:29 | 显示全部楼层
tianbaoha 发表于 2016-7-14 17:51
试了一下和程序算出的一样:

我就说这个地址怎么算出来不对,原来是算 R1D
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-14 18:30 | 显示全部楼层
tianbaoha 发表于 2016-7-14 17:51
试了一下和程序算出的一样:

我就说 iptvfan 上的盐不对,原来是算 R1D 的
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-14 19:17 | 显示全部楼层
tianbaoha 发表于 2016-7-14 17:51
试了一下和程序算出的一样:

现在还没拿到 R1D,请教一下,一代的盐不用反转么?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2021-4-7 08:45 | 显示全部楼层
思考了,顶起!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2022-4-14 22:46 | 显示全部楼层
有没有帮忙算的,我不会弄这个
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2022-4-14 23:27 | 显示全部楼层
kozhai 发表于 2022-4-14 22:46
有没有帮忙算的,我不会弄这个

把sn码复制到这个网站里面就行了,如果这还不会就别考虑刷机了。
[url=https://www.oxygen7.cn/miwifi/]https://www.oxygen7.cn/miwifi/[/url]
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2022-5-7 01:30 | 显示全部楼层
获取了登陆密码,那怎么开启连接ssh啊
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2022-10-8 07:07 | 显示全部楼层
感谢大佬分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-8-22 17:05 | 显示全部楼层
本帖最后由 dsanke 于 2023-8-22 17:16 编辑

感谢分享,很有用,整了个python3的:
  1. from hashlib import md5
  2. from sys import argv

  3. salt_r1d = r'A2E371B0-B34B-48A5-8C40-A7133F3B5D88'
  4. salt_others = r'6d2df50a-250f-4a30-a5e6-d44fb0960aa0'

  5. if len(argv) == 2:
  6.     if r'/' not in argv[1]:
  7.         salt = salt_r1d
  8.     else:
  9.         salt = salt_others
  10.     print(md5((argv[1]+salt).encode('utf-8')).hexdigest()[:8])
复制代码
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-5-30 15:47

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表