Привет, Хабр!
Достался мне бесплатно вот такой аппарат под названием Интеркросс ICxETH5670NE 2013-го года выпуска в родной коробке с проводами и инструкциями и даже в защитной плёнке.
Захотелось прошить на него какую‑нибудь альтернативную прошивку. Сразу была найдена тема на форуме 4PDA по данной модели, но никаких прошивок кроме самых ранних там не было. Роутер рабочий, но производитель не очень то заботился о его поддержке, выпуске новых прошивок и закрытию уязвимостей. По сообщениям на том же форуме, соседи обладателей данного аппарата легко ломают его через уязвимость в WPS, а отключить WPS нельзя, так как такой настройки нет.
Прошивка
Решено было выяснить, что же за платформа внутри, а потом уже найти аналог и попробовать прошить прошивкой от него. Аккуратно отклеиваем резиновые ножки и откручиваем болтики под ними. По сторонам ещё некие защелки, будьте аккуратны. Разобрав роутер видим плату AP699E9N.9U31H-4 REV:1.0
По номеру платы сразу нашлись два роутера Asus RT‑N12LX и Asus RT‑N12E. И вроде бы они почти одинаковые и различаются только тем, что на RT‑N12E антенны съемные, а на RT‑N12XL нет, так же как на этом ICxETH5670NE.
Самая свежая версия прошивки для 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 через прищепку на чип подаётся питание и это видно по светящемуся светодиоду.
Прошивать будем программой AsProgrammer, в которой нам нужно выбрать наш программатор CH341A и микросхему которую будем шить, в данном случае это WINBOND W25Q32FV.
Пробуем прочитать. Если всё правильно, то считается текущая прошивка нашего роутера, которую лучше сохранить, например как backup.bin.
После чего стираем содержимое flash по кнопке с красным крестиком. Затем проверяем на чистоту. После чего загружаем RT‑N12E_2.0.0.39.bin (можно загружать сразу от версии LX, но у меня тогда такой прошивки не было). Прошиваем. И сверяем содержимое.
Отключаем программатор и включаем роутер. Заходим по http://192.168.1.1 с логином и паролем admin и видим, что наш роутер превратился в Asus RT‑N12E.
Наверное можно было бы пользоваться и так, но что если теперь через web‑интерфейс удастся зашить прошивку от RT‑N12XL в формате.trx? Пробуем зашить RT‑N12LX_2.0.0.39.trx и да, она спокойно начала прошиваться.
После перезагрузки у нас уже 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)
Ambiphonic
20.09.2024 09:20+1Можно было еще установить NTP сервер на клиенте и указать его на роутере
Ivan_V_V Автор
20.09.2024 09:20Я цеплял его клиентом к другому роутеру, подключенному к интернету и время он синхронизировать не смог, возможно из-за слишком большой разницы в годы. Как по мне включить telnet одним запросом и задать время одной командой куда проще.
sparhawk
А можно не программатором, а через TFTP залить прошивку? Как понимаю, во всех роутерах есть базовые загрузчики, которые позволяют обновить прошивку по сети через TFTP со статическим адресом (а некоторые и через HTTP умеют!)
dlinyj
У кого чего было под рукой, то тем и обновил. Иной раз, если программатор под рукой, это проще и быстрее чем TFTP настраивать.
Ivan_V_V Автор
Программатор действительно был под рукой в ящике стола, AsProgrammer уже был на ПК, а роутер лежал уже разобранный, так что да вы правы.
Ivan_V_V Автор
Я пробовал через Tftpd64, реакции было 0. Возможно файл с прошивкой нужно называть особым образом или ещё что, но у меня этот способ не заработал.
lex899
У нас на аналогичном железе tftp работает только когда плата в режиме восстановления (ping ttl 100), при этом ip компа должен быть 192.168.1.10 что для tftp что для firmware restoration. Хотя на старых ревизиях можно было поймать загрузчик через web/tftp в начале загрузки.
Ivan_V_V Автор
Вот только каким образом перевести его в режим восстановления не понятно. Если по аналогии с Asus, то это включние с зажатой кнопкой Reset до момента пока светодиод питания не начнёт мигать. Вот только у меня этого сделать так и не получилось. Причём даже будучи прошитым в Asus этого сделать не получается. Да поведение отличается от включения без зажатой кнопки, но на этом всё.
lex899
Включение с зажатой, все верно. Вот только индикация светодиодом не на каждой версии платы и не в каждой прошивке. Я запускал ping до дефолтного ip адреса роутера, если в ответах ttl 64 - загружена основная прошивка, ttl 100 - режим восстановления.
Ivan_V_V Автор
Если просто загрузиться, то да ttl=64. Если же загрузиться с зажатой кнопкой Reset, то роутер переходит в какой-то режим, где он вообще не пингуется, даже если ttl=100 выставить через ping -i 100 192.168.1.1. Причём будучи прошитым в Asus в этом режиме, через их фирменную утилиту Firmware Restoration он находится и утилита отправляет на него прошивку, а вот будучи прошитым в Интеркросс, утилита его не находит.
tklim
Комп или роутер с Wireshark или tcpdump, там будет видно с какого адреса на какой он ломится(может быть разное в настройках загрузчика). Дальше настроить сеть, включить tftpd и смотреть что он хочет скачать.
Ivan_V_V Автор
Если судить по
Who has 192.168.1.73? Tell 192.168.1.1
то может и на 73-й, а может и на 75-й, иногда на 1, а вообще перебирает чуть ли ни весь пул. Чаще всего Tell не говорит. Пробовал по всякому, но на tftp он судя по всему лезть даже не пытается.