• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

案例分享-解包威联通NAS系统镜像恢复降级后丢失的系统组件

linux 搞代码 3年前 (2022-03-03) 56次浏览 已收录 0个评论
文章目录[隐藏]

威联通(QNAP)在2021年9月公布了全新的QTS 5.0零碎,笔者最近收到了官网更新告诉,于是将本人的TS-551降级到最新版,却发现无论是零碎晦涩度还是稳定性都与他们宣传的差距甚远,不得不降级到QTS 4.5.4。然而因为QTS 5.0将FTP作为可选软件包(QuFTP),降级后零碎里既没有QuFTP,也没有QTS 4应该有的proftpd,本文将为读者分享威联通NAS解包零碎镜像,复原零碎组件的过程。

0x01 问题概述

如上文所示,笔者在从QTS 5降级到QTS 4后,发现FTP服务关上后,21端口仍旧无奈联通,进入SSH查看过程列表,却发现基本没有proftpd过程:

0x02 剖析问题

笔者首先想到的是手动启动FTP服务,于是执行了如下命令:

<code class="bash">sudo /etc/init.d/ftp.sh start

执行结束后,却发现FTP过程并没有呈现。

于是笔者关上上述启动脚本,心愿能手动启动服务,查看是否有报错或其余信息:

<code class="bash">/sbin/daemon_mgr proftpd start "LD_PRELOAD=/usr/local/lib/libtrash.so TZ=/etc/localtime /usr/local/sbin/proftpd -n > /dev/null 2>&1 &"

间接报错segmentation fault

间接执行/usr/local/sbin/proftpd

看来这就是问题所在,proftpd基本不存在,兴许是降级时固件遗记将QTS 5.0删除的proftpd复原回来,导致此问题。

在通过一番搜寻后,笔者发现威联通批改过proftpd的源码,退出了治理性能和一些其余的定制性能,因而无奈间接从网上找现成的二进制文件或源码包装置,必须应用和零碎版本匹配的原版二进制文件复原回去。那么哪里来二进制文件呢?笔者想到了官网的零碎固件。

笔者从威联通的下载核心下载和零碎版本统一的镜像,取得名为TS-XA51_20210923-4.5.4.1800.zip的零碎镜像,解压之,取得了后缀名为.img的同名镜像。在尝试应用多款解压缩软件和磁盘镜像软件后,笔者意识到,仿佛该镜像文件并不是惯例的格局,而是威联通定制的格局。

既然是定制的格局,那么肯定有中央能够解压,而零碎镜像是装置到NAS里的,解压工具也应该在NAS里有内置才对。

0x03 解包镜像

找到了一个可行的方向,于是笔者开始在零碎里寻找与固件更新相干的脚本。在笔者的一番寻找下,发现一个位于/etc/init.d/update.sh的脚本十分『可疑』,因为脚本较长,下文摘录其中一行,也是最要害的一行:

<code class="bash">/sbin/PC1 d QNAPNASVERSION4 "$path_name" "${_tgz}" "${CS_SIGNATURE}";

依照脚本所示,PC1应该是解压零碎固件包的工具,该工具将零碎固件解压到一个.tar.gz文件。于是笔者依照这个命令的规定,对上文咱们取得的img包进行解压:

<code class="bash">PC1 d QNAPNASVERSION4 ./TS-XA51_20210923-4.5.4.1800.img ./TS-XA51_20210923-4.5.4.1800.tar.gz

后果令人振奋,果然拿到了一个名为TS-XA51_20210923-4.5.4.1800.tar.gz的压缩包:

接下来笔者尝试解压该压缩包,取得了下图所示的文件:

依据文件名规定,能够猜测出局部文件来自boot分区,而外面的rootfs2.bzrootfs_ext.tgz则是须要关注的重点。于是笔者持续解压这两个文件:

<code class="bash">$ bzip2 -k -d ./rootfs2.bz
bzip2: ./rootfs2.bz is not a bzip2 file.
# 既然其格局不是规范格局,那么应用file命令来看看到底是什么格局
$ file ./rootfs2.bz
rootfs2.bz: LZMA compressed data, streamed
# 原来是LZMA格局,和initrc.img一样解压即可
$ xz -dc ./rootfs2.bz | cpio -id

此时再查看当前目录,会发现呈现了一些目录:

上文提到,咱们须要的文件在/usr/local/sbin/prosftpd,那么来看看./rootfs2.bz文件里是否蕴含咱们所须要的文件呢:

答案是必定的~

0x04 解决问题

既然取得了这个文件,接下来要做的事件就非常简单了:将其复制到对应目录,而后在NAS的控制面板里从新关上FTP服务:

<code class="bash">$ sudo cp ./usr/local/sbin/proftpd /usr/local/sbin/proftpd

再查看过程列表:

应用telnet连贯21端口,能够连通,问题胜利解决!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:案例分享-解包威联通NAS系统镜像恢复降级后丢失的系统组件

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址