记一个4G路由器取得SSH权限
文章目录
路由器有ssh但是无密码.
路由器基本信息
捡的.
通电后是openwrt,有web,admin可以登录.
ssh是打开的,admin账户无法SSH登录,要root.
尝试破解
web页面是大改过的openwrt luci.
有备份配置和还原配置,但是导出的配置文件是bin文件,是加密后的文件.
也就是想通过还原配置文件修改root密码不行.
没有web启动项设置,被阉割了,想通过写入rc.local执行替换root密码行不通.
上ttl ,ttl也是需要登录,权限和ssh一样.
进openwrt修复模式发现也不行.ttl行不通.
u-boot中断,发现是breed,懒得我拆spi flash上编程器.
直接breed导出编程器固件.
开始破解
binwalk分析
提取squashfs
1525225就是分区开始位置.
解包squashfs
跑字典破解密码
/etc/shadow 有一个root一个admin,将这两个放入target_hashes.txt
用github上常见密码字键跑
很遗憾只跑出admin密码是admin
root密码跑不出来.使用john命令破解也只能破解出admin的密码
替换root密码
生成一个123456的密码
替换root密码.
打包squashfs
尝试直接刷,无论breed和路由器后台都不能刷入.
打包编程器固件
breed刷入
然后breed刷入编程器固件,要保留breed.
遗憾发现root密码还是错误的.
通过解包JFFS2分区,发现会覆盖shadow文件.导致密码被覆盖.
JFFS2解包后没有好用的打包工具.所以不能在JFFS2分区操作.
通过发现,rc.local文件没有被覆盖.
修改rc.local文件
准备一个shadow2 ,这个文件不会被覆盖.
然后重新打包编程器固件,重新breed刷入固件.
成功进入ssh.
二次破解
上面已经取得ssh权限,但是编程器固件不太适合打包分发给其他设备.
要想办法在路由器备份还原上操作.
查看备份还原代码
是luci控制的,但是简单加密了,无法记事本查看,但是可以看到一些字符,用hex查看.
文件路径
sysupgrade -b是备份配置的命令. 然后执行了 crypt -e 加密.
此步实际上我在编程器固件前面就做了.
发现crypt命令不是linux/openwrt常见命令,我将解包后的crypt拷贝到我hc5661 (极路由1S,CPU相同)上发现缺少so文件,无法运行.
所以在取得ssh后再次开始.
手动加解密验证
先用sysupgrade -b备份配置文件,然后用crypt -e加密 crypt -d解密,发现正常的.
制作通用破解包
tar.gz打包文件
/etc/shadow
/etc/shadow2
/etc/rc.local
然后加密成bin文件导出.
验证
我特意用breed还原成最初编程器固件,也就全是官方固件.
然后进后台web,刷入我导出的配置包.
重启后可以正常用root和123456访问ssh.并且重启后,也可以用.
因为只修改了shadow文件.这种破解文件可以分发到其他设备.而不改变路由器原本其他配置.