您可以在固件映像上编辑 /etc/passwd 吗?

您可以在固件映像上编辑 /etc/passwd 吗?

我正在尝试在为闭路电视系统购买的廉价 DVR 上获得 root 访问权限。制造商有一个可供下载的固件更新映像,我可以使用名为 的工具进行检查,binwalk并提取了 rootfs.它看起来像是带有 Busybox 的嵌入式 Linux。

我查看了该/etc/passwd文件,其中有一行root定义了密码哈希和登录 shell。没有/etc/shadow文件,但有一个/etc/passwd-我以前没见过的文件。

我还发现了一个通常会启动的初始化脚本,telnetd但它已被注释掉。

我可以生成一个新的密码哈希来替换 in /etc/passwd,取消注释该telnetd行,然后通过网络通过 telnet 使用新密码以 root 身份登录吗?

(当然,这忽略了我将新固件刷新到设备上并使其变砖可能遇到的问题)

编辑:

这是 binwalk 的输出。它是包含 JFFS2 文件系统的 U-Boot 映像。

Target File:   /vagrant/rootfs-3531dv100
MD5 Checksum:  18a010179a1e5ae03c260ccc9609ddbc
Signatures:    404

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             uImage header, header size: 64 bytes, header CRC: 0xCB1642A1, created: 2019-09-26 01:53:07, image size: 9761796 bytes, Data Address: 0x0, Entry Point: 0x0, data CRC: 0x35F26A52, OS: Linux, CPU: ARM, image type: Filesystem Image, compression type: none, image name: "hirootfs"
64            0x40            JFFS2 filesystem, little endian

答案1

我是否可以生成一个新的密码哈希来替换 /etc/passwd,取消注释 telnetd 行,然后通过网络通过 telnet 使用新密码以 root 身份登录?

或许!这取决于供应商可能还做了什么,也可能没有做什么。一般来说,事情可能就是这么简单......如果您可以捕获、安装和编辑固件映像,重新刷新它,并且固件映像必须匹配的其他地方没有校验和或签名。

由于您没有指定DVR的品牌和型号,因此无法给出确定的答案。但原则上,你的想法似乎是合理的。

没有/etc/shadow文件,但有一个/etc/passwd-我以前没见过的文件。

/etc/passwd-通常是文件的备份/etc/passwd,由标准命令创建,如passwd, useradd//等。命名用户/组文件备份的约定(, ,后面还有和),这只是“古老的 Unix 历史”userdel之一事情:在某个时候,公约成立了,在那之后,继续遵循相同的做法比在没有令人信服的理由的情况下改变它更容易、更兼容。usermod/etc/passwd/etc/group/etc/shadow/etc/gshadow

相关内容