海康威视摄像头固件逆向工程

逆向工程 拆卸
2021-07-02 12:48:07

我有一台带有海康威视固件的相机。固件文件中有明文,例如,您可以在其中看到一个 shell 脚本,当我进入 Tellnet 时,该脚本与 shell 脚本重合。有 gzip tarball,但没关系,这就是它们在相机在启动时解压。

我尝试了 binwalk,但提出了很多东西,如果有效,则没有。我需要做的是映射文件中的内容,分解各个部分,编辑我想要的内容,然后重新组装并运行固件更新。

这些文件似乎在 UBIFS 文件系统中。我可以从相机中复制文件,但试图弄清楚如何复制固件文件中的内容。我可以将示例固件文件发送给可以提供帮助的任何人。

2个回答

查看 hikvision.com/en/us/download.asp 页面中的第一个文件。

它似乎只是一个 linux 内核,后面跟着几个 gzipped 文件,全部串联起来。

我以 DS-96128&256_Super_NVR_USA_Firmware_v3.0.2_141125 为例,可以使用以下方法进行拆分:

dd if=digicap.dav bs=1 skip=$[0x00390790] | gzip -dc   > minixdsk.bin
mkdir dsk1 dsk2 dsk3
dd if=digicap.dav bs=1 skip=$[0x00639080] | gzip -dc   | tar tf - -C dsk1
dd if=digicap.dav bs=1 skip=$[0x00B397D7] count=603  of=initscript.sh
dd if=digicap.dav bs=1 skip=$[0x00b39a32] | gzip -dc   | tar xf - -C dsk2
dd if=digicap.dav bs=1 skip=$[0x01585324] | gzip -dc   | tar xf - -C dsk3
dd if=digicap.dav bs=1 skip=$[0x017E1F31] count=6966 of=1.bmp
dd if=digicap.dav bs=1 skip=$[0x017e3a67] count=6966 of=2.bmp
dd if=digicap.dav bs=1 skip=$[0x017E559D]  of=rest.bin

您可以通过查看 hexdump 并搜索 gzip 标头字节来找到偏移量: 1f 8b 08 00

您还可以在至少某些 HIKVISION 设备处于活动状态时以 root 身份直接登录它们。我只在 DS-2CD2512F-IS 上尝试过,但是如果您通过 Web 界面启用 ssh,那么您可以以适当的用户(通常是管理员)的身份直接通过 ssh 连接到设备的 IP。通常,这会给你一个受保护的 shell,其中的命令非常有限。但是,ssh 将采用命令参数,而 DS-2CD2512F-IS(至少)将采用 /bin/bash 作为命令 - 这使您可以完全访问。这会让你做一些有趣的事情,比如获取完整的文件列表、修改...几乎任何东西、安装自定义程序、修改底层 asp 和 javascript 文件、读取硬件信息等等,而无需处理自定义固件.

所以像:

ssh admin@[摄像机IP] '/bin/bash'

创造奇迹。