Обходим защиту management-plane

    Пару дней назад мой начальник дал мне задание — пробежаться по всем девайсам в нашей сети и посмотреть каким образом можно улучшить безопасность сети в целом. Я человек далёкий от security, routing&switching — наше всё. Но тем не менее, я взялся за дело. Товарищи по работе подсказали, что стоит погуглить способы защиты management plane (имя в виду, конечно, MPP), я случайно погуглил «MOP cisco» и хорошо, что не сразу понял, что ошибся…


    Немного истории


    В далёкие времена, когда DEC ещё занимались сетями, они написали стэк протоколов под общим названием DECnet. Про большинство из них человечество уже успешно успело забыть. Но только не Cisco. Один из протоколов в этом стэке называется MOP (Maintenance Operation Protocol). Функций у него было не мало, но одна из них актуальна по сегодняшний день. Я говорю про RC (Remote Console). С помощью этой функции можно было получить удалённый доступ к устройству.

    Почему это интересует меня сегодня?


    А потому, что Cisco мало того, что до сих включает этот протокол в все IOS-ы (вплоть до 15-го), так ещё и включает его по умолчанию на всех интерфейсах! «Ну и что?» — скажете вы. Ничего революционного, telnet и SSH знают все. А особенного в этом под-протоколе то, что он бегает полностью на втором (канальном) уровне. А это значит, что любимый всеми нами access-list на VTY от этой дырки не спасёт.

    Итак, вооружившись GNS-ом и VMware Player-ом я принялся за дело.

    Тестируем


    Всё что мне было нужно, это поднять линукс на виртуальной машине и подключить её к не менее виртуальной циске в GNS. Я воспользовался дистрибутивом Ubuntu Server 12.04 LTS и образом IOS c7200-jk9s-mz.124-21a. Единственное, что нужно было добавить на сервер это, собственно, сам LAT Daemon (apt-get install latd).

    Для начала я поднял на раутере VTY без всяких ограничений просто для того, чтоб проверить, что MOPRC работает в принципе:

    image

    Great success!

    Если вкратце, то я смог подключиться при следующих конфигурациях:

    1) С access-list-ом запрещающим абсолютно всё (deny any) натянутым на VTY.
    2) С no login под VTY.
    3) С transport input none под VTY (и это при наличии mop в списке возможных протоколов).

    Единственное, что блокирует этот протокол это no mop enabled под физическим интерфейсом.

    Тут стоит оговориться — чтоб поключиться к устройству через этот протокол, нужно быть с ним в одном сегменте. Кроме того — с другого сетевого устройства подключиться не получится (или я не нашёл как это сделать на Cisco), нужно иметь хост с линуксом (хотя если вдуматься, то не вижу почему нельзя поставить latd на Juniper). К тому же — проваливаемся мы только в user-mode, и чтоб пойти дальше нужно всё-таки знать пароль. Но тем не менее — по-моему эта дырка стоит упоминания.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

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

      0
      Не удалось подключиться ни к 2811, ни к 2600, ни к 7301
      везде одно и тоже:

      [root@ats latd]# moprc 00:0F:8F:XX:XX:XX
      target does not support remote console
      


      Даже специально делал на интерфейсе:
      #mop enabled


      тоже самое.
      оборудование в одном сегменте, пробывал на centos, собрал из сырцов — debian-а нет, к сожалению.
      Что ни так?
        0
        moprc -v 00:0F:8F:XX:XX:XX
          0
          [root@ats latd]# moprc -v 00:0F:8F:XX:XX:XX
          
          Target does not respond

            0
            Какая конфигурация стоит на VTY?
            Пинг между устройствами бегает?
              0
              Только после:
              еее(config)#interface FastEthernet0/1
              еее(config-if)#mop en
              еее(config-if)#mop enabled 

              выдало:
              [root@ats latd]# moprc -v 00:0F:8F:XX:XX:XX
              Maintenance Version: 3.0.0
              
              Console connected (press CTRL/D when finished)
              
              Username: 

              Во первых это говорит о том, что по умолчанию протокол не включен.
              И во вторых, если включено aaa new-model, а оно у всех сейчас включено, ничего не выйдет.
                0
                aaa new-model всего лишь заставит вас ввести пароль ещё до попадания в user-mode.
                А на счёт во-первых:
                www.cisco.com/en/US/docs/ios/11_0/router/command/reference/rinterfc.html#wp3453

                «Default

                Enabled on Ethernet interfaces and disabled on all other interfaces.»
                  0
                  По поводу aaa new-model — Ну а разве это не преграда по Вашему? То есть, попасть на девайс не получиться, в этом и суть.

                  А по Default я Вам вот что скажу — проверено не на одном устройстве, всё выходит наоборот. пока принудительно не включить — не работает.
                  И давайте исходить из реалий и практики, а не голых конфигов в эмуляторе, как то так.
                    0
                    Я не спорю, реалии решают. Но у вас вроде как не голый девайс. Возможно, на нём когда-то этот протокол уже закрыли. В конфиге какую команду видно — mop enable или no mop enable?
                      0
                      вот здесь:
                      IOS (tm) C2600 Software (C2600-ADVIPSERVICESK9-M), Version 12.3(24a), RELEASE SOFTWARE (fc1)

                      включен по дефолту, действительно.

                      А вот здесь:
                      Cisco IOS Software, 7301 Software (C7301-ADVENTERPRISEK9-M), Version 12.4(2)T1, RELEASE SOFTWARE (fc3)

                      не включен.
                      Странное дело.
                    0
                    Ну, или имеется ввиду действительно Eth интерфейс, ни fa, ни gi, а именно eth. Но тогда это точно не актуально в сегодняшних реалиях.
                      +1
                      Я пробовал это и на реальных девайсах. И fa и gi — по дефолту mop был включён.
                  0
                  на vty:
                  line vty 0 15
                   access-class 20 in
                   logout-warning 30
                   absolute-timeout 30
                   rotary 90
                   transport input telnet
            +3
            «Обходим защиту control-plane» => «Обходим защиту management plane».
            Control plane — совсем другое.
              0
              Ваша правда, исправил.

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

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