Моя история начинается, как и все подобные. Ночной звонок от коллег, прерванный сон, сообщение: "нас взломали". Это был MikroTik CCR1036, на то время топовая железка, державшая на себе целый район. История была бы не такой интересной, если бы злоумышленники не смогли превратить его в «тыкву». Абсолютно нерабочую железку, кусок металла и текстолита. Нанеся нам колоссальный, по нашим меркам ущерб.
Mikrotik CCR1036
Удивительно, что после взлома все продолжало работать. Паника началась после того, как один из коллег потерял удаленное управление. Оценив ситуацию в том самом телефоном разговоре, я всех успокоил. Ввиду того, что маршрутизатор продолжал выполнять свои задачи, все работы перенесли на завтра. «Спокойно сбросим и зальем новый конфиг», — подумал я.
Негодованию нашему не было предела. Не в первый день, ни во второй мы не могли сбросить МикроТик. Коллеги из других организаций смеялись над нами, мол, не умеем мы сбрасывать МикроТики и запускать netinstall. По приезду к нам на помощь, так и уезжали ничего не сделав. Напомню, маршрутизатор так и продолжал обслуживать весь район, что там крутилось внутри - неизвестно, но абоненты не жаловались.
Виной всему, как оказалось, новая защита конфиденциальных данных от производителя. Теперь в любой момент, имея доступ к маршрутизатору, можно было включить режим Protected RouterBOOT. Это режим защиты, в котором блокируется загрузчик, блокируется стандартное поведение кнопки Reset, нельзя сбросить устройство через Netinstall, не работает консоль. Войти в роутер можно только зная логин/пароль админа. Единственный путь для сброса роутера будет переформатирование NAND и RAM, но для этого надо знать, сколько секунд удерживать кнопку Reset. Причем, количество секунд зажатия можно задать любое, например, больше 230, но меньше 231. На практике это приведет к невозможности сброса.
На четвертый день, в пятницу, микротик перестал работать. Начали звонить абоненты. Коллеги требовали с меня контакты взломщиков: может они хотят выкуп? Доходило до маразма. Никто на меня не выходил, контактов злоумышленников не было.
В конце концов купили новый микротик, а этот отправили представителю производителя. Представитель ответил, что ремонт невозможен. Официальное письмо на английском в Латвию (столица Микротиков) о помощи, также не помогло.
Ответ официального представителя MikroTik в России
Как-то встретил я своего одноклассника Серегу, друга детства. Не виделись несколько лет. Серега, как оказалось, занимался всем подряд, брался за ремонт любой около компьютерной техники, выезжал на переустановку винды по городу и прочему околокомпьютерному.
Стал я обращаться к Сереге с ремонтом сетевого. И как-то рассказал про печальный опыт с микротиком. Появились мысли у нас обоих, что стоит попробовать отнести пациента к нему, может за что-то и получится зацепиться.
Диагностика Сергея выявила, что на плате маршрутизатора установлены две микросхемы памяти ПЗУ BIOS и NAND. С обоих чипов он сможет считать дамп. Но предупредил, что данные будут сырые и разбираться придется мне.
Закралась у меня надежда, что этот самый тег Protected RouterBOOT и количество секунд хранятся именно в BIOS. Эту версию надо было проверить. Нашел дешевый роутер MikroTik hAP, отдал Сереге, попросил слить дамп до и после установки protected.
Повезло! При сравнении дампов, были отличия. Данные писались в BIOS. Серега только и успевал впаивать, выпаивать чип, сливать и заливать данные с моими экспериментами.
При первом невнимательном изучении я поспешил с выводами и потерял время. Открыв дамп в HEX редакторе, я заметил, что файл содержит в себе загрузчик и две версии BIOS. В загрузчике, который начинается с 0, так и не смог разобраться, какие значения отвечают за выбор BIOS. Первая версия BIOS начинается с адреса 1 000, вторая резервная с 4 000. Недолго думая, я поменял местами между собой BIOS’ы. Довольный своей работой, отправил «золотой» файл Сереги. В ответ звонок, у нас кирпич.
Адресация и разделение памяти
Пока мы занимались изучением «низкоуровневого взлома», параллельно отправил наработки на завод Микротик в Латвию. Как и обещали, ответ пришел в течении семи «бизнес-дней»: ничем помочь не можем.
Энтузиазм не утихал, у нас еще были козыри в рукаве в виде разных дампов с домашнего роутера MikroTik hAP, которые были почему-то отвергнуты сразу. На первый взгляд, BIOS’ы этих двух роутеров не имеют ничего общего. Хотя, если приглядеться, они как два брата, вот только в hAP в отличии от CCR, данные пишутся задом наперед.
В этот раз я был более внимательным. Не торопясь, я сравнивал BIOSCCR и зеркальный hAP. Пытался понять набор байт, накопить какую-то информацию для построения картины. И вот заметил очевидное: помимо загрузчика и двух вариантов BIOS, есть еще область под названием «Soft», начинающаяся с адреса 71 000, хранящая в себе значения ключей Routerboard, заданных в интерфейсе.
Старая памятка тех лет в оригинальном виде, которой мы обменивались
Визуально я смог примерно увидеть эти байты, отвечающие за количество секунд для сброса маршрутизатора. Но никак не смог перевести их в человеческую систему счисления. Поэтому самым «умным» решением на тот момент было обнулить все байты. Справедливости ради, хочу отметить, что возможно это просто какой-то другой флаг, отвечающий за protected boot. В конце области Soft увидел нечто похожее на hash-сумму, немного огорчился, но трогать ее не стал.
Звонит Серега и говорит: «Залил твоего Франкенштейна, маршрутизатор начал вести себя очень странно, выдал ошибку прошивки и запустил netinstall. Прошил его новой прошивкой, теперь он как новый!»
Мы уже догадались оба, что достаточно было нарушить целостность области Soft (не сходится hash) в BIOS, и MikroTik даст возможность восстановить себя. В железной части я не участвовал, но сделать все это можно простым программатором CH341A с прищепкой.
Следов злоумышленников я не смог найти, в процессе восстановления все данные были утеряны. Прошивка была свежая для того года. Предположительно, взлом был произведен через web-интерфейс MikroTik под названием webfig. Возможно, с внутренней сети. Возможно - конкурентами. Рассказать к сожалению нечего.
Несмотря на то, что в коллективе это была моя зона ответственности, меня никто даже косвенно не винил. Убытки были огромные. Но, спустя, казалось бы, столько времени, я смог свести их к 0. Сегодня этот МикроТик работает и обслуживает уже другой район.
Вроде как оказалось все просто и очевидно, лекарство от проблемы банальное, но в интернете информации нет. Поэтому хочу поделиться с вами этим полезным материалом - как можно восстановить такую «тыкву».
Нужно всегда обновляться и следить за безопасностью =).
Но если ты нанооператор, с временем и деньгами бывают проблемы, возможно, стоит в будущем присмотреться к другим вендорам. Держать у себя на запас резервное оборудование.
Предыдущая история из жизни нанооператора - здесь.
Ну после взлома цисок, в которых управление не имело доступа в интернет, я уже ничему не удивляюсь.
Тоесть вариант, что сначала нашли дыру внутри периметра, а оттуда уже сломали, он совсем не рассматривается ?
Резюме:
Микротик - редкостное гавно, но лучше за эти деньги ничего и не найти.
З.Ы.
Ребят жалко, но нано-операторам под солнцем места не будет скоро, впрочем как и всем остальным, кроме большой четверки.
Не в 2018 дело было? тогда вопросов, кроме как к настройкам, и не остаётся.
Да тогда массовый взлом был. Когда вланы стирали и на их место американский флаг вставляли
То что управление было доступно всем кроме группы админов, это тоже нормально?
Дилетанты.
1. Это не БИОС, нету там никакого биоса, не было и быть не может. Прочитайте в википедии что такое БИОС.
На мелкой флешке обычно размещается загрузчик типа u-boot с его настройками, иногда там же линуксовое ядро.
2. Настройки этого загрузчика обычно защищаются CRC а не хэшем.
3. Юзайте линукс напрямую, нахрена вам этот микротик!?
В железку скорее всего можно влить OpenWRT, чтобы не выбрасывать.
А лучше было сразу поставить тазик х86 и линухом, там ничего подобного и близко бы не случилось при восстановлении.
железку в истории выше восстановили.
у меня востановление в такой ситуации заняло минут 40, ну видать кому-то проще купить новую.
главным достоинством микротика против "поставьте линукс" является промышленная повторяемость результата.