CCTV 시스템용으로 구입한 저렴한 DVR에 대한 루트 액세스 권한을 얻으려고 합니다. 제조업체에서 다운로드할 수 있는 펌웨어 업데이트 이미지를 가지고 있는데, 라는 도구를 사용하여 확인할 수 있었고 binwalk
rootfs를 추출했습니다. 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 역사" 중 하나일 뿐입니다 . 어느 시점에서 규칙이 확립되었고 그 후에도 동일한 관행이 계속해서 더 잘 준수되었습니다. 변경이 없으면 설득력 있는 이유 없이도 더 쉽고 호환 가능합니다.passwd
useradd
userdel
usermod
/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow