펌웨어 이미지에서 /etc/passwd를 편집할 수 있습니까?

펌웨어 이미지에서 /etc/passwd를 편집할 수 있습니까?

CCTV 시스템용으로 구입한 저렴한 DVR에 대한 루트 액세스 권한을 얻으려고 합니다. 제조업체에서 다운로드할 수 있는 펌웨어 업데이트 이미지를 가지고 있는데, 라는 도구를 사용하여 확인할 수 있었고 binwalkrootfs를 추출했습니다. Busybox가 포함된 Linux처럼 보입니다.

파일을 보니 비밀번호 해시와 로그인 셸을 정의하는 /etc/passwd줄이 있습니다 . 파일 root은 없었지만 이전에 본 적이 없는 /etc/shadow파일이 있었습니다 ./etc/passwd-

또한 일반적으로 시작되는 init 스크립트도 찾았 telnetd지만 주석 처리되었습니다.

에서 대체할 새 비밀번호 해시를 생성하고 /etc/passwd해당 telnetd줄의 주석 처리를 제거한 다음 네트워크를 통해 텔넷을 통해 새 비밀번호를 사용하여 루트로 로그인할 수 있습니까?

(물론 이것은 새 펌웨어를 장치에 플래시하고 벽돌로 만들 때 발생할 수 있는 문제를 무시합니다)

편집하다:

이것은 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 행의 주석 처리를 제거한 다음 네트워크를 통해 텔넷을 통해 새 비밀번호를 사용하여 루트로 로그인할 수 있습니까?

아마도! 이는 공급업체가 수행한 작업 또는 수행하지 않은 작업에 따라 다릅니다. 일반적으로 말하면 그렇게 간단할 수도 있습니다.만약에펌웨어 이미지를 캡처, 설치 및 편집하고 다시 플래시할 수 있으며, 펌웨어 이미지와 일치해야 하는 다른 곳에서는 체크섬이나 서명이 없습니다.

DVR의 제조사와 모델을 명시하지 않으셨기 때문에 명확한 답변을 드릴 수 없습니다. 하지만 원칙적으로는 당신의 생각이 타당해 보입니다.

파일 은 없었지만 이전에 본 적이 없는 /etc/shadow파일이 있었습니다 ./etc/passwd-

/etc/passwd-일반적으로 //etc 와 /etc/passwd같은 표준 명령으로 생성된 파일의 백업입니다 . 사용자/그룹 파일 백업의 이름을 지정하는 규칙(, , 뒤에 및 )은 "오래된 Unix 역사" 중 하나일 뿐입니다 . 어느 시점에서 규칙이 확립되었고 그 후에도 동일한 관행이 계속해서 더 잘 준수되었습니다. 변경이 없으면 설득력 있는 이유 없이도 더 쉽고 호환 가능합니다.passwduseradduserdelusermod/etc/passwd/etc/group/etc/shadow/etc/gshadow

관련 정보