OpenWRT factory reset

Днес успях да ресетна паролата на един OpenWRT рутер който Иван Джеферов от BizLabs ми изпрати. Рутера е използван във организация и понеже е пенсиониран никой не му знаеше паролите и как да се влезе във административния интерфейс. Само се видя, че е „нестандартен“ firmware което е синоним на някое от WRT-тата.

За тази цел свързах рутера със кабел към настолния си Мак и се залових. Първото което ми хрумна е да прегледам трафика който излита от и влиза във самото устройство. Отворих терминала и натраках на бърза ръка
sudo tcpdump -Ani en0
което ми позволи да видя какво се случва вътре. Един от пакетите беше към NTP сърврър на OpenWRT което на практика беше това което търсех. А именно – рутера е рефлашнат със OpenWRT.

Етап 2 беше да видя как да сменя паролата. За тази цел рутера трябва да влезе във Failsafe mode и тогава се получава някакъв контрол. Общо взето по време на boot процеса трябва да се натисне един бутон. Проблема е, че рутерите имат още един режим Recovery mode който пак се активира със натискане на същия бутон.

Разликата между двата режима е колосална. Recovery mode на практика инсталира на устройството IP 192.168.0.86 и стартира TFTP клиент който ще дръпне и флашне recovery image. За тази цел компютъра трябва да му се набие IP 192.168.0.66 (ТВЪРДО!) и да се стартира TFTP сървър. Ако по време на tcpdump видите, че IP 192.168.0.86 прави ARP заявки за намиране на 192.168.0.66 значи сте влезнали във този режим. Или сте натиснали бутона много рано след включване на устройството.

Аз обаче не търсех Recovery mode, ами Failsafe mode което просто позволява да се нулират настройките на устройството. След известно количество проба-грешка се установи кога трябва да се натисне бутона за влизане във този режим. Това е приблизително 3-5 секунди след включване на самото устройство. Тогава един от светодиодите започва много бързо да мига което е сигнал, че режима е активиран. За да се възползвате от него обаче трябва да си набиете IP от рода на 192.168.1.10 (ТВЪРДО!) и тогава можете да достъпите устройството под telnet при по-старите OpenWRT или ssh при по-новите на адрес 192.168.1.1

Пробвах ssh, но ми отказа връзка което означаваше да пробвам под telnet. Разбира се се оказа, че на новите macOS няма telnet и се наложи да си го компилирам от сорс:
wget http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.4.tar.gz
tar xvzf inetutils-1.9.4.tar.gz
cd inetutils-1.9.4
./configure
make
cd telnet
./telnet 192.168.1.1

при което ще видите нещо като:

И тук почна голямото брожение как да се нулират настройките. Според горния екран е трябвало само да използвам firstboot за целта. След като го изчаках културно към 10тина минутки, натиснах произволен клавиш и командата ми върна контрол. Изпълних reboot -f и устройството се рестартира. Неочаквано за мен обаче нищо не се случи. И така няколко пъти със различни комбинации със mount_root, без mount_root и т.н.

След малко гугълване видях, че няколко човека се оплакват от същото и единия написа, че се е оправил със изпълнение на следната команда:
mtd -r erase rootfs_data
изпълних я и след рестартиране можех да вляза във устройството през LuCI (уеб интерфейса на OpenWRT) на адрес 192.168.1.1

OpenWRT factory reset

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *