Привет, Хабр!

Достался мне бесплатно вот такой аппарат под названием Интеркросс ICxETH5670NE 2013-го года выпуска в родной коробке с проводами и инструкциями и даже в защитной плёнке.

Интеркросс ICxETH5670NE в родной коробке
Интеркросс ICxETH5670NE в родной коробке

Захотелось прошить на него какую‑нибудь альтернативную прошивку. Сразу была найдена тема на форуме 4PDA по данной модели, но никаких прошивок кроме самых ранних там не было. Роутер рабочий, но производитель не очень то заботился о его поддержке, выпуске новых прошивок и закрытию уязвимостей. По сообщениям на том же форуме, соседи обладателей данного аппарата легко ломают его через уязвимость в WPS, а отключить WPS нельзя, так как такой настройки нет.

Прошивка

Решено было выяснить, что же за платформа внутри, а потом уже найти аналог и попробовать прошить прошивкой от него. Аккуратно отклеиваем резиновые ножки и откручиваем болтики под ними. По сторонам ещё некие защелки, будьте аккуратны. Разобрав роутер видим плату AP699E9N.9U31H-4 REV:1.0

Интеркросс ICxETH5670NE внутри
Интеркросс ICxETH5670NE внутри

По номеру платы сразу нашлись два роутера Asus RT‑N12LX и Asus RT‑N12E. И вроде бы они почти одинаковые и различаются только тем, что на RT‑N12E антенны съемные, а на RT‑N12XL нет, так же как на этом ICxETH5670NE.

Asus RT-N12LX внутри
Asus RT‑N12LX внутри

Самая свежая версия прошивки для Asus RT‑N12LX это 2.0.0.39 от 2017-го года. Но вот только она в.trx, а через web‑интерфейс наш роутер пока принимает прошивки только в.img виде. Для восстановления прошивок на роутерах Asus серии RT‑N12 (и не только) можно использовать утилиту ASUS Firmware Restoration, вот только нужно перевести роутер в режим восстановления, а на роутере от Интеркросс у меня этого сделать так и не получилось.

Поскольку роутер и так разобран, чип с прошивкой расположен так, что к нему легко подключиться прищепкой и есть под рукой программатор CH341A решено было прошить напрямую. Осталось дело за малым, найти fullflash dump от Asus RT‑N12LX. И в открытом доступе я его на тот момент не нашел, а нашелся dump от Asus RT‑N12E, который вроде бы такой же. Ровно ставим прищепку, чтобы все контакты были на своих местах. Подключаем программатор. Несмотря на то, что питание роутера отключено, с USB через прищепку на чип подаётся питание и это видно по светящемуся светодиоду.

Подключаем прищепку программатора CH341A
Подключаем прищепку программатора CH341A

Прошивать будем программой AsProgrammer, в которой нам нужно выбрать наш программатор CH341A и микросхему которую будем шить, в данном случае это WINBOND W25Q32FV.

AsProgrammer с выбранной микросхемой W25Q32FV
AsProgrammer с выбранной микросхемой W25Q32FV

Пробуем прочитать. Если всё правильно, то считается текущая прошивка нашего роутера, которую лучше сохранить, например как backup.bin.

Читаем содержимое
Читаем содержимое

После чего стираем содержимое flash по кнопке с красным крестиком. Затем проверяем на чистоту. После чего загружаем RT‑N12E_2.0.0.39.bin (можно загружать сразу от версии LX, но у меня тогда такой прошивки не было). Прошиваем. И сверяем содержимое.

Сверяем содержимое
Сверяем содержимое

Отключаем программатор и включаем роутер. Заходим по http://192.168.1.1 с логином и паролем admin и видим, что наш роутер превратился в Asus RT‑N12E.

Asus RT-N12E
Asus RT‑N12E

Наверное можно было бы пользоваться и так, но что если теперь через web‑интерфейс удастся зашить прошивку от RT‑N12XL в формате.trx? Пробуем зашить RT‑N12LX_2.0.0.39.trx и да, она спокойно начала прошиваться.

Перепрошивка Asus RT-N12E в RT-N12LX
Перепрошивка Asus RT‑N12E в RT‑N12LX

После перезагрузки у нас уже Asus RT‑N12LX.

Asus RT-N12LX
Asus RT‑N12LX

Снял программатором dump уже как RT‑N12LX, теперь можно зашивать сразу его, без последующей перепрошивки через web‑интерфейс. Хотя через web‑интерфейс без проблем шьется, что из E в LX, что из LX в E версию. Настройки даже сохраняются, хотя их лучше сбрасывать.

Теперь есть возможность отключить WPS, да и в целом уязвимостей вроде бы побольше закрыто. Казалось бы можно радоваться, но вот только к интернету роутер не подключается.

Настройка даты и времени

Я даже сначала не понял в чём дело, перебирал настройки, сбрасывал на стандартные, пока не увидел в журнале, что на роутере сейчас 2017-й год.

Нужно выставить правильное время, но как это сделать? Дело в том, что всё что есть по настройке времени это NTP сервер и часовой пояс.

Все настройки времени, которые есть
Все настройки времени, которые есть

Задать время вручную просто негде. В интернете не мало вопросов по тому как настроить время на этом и аналогичных ему роутерах Asus, но все ответы и инструкции сводятся к тому, что задайте часовой пояс и NTP‑сервер, подключитесь к интернету и время синхронизируется. т. е. к интернету роутер не подключается потому как время неправильное, а чтобы его выставить нужно подключиться к интернету.

