Получение root на китайской IP камере V380

Приобрёл IP камеру V380E, плата MVR3313S-A4-V3.8. Подключиться через telnet не удалось, т.к. пароль на рута найти не вышло. Распаял UART и подключился к консоли

screen /dev/ttyUSB0 115200


Так я получил адреса образов в памяти. Так же можно получить их утилитой binwalk.

Считал дамп из SPI flash программатором на CH341

341spi -r V380E.bin
Команды для flashrom:
flashrom -p ch341a_spi -r V380E.bin

Далее отделил образ squashfs

dd if=V380E.bin of=V380E-A.bin bs=1 count=1966080 skip=2490368

Распаковал ФС

unsquashfs V380E-A.bin

Сгенерированный хэш пароля сохранил в etc/shadow

mkpasswd -m sha-512 -S 12345678 -s <<< 1

Получится

root:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEmFNLlq6Ik9X3reMXY3doKEuxrcDohKUx0Oxf44aeTIxGEjssvtT1aKyZHjs.:10933:0:99999:7:::
bin:*:10933:0:99999:7:::
daemon:*:10933:0:99999:7:::
nobody:*:10933:0:99999:7:::

Упаковал обратно в squashfs образ

cd squashfs-root
mksquashfs . ../V380E-A.squashfs -comp xz -progress -Xbcj armthumb

Если указать иную архитектуру, будет ошибка

SQUASHFS error: Filesystem uses "unknown" compression. This is not supported
No filesystem could mount root, tried:  squashfs

Затем нужно переписать в дампе памяти образ

cd ..
dd status=progress if=V380E-A.squashfs of=V380E.bin seek=2490368 bs=1 conv=notrunc

И залить обратно в память, предварительно стерев на всякий случай память, а после прошивки проверить содержимое

341spi -e
341spi -w V380E.bin
341spi -r V380E.tmp
diff V380E.tmp V380E.bin
Команды для flashrom:
flashrom -p ch341a_spi -E
flashrom -p ch341a_spi -w V380E.bin
flashrom -p ch341a_spi -v V380E.bin

После загрузки можно войти в систему и удалить или заменить противные звуки, которые находятся в /mnt/mtd/mvsound, доступной для записи.

Слитый дамп до смены пароля.

Дамп с паролем «1» и удалёнными звуками.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *