Сообщение
ipb » 19 янв 2018, 22:56
Рисуя на досуги всевозможные logo для используемого регистратора вдруг и неожиданно вспомнил об этой теме. И с целью продолжения разговора по вариантам сохранения имеющегося на регистраторе firmware без выпаивания flash решил проверить очередной вариант, как бы совмещающий обе темы разом.
Вот, например, при имеющемся в моём распоряжении регистраторе (product type: DVR_HI3000D-S, Hardware : MBD6508E) я вдруг и неожиданно забыл пароль от telnet. Или я его вовсе не знал, или он на используемом регистраторе выключен, благодаря, например, предпринятому обновлению firmware, где этот факт (отключение telnet из автостартующих) общеизвестен.
Проверил как работает web-сервер на регистраторе. Не новость, но всё же - этот web-сервер работает уверенно и надёжно, но не на столько надёжно, на сколько бы хотелось.
Выбрать сведения из /etc/passwd , где данные по паролю root, или из /mnt/mtd/Config, где данные по учётным записям не получается. Ссылки вида http://" onclick="window.open(this.href);return false;<адрес>/../mtd/Config/Account<X> или http://" onclick="window.open(this.href);return false;<адрес>/../../etc/passwd не позволяют получить желаемое. Но я очень удивился, когда web-сервер с удовольствием обработал раздел logo.
Вот, например, на используемом мною регистраторе logo-файл в разделе logo (смонтированный по замыслу разработчика в каталог /mnt/logo) - это файл bmp_logo.bmp. И без всякой авторизации через web-сервер, не вводя никаких учёток, по ссылке http://" onclick="window.open(this.href);return false;<адрес_регистратора>/../logo/bmp_logo.bmp я спокойно выкачиваю этот файл. И разрешения/пермишены тут вовсе не при чём. Они для интересующих файлов везде 644 root:root. Только web-сервер в раздел logo "сходить" может, а в раздел /mtd - не желает. В общем, всё это должно иметь какое-то научное объяснение, но я пока этого объяснения не нашёл.
Это что-то тут производитель напутал в настройках сервера, наверное. Но факт есть. И благодаря этой странности, без всяких telnet-ов c отказом в регистрации на порту 9527, я так и могу слить firmware. С одной жертвой из этого firmware. И жертвой будет картинка (или картинки) в logo.
Собственно, мне надо было сначала научиться рисовать такие картинки, а потом жертвовать. Но если вы знаете имя файла в этом logo, а эти имена, как я понимаю, могут быть разные, то можно и не жертвовать. wget или curl в помощь. Сливаются без авторизации.
Опять же.. надо на каждой firmware проверять. Я не вообще говорю, а то, что получается на имеющемся у меня регистраторе.
Короче, не нашёл я более никчёмного раздела в регистраторе, чем этот logo. И даже если лежащую там картинку придётся потерять, то нарисовать всегда можно.
Предлагается сделать так.
1. Узнать разметку разделов на flash. Это можно сделать известными способами: посмотреть более свежую или более старую firmware для своего регистратора или законнектиться "с тыла", что называют здесь TTL, кажись. Разумеется, лучше посмотреть и там, и там, свериться.
2. Создать "обновление" раздела logo, куда добавить, например, каталог с символическими ссылками на mtdblock<X>. Для смеха: и на файлы /etc/passwd , и если хочется сохранить пароли других пользователей конфигурационные файлы из /mnt/mtd/Config. Сделать это "обновление" можно так же, что и для раздела web (с.м. выше). Но web - это всё же рабочая составляющая firmware. Не факт, что web из старых firmware или из новых такой же. А вот logo - это совершенно не жаль, и что там будет за картинка - до лампочки.
3. "Обновить" раздел logo сделанным обновлением и слить все эти mtdblock<X> через web по ссылке
http://" onclick="window.open(this.href);return false;<адрес регистратора>/../logo/<придуманный_вами_каталог>/<имя_символической_ссылки_на_интересующую_цель>
Проверил на своём регистраторе - это работает. Про другие ничего сказать не могу. Может, где и никакого раздела logo нет. ))