Я пробовал подключать через LAN порт этот роутер к другому, на котором есть интернет, в том числе и в режиме AP, думая может так он синхронизируется. Менял NTP‑серверы в таком виде на другие. Но тщетно.

Далее логично напрашивается вариант подключиться по telnet или SSH и задать время командой, но постучавшись в роутер по 22 и 23 портам ответа не получил. В web‑интерфейсе нигде нет включения telnet, но оказываться его можно включить введя в адресной строке следующее:

http://192.168.1.1/telnetd.cgi?enable=1

После чего можно подключаться и задавать время командой вида:

date -s "091713582024"

где 09 — месяц, 17 — день, 1358 — время, 2024 — год.

Перезагружаем роутер. На карте сети появляется наконец значок обозначающий, что к интернету мы подключены, но роутер интернет не раздаёт почему‑то. Сбрасываем настройки на значения по умолчанию, за время переживать не стоит, оно не сбросится. После этого появляется меню быстрой настройки, по которому лучше пройтись до конца, даже несмотря на то, что настройки предлагаются не оптимальные, потом можно настроить тот же Wi‑Fi на WPA2 и AES вместо WPA с TKIP, отключить WPS и прочее. На этом всё. Теперь всё должно работать.

Вместо заключения

Заметка написана просто потому, что «дело было вечером и делать было нечего», а старая железка была под рукой и хотелось что‑то с ней сделать. В результате у обладателей данного роутера появилась чуть более свежая и чуть более безопасная альтернатива стоковой прошивке. Хотелось бы конечно что‑нибудь вроде LEDE/OpenWrt, но к сожалению чип Realtek RTL8196C не поддерживается. Так же владельцы похожих роутеров Asus со сбившимися часами теперь знают, что делать. Понятное дело, что роутер старый, бюджетный и в современных условиях ничего из себя не представляющий, но может сгодиться как запасной временный вариант.

Комментарии (12)


  1. sparhawk
    20.09.2024 09:20

    А можно не программатором, а через TFTP залить прошивку? Как понимаю, во всех роутерах есть базовые загрузчики, которые позволяют обновить прошивку по сети через TFTP со статическим адресом (а некоторые и через HTTP умеют!)


    1. dlinyj
      20.09.2024 09:20
      +4

      У кого чего было под рукой, то тем и обновил. Иной раз, если программатор под рукой, это проще и быстрее чем TFTP настраивать.


      1. Ivan_V_V Автор
        20.09.2024 09:20
        +4

        Программатор действительно был под рукой в ящике стола, AsProgrammer уже был на ПК, а роутер лежал уже разобранный, так что да вы правы.


    1. Ivan_V_V Автор
      20.09.2024 09:20
      +2

      Я пробовал через Tftpd64, реакции было 0. Возможно файл с прошивкой нужно называть особым образом или ещё что, но у меня этот способ не заработал.


      1. lex899
        20.09.2024 09:20

        У нас на аналогичном железе tftp работает только когда плата в режиме восстановления (ping ttl 100), при этом ip компа должен быть 192.168.1.10 что для tftp что для firmware restoration. Хотя на старых ревизиях можно было поймать загрузчик через web/tftp в начале загрузки.


        1. Ivan_V_V Автор
          20.09.2024 09:20

          Вот только каким образом перевести его в режим восстановления не понятно. Если по аналогии с Asus, то это включние с зажатой кнопкой Reset до момента пока светодиод питания не начнёт мигать. Вот только у меня этого сделать так и не получилось. Причём даже будучи прошитым в Asus этого сделать не получается. Да поведение отличается от включения без зажатой кнопки, но на этом всё.


          1. lex899
            20.09.2024 09:20

            Включение с зажатой, все верно. Вот только индикация светодиодом не на каждой версии платы и не в каждой прошивке. Я запускал ping до дефолтного ip адреса роутера, если в ответах ttl 64 - загружена основная прошивка, ttl 100 - режим восстановления.


            1. Ivan_V_V Автор
              20.09.2024 09:20

              Если просто загрузиться, то да ttl=64. Если же загрузиться с зажатой кнопкой Reset, то роутер переходит в какой-то режим, где он вообще не пингуется, даже если ttl=100 выставить через ping -i 100 192.168.1.1. Причём будучи прошитым в Asus в этом режиме, через их фирменную утилиту Firmware Restoration он находится и утилита отправляет на него прошивку, а вот будучи прошитым в Интеркросс, утилита его не находит.


      1. tklim
        20.09.2024 09:20
        +2

        Комп или роутер с Wireshark или tcpdump, там будет видно с какого адреса на какой он ломится(может быть разное в настройках загрузчика). Дальше настроить сеть, включить tftpd и смотреть что он хочет скачать.


        1. Ivan_V_V Автор
          20.09.2024 09:20

          Если судить по Who has 192.168.1.73? Tell 192.168.1.1 то может и на 73-й, а может и на 75-й, иногда на 1, а вообще перебирает чуть ли ни весь пул. Чаще всего Tell не говорит. Пробовал по всякому, но на tftp он судя по всему лезть даже не пытается.


  1. Ambiphonic
    20.09.2024 09:20
    +1

    Можно было еще установить NTP сервер на клиенте и указать его на роутере


    1. Ivan_V_V Автор
      20.09.2024 09:20

      Я цеплял его клиентом к другому роутеру, подключенному к интернету и время он синхронизировать не смог, возможно из-за слишком большой разницы в годы. Как по мне включить telnet одним запросом и задать время одной командой куда проще.