Разбираем прошивку Beeline Smartbox

Приветствую, друзья.
Наверное, нет такого человека, который бы не слышал о компании Beeline и их одноименном интернете. Как и любой «серьезный» провайдер в билайне очень любят ставить брендированные роутеры.

Плюсы очевидны: простота настройки и эксплуатации, а также поддержки пользоваталей — железки одинаковые и возможные проблемы давным-давно известны. А кастрированные, заточенные под большинство, настройки не позволяют шаловливым рукам пользователя все поломать.
В данной статье рассматривется, один из самых популярных, распространенных и в целом, неплохой роутрер Beeline SmartBox.
Как и полагается в подобных случаях 🙂 , является OEM устройством. Правда это не типичные перекрашенные DLink’и, а экзотика от SERCOMM)
О разборке прошивки и интересных находках читайте ниже.

Немного об устройстве:

Beeline Smartbox - роутер от BeelineПо сути роутер это слегка модифицированный референс Realtek_RTL8197D.
Посмотреть подробнее о нем можно здесь или ниже
Бренд-нейм
Beeline SmartBox.
Чип: Realtek 8197D (600 мгц)
ОЗУ: 64 МБ
Wi-Fi: 802.11b/g/n 300Mbps, 2 внутренние антенны: 2×2 MIMO
Интерфейсы: 5 разъемов RJ-45 с автоопределением типа кабеля, USB 2.0 порт

Из софтовых фич: DLNA, FTP-сервер, SAMBA-сервер (подключение usb устройств как сетевого диска), что делает его интересным вариантом для создания простейшего домашнего медиацентра.
В целом устройство неплохое и работало у меня стабильно, выдавая тарифный максимум по Wi-Fi.

Однако мне как энтузиасту нехватало свободы, SSHа и возможности поковыряться внутри, а также возможности тонкой настройки. Именно поэтому я приступил к поиску альтернативных прошивок под «умную коробку» и вскоре понял, что их нет и в ближайшее время не будет…
Что же, ситуация неприятная, но не безвыходная.  🙂
Раз нет альтернативных нужно выжать максимум из стоковой, по возможности получив нормальную консольку и подняв привилегии до рута. А для этого нужно слить и распаковать стоковую прошивку.

Приступим:

Внимание. Cледующие пункты выполнены из-под Linux системы и я не гарантирую, что вы сможете все это повторить под Winоподобными OS.

При препарировании использовались: Debian Lenny, binwalk,squashfs-tools, немного смекалки и красноглазия.

1) Сливаю последнюю версию прошивки отсюда
wget http://static.beeline.ru/upload/images/help/devices/routers/SmartBox/SmartBox2019.zip
2) Распаковываю 7zip’ом, обнаруживаю img файл непонятного, на первый взгляд, содержания.
7z x SmartBox2019.zip
3) Запускаем binwalk передавая в качестве аргумента imgшник, на что тот бодро рапортует о Secommовских сигнатурах и даже говорит нам hardware id, но главное не в этом. Внутри мы обнаруживаем пережатый бинарь (bin-файл) , распаковываем архив и получаем

Вывод binwalk
binwalk

S1000_Smart_box_SERCOMM_BEELINE_2019.bin что лишний раз подчеркивает SERCOMMовское происхождение девайса 🙂

4) Вот он бинарь, казалось бы, счастье рядом. Но не тут то было.
Сам по себе бинарный файл не дает никакой понятной человеку информации (бинарный же, кэп).

И вот здесь начинается самый анал-карнавал:
Повторно натравливаем binwalk на него и среди сигнатур, загрузчика и мусора обнаруживаем squashfsофский образ (Кратко: Read-only файловая система, широко используемая при сжатии образов загрузки *nix).
binwalk2
Cчастье близко, думал я. Осталось только распаковать…

Сливаем из репозитория squashfs-tools содержащий все необходимое для распаковки и предвкушая… Обламываюсь, unsquashfs говорит

Что означает, файл коварнейшим образом пожат lzma и он его распаковать не может.
Хмм, лезу на Github за последней версией squashfs-tools, собираю из исходников и… Опять обламываюсь.
Почесав репу и прочесав makefile я замечаю, что поддержка lzma отключена по умолчанию. Меняю параметр и… обращаю внимание на комментарий, что для для LZMA требуется LZMA SDK.

Опять же стягиваем архив, распаковываем и прописываем путь. Пересобираем squashfs-tools( ./configure && make ) и… благополучно распаковываем образ прошивки. Ура.

Внутри обнаружена учетная запись супер-администратора, позволяющая делать с устройством много всего интересного.
Например, использовать честно купленый роутер билайн с любым провайдером

Разбираем прошивку Beeline Smartbox: 58 комментариев

  1. Спасибо статья очень занимательная ждем продолжения.
    только сразу возникло несколько вопросов:
    1. какой squashfs‘офский образ вы просматривали со смешением 1376256 или 5570560
    2. зачем в прошивке 2 squashfs‘офских образа (но это скорее к разработчику данной прошивки) но если можете объясните
    3 самое смешное похоже данная прошивка сделана из прошивки МТС (точнее МГТС) из устройства RFT620 билайновцы совсем обленились даже не удалили название устройства в файле device_info_cfg

    1. Спасибо за комментарий.
      Прошивку разбирал давно, поэтому не припомню по какому смещению брал образ. Если мне не изменяет память, то 5570560.
      Вы верно отметили, что прошивка состоит из двух образов.
      Точное их назначение, мне неизвестно, однако наиболее вероятно, что это прошивка для режима роутер и репитер(на корпусе аппаратный переключатель, который, предположительно выбирает какой образ грузить). В ближайшем времени исследую этот момент тщательнее.

      По поводу «происхождения» роутера согласен.
      В прошивке обнаружено несколько файлов в которых упоминаются разные модели разные производителей.
      Также обратил внимания, что device_info_cfg описан вообще МГТСовский GPONовский роутер :).
      Вообще прошивка не блещет чистотой.
      Внутри прошивки вообще много любопытных фишек, однако я не стал в статье упоминать их, предполагая, что читателям это без интереса. Однако вы приятно удивили меня интересом к теме.

      Надеюсь, мои изыскания подтолкнут кого-то к созданию альтернативной версии.

      P.S Кстати, в настройках учетных записей можно включить telnet и ssh, что позволяет смотреть и править конфиги непосредственно на живом устройстве.
      P.S.S Если еще есть OEMные устройства с анальными ограничениями — пишите, постараюсь расковырять. Для меня это дело принципа

      1. Вы мне очень помогли, но я начинающий красноглазый так что не совсем понял как Вы это сделали) если можно — в лс по подробнее) я хочу сделать расширенную прошивку (просто в том месте изменить лог/пароль на стандартный и свернуть обратно в .bin

        1. Приветствую.
          Инструкция по разбоке прошивки лежит на моем блоге. Все подробно расписано.
          Собрать прошивку обратно несколько сложнее, однако возможно. Если найдутся те, кому это интересно — напишу статью.
          Для замены логина-пароль учетной записи перепрошивать роутер вовсе не нужно, достаточно «перейти во вкладку «Другие»-«Контроль доступа», и там сделать себе новую учётку или же вовсе исправить имеющиеся на свой лад» (как это и советовал Тимон)

  2. Кстати, можно отключить TR-069, позволяющий Билайну удаленное менять настройки на вашем роутере.
    Мне не нравится такой бэкдор, хоть и понимаю его пользу для тех. поддержки и домохозяек.

    1. Что конкретно не получается? И что вы хотите получить?
      Что вы имеете в виду под «прошитым» файлом? Никакой модификации с моей стороны не было, а следовательно «прошитого» файла нет.

  3. Не знаю вы обратили внимания или как но по описанию на development board rtl8197d-11ac который является отправной точкой для роутеров на чипе rtl8197D указано что данный чип поддерживает 2 USB порта 1 USB_2.0_host и 1 USB_2.0_host_or_Device также в чипе присутствует PCI Express (к стати тоже поддерживает 2 master device) на котором сидит WiFi модуль.
    Разработчики данной платы просто обрезали пользователям дополнительный USB который с помощью напильника и такой то матери можно подцепить самому))
    Так о чем я то есть получается что устройство в принципе очень интересное и как роутер так и для интеграции в свои поделки поэтому прошивку надо копать.
    Ради интереса и посмотрел другие роутеры собранные на этом железе это Belkin F9K1102 v2
    (прошивка тоже SERCOMM правда там 2 разделами squashfs совсем не пахнет) и Edimax BR-6479Gn(эту еще не анализировал)
    Eще из плюсов у обоих что у белкина что у едимакса выкладываются исходники
    И еще если надо также достал SDK REALTEK development board rtl8197d-11ac
    И еще J22 на плате очень похож на UART но я пока не пробывал только сегодня из командировки приехал)

    1. Приветствую. Да, этот роутер — кастрированное референс-исполнение rtl8197d-11ac. Второй USB можно подцепить, и он скорее всего даже заведется. А вот надо ли? 🙂
      Я, честно говоря, даже первым не пользуюсь.
      Более интересный вариант, это запилить на него какую-нибудь популярную альтернативную прошивку, вроде ddwrt или tomato. Хотя, несмотря на некоторую кривизну стоковой прошивки, я не уверен, что получится выжать из этого железа сильно больше.

      По поводу остальных устройств на этом же железе отличная информация. Возможно получится завести «кастомную» прошивку на билайне.

      P.S Смотрю, у вас есть интерес к данной теме. Подумайте о том, чтобы развивать ее. Я со своей стороны готов вам учетку выделить, чтобы мысли не терялись в потоке комментариев.
      P.S.S В моем случае была задача снять ограничение на работу только в сетях Билайн. Хотя я не против в свободное время поковырять.

  4. Вопрос — а как поменять дефолтные настройки DHCP сервера
    чтобы он шлюз и днс раздавал те которые нужны )

    1. В админке есть пункт позволяющий настроить DNS, есть также настройки WAN.
      К сожалению более подробно ответить на вопрос не могу — роутера нет под рукой.

      1. Спс, буду копать в этом направлении…
        Хочу сказать спасибо за статью по разбору прошивки.
        Не мог ли бы ты написать мануал по обратному сбору прошивки?
        А то я не могу понять как обратно ее собрать.

        1. Постараюсь в выходные выделить время на это. Сложность в том, что я до роутара добираюсь только в конце недели 🙂

          1. Приветствую. В настройках учетных записей есть соответствующая галка.
            🙂

    1. В чем были проблемы? У меня вчера был переезд к другому хостеру, так что кое-где могли вылезти баги.

  5. Точнее не мог))
    Работы много навалилось не мог отписаться да и разборка с моей стороны была слегка заморожена
    Тrustbiz спасибо за предложение учетки но времени но времени на ее поддержание нет и вряд ли будет но я надеюсь может ты потом просто оформишь в статью то что нароем)

    И так к сути дела
    1. Предположение что J22 является UART полностью подтвердилось причем там UART с уровнями LVTTL (те напряжение от 0 до 3.3V)
    2. Распиновка UART следующая 1-GND, 2-Tx, 3-VCC, 4-Rx для работы с UART лучше использовать Putty (настройки в инете много статей)
    3. Ну и наверное самое главное на данного зверька удалось с помощью UART(надо дать комманду) установить OpenWRT

    В течении следующей недели постараюсь отработать прошивку и тогда передам прошивку с инструкцией и кто захочет SDK(хотя его я нашел на форуме openWRT) но еще раз повторюсь пока прошивка будет возможна только с использованием кабеля UART

    PS
    К стати так же удалось найти и распаять 2-ой USB порт поэтому на роутере теперь 2 USB (для меня принципиально в 1 USB-модем в другой внешний HDD)
    Если надо будет то могу указать и где находятся 2 ой USB но паять его до жути сложно очень маленький шаг пинов на проце(

    1. Отличные новости, Максим. Как говориться — редко но метко. (как раз та самая ситуация, когда комментарии к статье полезнее самой статьи.)
      1 и 2) В принципе информация ожидаемая, но от этого не менее приятная. UART это хорошо — и посмотреть процесс загрузки можно (если вывод в консоль есть, а он обычно есть) и девайсы полубитые реанимировать. Да много для чего. Сам постараюсь в конце грядущей недели посмотреть.
      3) Самый интересный пункт. Отпишите, пожалуйста: какая версия ядра, ветка openwrt, функционал (что работает/не работает), производительность в целом. Уверен, народ будет ликовать 🙂 (хотя на мой взгляд и билайновская прошивка в сочетании с билайновской же сетью довольно неплохо работает)
      Ждем от вас фото переделки. Понятно, что пайка требует некоторого скилла и аккуратности, но я думаю, что люди которые будут это делать — знают на что идут

    2. Всем, доброго времени суток. Второй день пытаюсь настроить этот коробок в роли репитера, и не чего не получается…. Есть Wi-Fi модем YOTA , установлен на высоте 8-9 метров(для лучшего приема сети), естественно слабый сигнал по Wi-Fi сети. Очень нужно задействовать Smart-Box как репитер между ноутом и модемом. Пожалуйста подскажите как настроить. Кнопка переключения на коробке между режимами роутера и репитера ничего не дает, в самих настройках тоже не смог разобраться.
      Максим, если можешь пришли пожалуйста на почту » [email protected] » фотку разъяснением как подпаять второй USB. Хочу попробовать через него запустить этот модем. (может это будет проще, чем настроить его как репитер.)
      За раннее благодарен. С Ув. Роман

      1. Здравствуйте. Честно говоря я не помню, но наткнулся в даташите на SoC на эту информацию информация.

  6. версия ядра 3.10.32 SDK от наших друзей из поднебесной (типа все сделано в китае)) функционал как и во всем OpenWRT что хочешь то и компилишь на данный момент у меня небольшие проблемы с WiFi видимо что то не так собрал в прошивке (пока отваливается буду перекомпилировать по этому и написал что на неделе отработаю) оба USB работают нормально, самба, DLNA, торрент тоже поднялись без проблем поддержку LTE и 3-G модемов еще не проверял занимался распайкой)
    SDK взял ПОСТ 108 https://forum.openwrt.org/viewtopic.php?id=46606&p=5
    Компилил под Ubuntu 14.04 x64 при этом пришлось ставить поддержку библиотек под х32 так как SDK видимо для 32 разрядной системы делалось

  7. к стати еще раз повторюсь UART для прошивке нужен обязательно через него произвожу остановку загрузки и запускаю TFTP сервер чтоб залить прошивку

  8. И вот еще что загрузчик видимо лежит не только на флешке но также похоже внутри контролера поэтому простая перезапись флешки ничего не даст

    И еще интересный факт в нутри флешки в чистом виде лежит S1000_Smart_box_SERCOMM_BEELINE_2019.bin
    Проверено мне пришлось собирать программатор SPI флеш думал слить на всякий пожарный флешку а когда слил обнаружил что слитый дамп флешки полностью совпадает с S1000_Smart_box_SERCOMM_BEELINE_2019.bin

    В качестве UART собрал кабель на FT232 чтобы он поддерживал режим LVTTL запитку микрухи необходимо выполнять по пункту 6.4 datasheet на ft232

  9. Уважаемые гуру!
    Посоветуте!
    Провайдер, зараза, предлагает подключиться только по PPTP. Тут проскакивало, что вроде как под суперюзером это можно настроить.
    Прошивку на 25 версию поменял, Суперюзером в нее вошел. Но варианта туннеля PPTP не нашел! Только PPPoE!
    Подскажите, как настроить?

    1. Приветствую. На данный момент на официальной прошивке штатной возможности работы с PPTP не , несмотря на то, что судя по всему всё необходимое для этогов ней есть.
      Сейчас идет работа над альтернативной прошивкой openers для этого роутера, однако пока установка слишком сложна для простого пользователя. (Требуется подпайка к UART). В это эй прошивке PPTP работает

      На днях я нашел алгоритм подписи официальной прошивки, так что шансы что можно будет обойтись без этого.

      1. Уважаемый trustbiz!
        Увенчался ли успехом шанс подписи официальной прошивки?
        Очень нужно PPTP!

  10. Статья норм, подобное я сделал еще в 14м году зимой))) Правда не пойму, откуда вы пасс суперюзера в распакованной прошивке нашли??? Они там в соленых хешах же… Я их тоже нашел, но разхешировать невозможно. Там 3 веб интерфейса залито (билайн, ронтел, и гпон мгтс), доступ на которые ограничен файлом ACL-list (что уже наводит на неприятные думки в отношении серкома), далее, есть там и файл kernel_konfig, в котором железо роутера кастрировано в половину (что тоже не понятно зачем). Ну и много еще косяков найдено было. А суперюзера я получил оч просто, используя девелоперскую панель мозилы, поменяв в джава коде страницы mgt_user.htm (вроде) все хайды на инлайны и все)))) Про все это писал уже на ixbt.

    1. Видимо вы где-то не там смотрели.
      Пароль хранится в открытом виде. Перечитайте мои статьи внимательно, я всё подробно расписал. Вы правильно описываете структуру прошивки, однако никаких «урезаний» мною не было замечено (хотя не искал их целенаправленно.
      Способ получения «суперпользователя» через замену страницы хоть и рабочий, но слегка костыльный как по мне.

  11. Хм… ну может пропустил пароль. Однако все файлы вроде вытащил. Ну ладно, тогда было нужно просто сломать и я сломал))) А про урезания… просто посмотрите конфиг ядра, ну например:
    # Flash size 2M or 4M, default 2M
    #
    CONFIG_RTL_FLASH_SIZE=0x1000000
    хотя и больше как бы можно, там вроде 4 а не 1

  12. Молодец автор. Работа, конечно, проделана обширная.
    Люблю ковырятся в различных девайсах, прошивая в них то что не положено. Столько новых возможностей открывается в той же DDWRT на древнем DIR300 rev.A. Благодаря ей принимал инет на работе из дома по вайфаю (пол километра и узконаправленные антенны) и раздавал на 4 компа.

    Все так же интересует альтернативная прошивка или поддержка PPTP.

    1. Приветствую, Роман. У нас есть определенный прогресс — прошивка готова и даже залита в тестовое устройство.
      В данный момент проблема с модулем wi-fi. Как решим ее — напишу статью с инструкцией

      1. Ой как замечательно. Очень бы хотелось увидеть данную прошивку.
        Один из крупных провайдеров моего города вещает на PPTP, так же есть билайн и ростелеком. Если, благодаря вам, к ростелекому можно по PPoE подключится, то к к другому прову никак. А на авито можно этот, вполне неплохой и мощный роутер, купить в пределах от 300 до 1000р. В среднем 500р продают у нас, именно по причине залоченности под билайн.
        Так что очень жду включение PPTP. Да и если альтернативная прошивка, то, надеюсь, и дизайн вэбморды будет не Би 🙂

  13. Добрый день! Хотелось бы подроьной инструкции по установке ddwrt. Буду очень благодарен!

    1. DDWRT на данный момент нет и не предвидится, однако если мы поборем проблему с Wi-Fi то ближайшее время будет OpenWRT, который, на мой взгляд, ничем не хуже.

        1. Добрый день. Прошивку ставить через UART предварительно перепрошив загрузчик. Сегодня-завтра постараюсь мануал выложить

      1. Прошу прощения, можно ссылочку? В особенности интересует процедура перепрошивки бутлоадера

  14. Добренького Вам.
    пытаюсь ковырять dir-825D. тут тот-же rtl8197D висит. судя по всему юарт нашел на плате распайку. проблема вот в чем:
    пытаюсь к нему подвешаться из-под венды (Putty). сколько бы настройки скоростей и прочего не ковырял — не могу добиться нормального отображения, постоянно хлам какойто валит при включении. кодировок кучу перепробовал, скорости почти все перебрал, биты начал уже пробовать менять 6-7-8, стоповые по разному выставлять… итог = хлам на экране (даже флоуконтрол с контролем четности менять начал (изначально были отключены)). как мне подрубиться к консоли то? 🙂

  15. По неизвестным причинам роутер не смог получить IP-адрес в локальной сети «Билайн». Удебитесь в целостности интернет-кабеля, который провели к вам в квартиру наши монтажники, он не должен иметь видимых повреждение.
    Что бы исправить эту ошибку нажмите кнопку “Получить IP-адрес” и подождите пару минут, пока роутер пытается получить IP-адрес заново.
    В случае если ошибка сохраняется обратитесь в службу поддержки «Билайн
    Работал на ваших настройках 3 месяца и сейчас вот это показывает, новые настройки делал, перезагружал, обновы делал, разные прошивки, все равно

  16. через SuperUser я имею ввиду заходил и 3 месяц роутер работал, теперь не работает

  17. Ребят а подскажите можно ли данный девайс подружить с usb 4 g модемом, использую huawei 3272 h но хотелось бы его воткнуть в роутер и раздать и телефону и ноуту и телику

    1. Наши ряды поредели — народ переехал на более дешевые и функциональные альтернативы 🙂
      Остались истинные энтузиасты

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

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