小米路由器青春版 SSH密码根据SN破解
小米路由器青春版 SSH密码根据SN破解
写了个 php 命令行版的,用自己的 mini 版(R1CM)测试了一下,和官方给出的 SSH 密码一样。
解包了三代(R3),二代(R2D),青春版(R1CL)的 mkxqimage ,也和 mini 版一样,可以使用。
解包了垃圾桶(R1D)的,发现也是 ‘A2E371B0-B34B-48A5-8C40-A7133F3B5D88’,且 hash 时不反转
#!/usr/bin/env php
<?php
//路由器固件解包后,从 /bin/mkxqimage 中提取的盐
$salt = array(
'r1d' => 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
'others' => 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'
);
isset($argv[1]) or die('Usage: ' . $argv[0] . " SN\n");
print_line(get_passwd($argv[1]));
function print_line($message) {
echo $message . "\n";
}
//密码算法:
//原始 SN 拼接反转后的盐,做 md5 运算取前 8 个字符
function get_passwd($sn) {
return substr(md5($sn . get_salt($sn)), 0, 8);
}
// SN 中不含 '/' 则为 r1d
function get_salt($sn) {
global $salt;
if (false === strpos($sn, '/')) {
return $salt['r1d'];
} else {
return swap_salt($salt['others']);
}
}
//非 R1D 盐要反转后才能使用
function swap_salt($salt) {
return implode('-', array_reverse(explode('-', $salt)));
}
使用方法:
-
安装 php 命令行环境
centos 可以用yum install -y php-cli
Ubuntu可以
sudo apt-get install php
-
复制php代码,保存为a.php
在命令行界面运行:
pi@DESKTOP-55HOBQT:/mnt/c/Users/jiazhao/Desktop$ php a.php 10508/00771881 564fa3c2
-
登陆到路由器,密码是刚刚破解的出来的数字,没有ssh的,先sudo apt-get install ssh
用户名:root
密码:564fa3c2ssh root@192.168.31.1
看到 ARE U OK即破解成功