OEC/OEC-turbo刷机(4)——免拆刷机和ttl串口进入原厂系统
从隔壁某恩论坛花论坛币买的内容。
手上已对没有原厂系统的OEC设备了。虽然可以通过刷包方式刷回,但是对这部分内容做具体验证稍微有点复杂。
不过据说还有用。
江湖上一直有OEC/OEC-turbo免拆刷机和原厂泄露ssh密码的传言,但我一直没有验证成功。后来在隔壁某恩论坛购买了一些别人的研究成果,发现原来我自己试的时候还是有一些技术性失误的。
所以,把这些内容整理下,免费分享这里来,让更多的人可以去试一下。
一、原理。
不管是免拆刷机还是ttl串口进入原厂系统,其原理都是利用原系统还原后的漏洞或者泄露的密码进入原系统,然后进行其他操作。
默认情况下,之所以无法通过ssh连接设备,是因为设备在第一次启动10秒后,设置了密码,而这个密码在联网后又会更改。
参考下面这段代码:
#sleep 10
factorymode=`fw_printenv xl_softmode | awk -F"=" '{print $2}'`
if [ "${factorymode}" = "factory" ]; then
echo "fatorymode = ${factorymode}, S98 exit"
exit 1;
fi
check_pswd=`cat /etc/shadow | grep "root:" | awk NR==1 | awk -F':' '{print $2}'`
if [ "${check_pswd}" = "" ]; then
echo "no has passwd" > /tmp/S98.log
rm -f '/etc/shadow+'
myhostname=`hostname | awk -F'_' '{print $2}'`
mypswd="${myhostname}""a311d2019"
(echo ${mypswd}; sleep 1; echo ${mypswd}) | passwd root
else
echo "already has passwd" > /tmp/S98.log
fi
在/etc/init.d里面S98passwd文件专门配置密码的
二、免拆刷机。
1、固定ip。
捅屁股(reset)恢复出厂设置,让盒子开机固定ip 在10.9.8.7(可以反复捅,以确认固定ip)。
2、电脑安装ssh工具,将电脑与OEC直连,设置电脑固定IP为10.9.8.x(10.9.8.10)。(可以用浏览器打开10.9.8.7:8080看恢复出厂设置后,工作状态对不对。)
其中OES的官网有介绍过方法,可以参考:
OES/OES Plus设备管理页面-进入教程 | 网心云帮助中心本文介绍如何进入OES本地管理页面(可进行网络配置、设备信息查询操作)https://help.onethingcloud.com/30d0/3704/a4c3
3、打开ssh工具,输入连接信息。root密码为:机身SN后4位+a311d2019(例如,SN后四位是 "1234",那么默认密码将是 "1234a311d2019")。(也可以试:机身SN后4位+rk35662019)
登录成功后,即为root权限,当然就可以为所欲为了。
二、ttl串口登录。
ttl串口登录需要拆机,优点是不需要管网络连接,拔掉设备所有连接即可。缺点是需要拆机,有一定的动手能力,还需要有usb转ttl的硬件支持。
原理:
ttl串口登录的原理就是使用了上面说过的2点:
其一是OEC/OEC-turbo在还原出厂设备后第一次登录时,是没有密码的。这时候打断系统初始化,可以实现无密码登录。
其二原理就是类似于上面的方式了。第一次登录时,系统初始化10s左右,会设置初始密码。使用这个初始密码也可以登录。
1、固定ip。参考上面内容
2、开机10s左右敲回车,打断系统初始化,这时候无需密码即可以进入系统。
[ 10.300393@2]- EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
mediafs_mount /mnt/media over 0
has not ufsd driver...
switch_root starting new jia debug.
或者等初始化完成,使用初始密码进入。
stat /dev/env OK
stat /dev/env OK
kill: you need to specify whom to kill
killall: xyipkd: no process killed
killall: xyipk: no process killed
EC01_4652 login: upgrade stat main thread start !
[xyipk] dzlog init with file(/thunder/etc/ubus_app_log.conf) failed: -1
Starting Monit 5.20.0 daemon with http interface at [localhost]:2812
start monit OK
Login timed out after 60 seconds
EC01_4652 login: [ 75.380884] systemd-udevd[3695]: execve env: ACTION=change
[ 75.380933] systemd-udevd[3695]: execve env: DEVPATH=/devices/virtual/block/loop1
[ 75.380945] systemd-udevd[3695]: execve env: SUBSYSTEM=block
[ 75.380957] systemd-udevd[3695]: execve env: DEVNAME=/dev/loop1
[ 75.380977] systemd-udevd[3695]: execve env: DEVTYPE=disk
[ 75.380993] systemd-udevd[3695]: execve env: SEQNUM=1605
[ 75.381008] systemd-udevd[3695]: execve env: MAJOR=7
[ 75.381024] systemd-udevd[3695]: execve env: MINOR=1
[ 75.381039] systemd-udevd[3695]: execve env: USEC_INITIALIZED=75360631
[ 75.381056] systemd-udevd[3695]: execve env: LD_LIBRARY_PATH=/app/system/miner.plugin-deps.ipk/lvm-plugin/lib
EC01_4652 login:
然后,root权限,也可以为所欲为了...
只有没刷昔映的机器,恢复出厂设置后,在第一次可以无密码进入,时间很短,你可以在10s滚动以后,提前打回车,直接输入root,停止滚动后看是否问你要密码,如果要就按照密码规则输入就行。
root@ES01_xxxx:,那样对应的密码就是xxxxa311d2019,如果没要密码,会直接刷出root命令行。
刷了昔映根本没有机会。
三、刷机
ssh登录成功,执行 fw_setenv xl_softmode 'factory',就可以捅reset键进入Loader模式刷机了
最后还是要说一句:刷机有风险,操作需谨慎。