Сегодня обзор безымянного роутера. По внешнему виду он является клоном Hame A15, но по начинке он превосходит оригинал, плюс он дешевле. Плюс… эй, стоп, хватит! И так достаточно причин предпочесть его перед оригиналом 😉
Вот он сам:
Купить сей девайс вы можете по ссылке
Обзор получался совершенно обычным, до того момента когда я вдруг обнаружил маленький глючок в веб-интерфейсе роутера, и уже не смог остановиться в своем исследовании роутера и осуществил полный ДЖЕЙЛБРЕЙК/РУТ устройства, описание многошагового взлома китайской прошивки и всё остальное ждет под катом.
ЭТОТ РОУТЕР ПО МОЕЙ МЕТОДИКЕ УСПЕШНО ПЕРЕШИВАЕТСЯ В ZYXEL KEENETIC 4G!
Изделие приехало в таком пакете с таможенной декларацией «Household articles», т.е. домашние инструменты, ну что ж, можно согласиться с большой натяжкой.
Общий план.
Compatible with HSDPA/HSUPA/HSPA+, CDMA EVDO Rev A/B, including more than 400 kinds of popular USB 3G modems all over the world, dial automatically without any manual setting.
Compatible with all the operating system such as Mac, iOS, Windows, Linux, Android.
NEEWER’s patented software, automatically recognize ADSL/DHCP and WAN/LAN without any preset.
Compatible with IEEE.802b/g/n standards and data spread rate up to 150Mbps. Features:Interface:
1*Micro USB for power supply
1*Rj45 for WAN or LAN
1*USB 2.0 for USB dongle
3G: Support HSDPA/HSUPA/HSPA+, CDMA EVDO Rev A/B USB modem
Auto Access Point Name(apn), Dial-up 3G automatically
Automatically recognize ADSL/DHCP and WAN/LAN without any preset profile
Compatible with HSDPA/HSUPA/HSPA+, CDMA EVDO Rev A/B USB dongle
Complies with IEEE802.11b/g/n standards and data rate up to 150Mbps
Encryption: OPEN, SHARED, WEPAUTO, WAP-PSK, WEP2-PSK, WPA, WPA2, WPA-PSK/WPA2-PSK, WPA/WPA2, 802.1x
External Interface
Frequency Band: 2412-2483MHz
Function Button: 1*Reset
Gateway: TCP/IP/UDP/DHCP Server/NAT/MAPT/UPnP/Static Routing/MAC/URL/IP filter/VPN Pass through
Plug and Play, no need install any software
Protocol: IEEE802.11b/g/n up to 150Mbps
User amount: Supports 20 Users at the same Time
Wi-Fi
Итак, что перед нами такое? В общем, роутер. Питание от microusb. Ethernet-порт. Что еще?
Поддерживает 3g-модемы обычные, новомодные модемы(встречаются названия hostless, HiLink), которые прикидываются сетевой картой не поддерживает. Естественно, с вайфаем стандарта n, 150 мегабит, 1 антенна, т.е. по факту 73 мегабита.
Умеет читать флешки, отдает через samba и ftp. Так же через веб-интерфейс доступен просмотр файлов. Обновиться через веб-интерфейс, на альтернативную прошивку, к сожалению, нельзя, нужна правильная цифровая подпись прошивки.
Добавлю тут описание от ded1971, уточняющее:
Общепотребительские свойства — универсальный компактный 3G-WiFi-роутер. Удобно брать в поездки, подключать 3G/4G- модем, организовывать свою WiFi-сеть, либо использовать в качестве репитера для усиления WiFi, подключать интернет в смарт-телевизоре, если нет встроенного WiFi. Вообщем, куча полезных функций за смешные деньги
В комплекте идет инструкция, правда, от другого роутера, но веб-интерфейс — тот же.
Я часа три пытался залить в него openwrt, но каждый раз меня поджидала неудача. То одно, то другое. В общем, я психанул, снял с него образ, и залил прошивку от nexx wt1520 через usb-программатор. Моему удивлению не было границ, когда роутер загрузился и как ни в чем не бывало стал делать вид, что он nexx 🙂
Впрочем, это было ожидаемо — железо на 90% совпадает, различие только в gpio, на которых висят светодиоды и в наличии второго ethernet-порта на nexx. После чего я, довольный, вернул устройство в первоначальное состояние и решил попытать удачу на следующий день.
А на следующий день всё получилось с пол пинка — через консоль загрузчика залил в него прошивку-openwrt которую в прошлый раз готовил для своего роутера из предыдущего обзора.
Распиновка консоли, считать от ethernet-разъема:
GND RX TX 3.3V
Система на чипе:
Модуль памяти
И вот в тот самый момент когда я стал скриншотить штатный интерфейс, мой глаз зацепился за косячки в веб-интерфейсе…
И вот, внимательный взгляд старого(относительно) сисадмина, делая скриншоты зацепился за… постойте-ка, это что еще такое?
Хмм, /var/mnt/sda/. А что если передать javascript-у вместо /var/mnt/sda/ /etc/?!
Ага, не проверяем мы входные данные. Уязвимое место номер раз. Может еще где есть дырка в прошивке? Передадим / вместо /etc/. Ага. Всё верно. А почему файлики отдаются с какого-то левого порта?
Ага!
Уязвимое место номер два. Но загрузить файлики так не получится. Что у нас там есть? Самба-шара! Что там с настройками? Смотрим:
Мммм, /var/mnt/, admin? а что если написать вместо /var/mnt/ / и в поле username указать root?!
Проверим! Жмякаем на add, apply и видим следующую картинку:
Так-так-так, что получилось?
Круто! Корневая директория роутера доступна для записи!
Вспоминаем что на 23-м порту висит телнет-сервер с ограниченными возможностями управления сетевой части роутера.
BoC Router> BoC Router> help ? ->Display help information. help ->Display help information, same as '?' command. clear ->Clear various talbes, type clear for help. ping ->ping HOST, type ping for help. traceroute ->route trace, type traceroute for help. ipmac ->ip mac bind settings. quit ->Close terminal session. show ->Display various talbes information, type show for help. restart_httpd ->Restart web server. restore_defaults ->Restore the config to the default factory value. ated ->run ated for MP test. BoC Router> show ip < ip informations ipmac < ipmac binding information. nat < nat informations dev < show device statistics system < system basic informations BoC Router> show system
Дааааа, вообще тухляк, ничего не умеет. Но ведь у нас есть доступ на запись в корневую систему роутера! Так можно же переписать telnet-сервер своим! А тут как раз есть у меня такой, от роутера nexx wt1520! Подменяем!
Подключаемся к самба-шаре, находим /bin/busybox, удаляем его, переписываем на его место
свой busybox. Пробуем подключиться через telnet к роутеру!
(пароль я подбирал в прошлый раз, когда взламывал роутер nexx, пароль — y1n2inc.com0755)
$ telnet 192.168.100.1 Trying 192.168.100.1... Connected to 192.168.100.1. Escape character is '^]'. (none) login: nexxadmin Password: BusyBox v1.12.1 (2013-10-17 11:35:12 HKT) built-in shell (ash) Enter 'help' for a list of built-in commands. #
АГА! Мы в системе. Осталось залить прошивку openwrt(можно и ddwrt, способ-то универсальный!). А есть ли чем нам совершить запись в флешку?..
Нечем 🙁 Нужный исполняемый файл mtd(или mtd_write) — отсутствует. Не сдаемся, снова вытаскиваем из прошивки nexx файл mtd_write и по самбе закидываем на роутер в /tmp/(на всякий случай) вместе с файлом прошивки openwrt.
Заходим в открытом окне телнет в /tmp/:
# cd /tmp/ # ls mtd_write openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin
Есть все нужные файлы. Тогда начинаем самое главное. Сначала убедимся что у нас хватает памяти:
# free total used free shared buffers Mem: 29204 28192 1012 0 8
Если меньше 1 мегабайта, то попробуем убить лишние запущенные процессы(но скорее всего будет примерно как у меня, ~~ 1012, т.е. хватать):
killall -9 smbd; killall -9 upgraded; killall -9 udhcpd
Но так как не у всех есть usb-программатор, то снимем-ка резервные копии на флешку.
# for i in 1 2 3 4 5 6; do cat /dev/mtdblock$i > /var/mnt/sda/mtdblock$i; done # for i in 1 2 3 4 5 6; do cat /dev/mtdblock$i >> /var/mnt/sda/fullflash; done #
Стираем раздел флешки, предназначенный для прошивки:
./mtd_write erase mtd3 getFileSize: No such file or directory Unlocking mtd3 ... Erasing mtd3 ... Erase char is 255 #
Стёрли. Теперь зальём нашу прошивку! Несмотря на то, что прошивка предназначена для nexx, мне было лень проходить все круги ада, писать патчи для поддержки этой модели и компилировать новую прошивку, но прошивка полностью совместима. Когда захочется перешить на другую прошивку, проблем не возникнет, в openwrt-прошивке есть sysupgrade и mtd write 🙂
# ./mtd_write -r write openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin mtd3
Через 1-2 минуту роутер моргнет своим светодиодом и перезагрузится.
А там нас ждёт уютненькая теплая ламповая морда openwrt 🙂
Но это еще не всё, необходимо еще раз залить прошивку openwrt поверх openwrt, т.к. заливали мы её изначально «хакерским» способом, там могут быть мелкие косячки в файловой системе, лучше перепрошить.
Для этого еще раз зальём файл openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin на роутер через scp/sftp в директорию /tmp/, после этого зайдем по ssh и напишем в терминале:
# cd /tmp/ # sysupgrade -F -n openwrt-ramips-rt305x-nexx-wt1520-squashfs-sysupgrade.bin
Вот и всё, роутер успешно джейлбрейкнут/зарутован, чувство выполненной работы присутствует, можно и на муську черкануть 😉 Благодарю за внимание.
Рекзвизиты на роутер
ip 10.10.10.123 netmask 255.255.255.0 ssh login: root password: openwrt wifi name: wt1520 wifi password: openwrtopenwrt
Файлы, необходимые для джейлбрейка:
Плюсы:
+ Дешевый
+ Мелкий
+ Есть usb
+ Есть ethernet
+ Можно перешить в openwrt
+ 32 мегабайта ОЗУ, у оригинала — 16
Минусы:
— Греется
— С штатного веб-интерфейса перешиться в openwrt нельзяМожно!
Вот такой необычный и прикольный роутер приехал ко мне. Искать уязвимые места в прошивке изначально я не планировал, но шаловливые ручки взяли своё. А приехал он, кстати, не просто так, а для использования в будущем проекте, который, по завершению, опишу на мусечке.
По данной методике успешно удалось перешить роутер в zyxel keenetic 4g
Скрин с hilink-модемом zte mf823
Скрин с обычным модемом, Huawei 171
Кнопка сброса этого роутера в таком случае является кнопкой wps. Lan-порт является 4-м портом, как wan использовать нельзя, увы.(хотя можно попробовать поколдовать с вланами)