CCTVシステム用に購入した安価なDVRへのrootアクセス権を取得しようとしています。メーカーからダウンロードできるファームウェアアップデートイメージがあります。 というツールを使って確認でき、binwalk
rootfsを抽出しました。 Busyboxを含むLinuxのようです。
ファイルを見ると、パスワードハッシュとログインシェルを定義する行が/etc/passwd
あります。ファイルroot
はありませんでしたが、以前見たことのない/etc/shadow
ファイルがありました。/etc/passwd-
また、一般的に起動するinitスクリプトも見つかりましたtelnetd
が、コメントアウトされました。
で置き換える新しいパスワードハッシュを作成し、/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などの/etc/passwd
標準コマンドで生成されたファイルのバックアップです。ユーザー/グループファイルのバックアップに名前を付けるための規則(、、後ろ、および)は、「古いUnix履歴」の1つにすぎません。ある時点でルールが確立され、その後も同じ慣行が継続的に順守されました。変更がなければ、説得力のある理由がなくても、より簡単で互換性があります。passwd
useradd
userdel
usermod
/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow