среда, 18 апреля 2018 г.

Получение root на Mikrotik RouterOS версии 6.42

Алгоритм, предложенный мной ранее для получения интерактивного SHELL с правами рута более не работает. Начиная с версии 6.42 поменялся способ проверки наличия пакета option. Теперь не просто проверяется наличие файла /pckg/option, а дополнительно осуществляется проверка, что он является symbolic link в папку /bndl/.

Однако, по прежнему работает автоматический запуск скриптов, как я описал тут. Достаточно в скрипт добавить строки:
  1. rm -rf /pckg/option
  2. ln -s /bndl/dhcp /pckg/option
и мы снова получаем SHELL.

Либо можно запускать из скрипта свой собственный telnet/ssh демон, работающий на нестандартном порту.

четверг, 5 апреля 2018 г.

Запуск стороннего ПО на рутерах Mikrotik

В прошлом посте я описал один из способов получения рута на Mikrotik, путем создания симлинка на корневой каталог. Отмечу, что при использовании данного метода наблюдается один не смертельный баг - очень долго открывается меню работы с файлами через WebFig и WinBox, а так же медленно отрабатывают команды "/file print ...", "/file set ..." в скриптах (вплоть до отказа по таймауту). Вызвано это тем, что модуль /nova/bin/fileman, реализующий операции по работе с файлами, зачем-то при запуске каждой команды "/file", сканирует диски и собирает список всех находящихся на них файлов. Занимает это довольно долгое время, отсюда и "тормоза".
Но так как работа с файлами на Mikrotik и без этого весьма убога - данный баг не критичен. Лучше для работы с файлами использовать нативный BASH.

Разблокированный логин "devel" уже позволяет запускать на рутере стороннее ПО. Осталось найти способ автоматического запуска нужных нам команд при загрузке рутера, без необходимости подключения к нему по Telnet/SSH. Первой мыслью было попробовать написать скрипт, подключающийся с рутера самому к себе по SSH под "devel" и выполнять нужные команды - однако, этот вариант не работает. Kirils Solovjovs в своей jailbreak tool правит файловую систему рутера - я подобные изменения вносить не планирую, чтобы иметь минимум проблем после штатного апгрейда RouterOS. Поэтому, пришлось искать другой способ. И он нашелся.

пятница, 23 марта 2018 г.

Получение root на Mikrotik с USB портом

Вдохновившись прочтением презентации Kirils Solovjovs по поводу получения прав root и запуску своих приложений на RouterOS, надумал наконец поднять на своем RB951G-2HnD что-нибудь интересное, вроде полноценного bind9.

В версиях до 6.41 для получения рутованного shell было достаточно создать файл /nova/etc/devel-login (достигалось это путем создания файла бэкапа конфигурации, его исправления и последующей загрузки на устройство, см код тут, а в еще более старых версиях OS, как поступали китайские товарищи, можно было просто выполнить команду "/tool sniffer save file-name=../../nova/etc/devel-login"), однако, в последних версиях этот вариант был прикрыт. Вместо него теперь проверяется наличие пакета "option" при вводе логина devel.