Моя борьба с Asus RT-N10E или как включить telnet на стоковой прошивке
Недавно обратились ко мне с просьбой помочь в настройке роутера Asus RT-N10E под нашего локального монополиста-провайдера.

Провайдер очень жадный и специально ставит TTL=1 в заголовках пакетов и использование роутера без изменения этого поля становится невозможным, поскольку пакеты с TTL=1 не проходят дальше роутера и отбрасываются.
Стандартное решение которым я пользовался это установка альтернативной прошивки на роутер и вписывание специальных правил в iptables.
Но в этот раз компания Asus подложила большую свинью – роутер Asus RT-N10E (он же Asus RT-N10 LX, также Asus RT-N12E/LX только у последнего есть еще дополнительная антенна) оказался на давно устаревшем чипсете RTL8192C и модуле RTL8188C в качестве Wi-Fi адаптера и всего с 16 Мб SDR оперативной памяти.
Фото внутренностей с сайта FCC:


Никаких подходящих альтернативных прошивок (OpenWRT/DD-WRT/ от Олега) не было найдено, а всё из-за древнего чипсета. Поскольку очень не хотелось возвращать роутер обратно в магазин было решено попробовать осуществить все необходимые манипуляции на стоковой прошивке, но для этого требовался доступ по telnet или хотя бы возможность выполнения через web-интерфейс роутера.
По умолчанию telnet выключен в прошивке, да и выполнение команд через web-интерфейс отсутствует.
В гугле был найден метод запуска демона telnetd через скрытую страницу http://192.168.1.1/Main_AdmStatus_Content.asp , где 192.168.1.1 адрес вашего роутера(только предварительно залогиньтесь в админку), но к сожалению данный метод не сработал на Asus RT-N10E. Решено было расковырять прошивку и посмотреть что к чему.
Для начала я нашел набор скриптов для распаковки trx файла прошивки под названием Firmware Modification Kit. С помощью данного набора можно распаковать, модифицировать и собрать обратно файлы прошивки. Распаковать, найти и модифицировать скрипт инициализации по адресу /etc/init.d/rcS не составило труда, но вот собрать правильно прошивку так и не получилось – файл прошивки становился больше оригинального даже при удалении лишних комментариев их скрипта. Прошивать такой файл я не рискнул – большая вероятность получить «кирпич» после прошивки.
Ковыряние файлов от роутера Asus RT-N10U в котором можно включить telnetd через страничку Main_AdmStatus_Content.asp навело меня на мысль, что нужно копать в сторону web-сервера httpd, поскольку в него встроен модуль apply.cgi передавая параметры которому можно выполнять команды, но мне так и не удалось заставить роутер делать это.
Дальнейшее изучение файла /bin/httpd вывело меня на файл telnetd.cgi. Но опять неудача, telnetd не запускался. Далее в ход пошел интерактивный дизассемблер IDA с помощью которого было найдено, что у данного модуля есть один параметр enable который может принимать значение 1 (запускает telnetd) или 0 (завершает процесс telnetd).
Несколько скриншотов для ценителей ассемблера (изображения кликабелные):


И так для включения telnet на многих роутерах Asus, даже которые штатно не поддерживают такую функцию:
-
Авторизуемся в web-интерфейсе http://192.168.1.1/ -
Переходим по адресу http://192.168.1.1/telnetd.cgi?enable=1
Далее используя любой telnet клиент (PuTTY например) подключаемся к нашему роутеру по адресу 192.168.1.1 используя стандартный для telnet порт 23. Логин и пароль такие же как в web-интерфейсе(хотя в моём случаее ничего не нужно было вводить)
В моём случает список доступных команд очень мал, отсутствовали команды insmod, modprobe, а сам iptables был собран без возможности использовать опцию –j TTL –set-ttl. Да и роутер сам по себе тормозной и раз даже завис, к покупке настоятельно не рекомендую.
Надеюсь, что данная информация будет кому-то полезна.
ЗЫ: если кто знает как изменить поле TTL во входящих пакетах без использования правил iptables пожалуйста мне сообщите.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают