Уязвимость Mikrotik позволяет получать список всех пользователей через winbox

в 15:50, , рубрики: bugs, exploit, mikrotik, network security, routeros, информационная безопасность, Сетевые технологии, системное администрирование

Устройства компании Mikrotik стали широко распространены из-за своей цены по отношению к функционалу. Но и ошибки в программном обеспечении никто не отменял. И на этот раз вылез серьёзный баг.

25 марта один из пользователей форума Mikrotik сообщил об обнаружении подозрительной активности маршрутизаторов mikrotik с применением портов telnet (TCP port 23), TR-069 (TCP port 7547) и WINBOX (TCP 8291).

Сотрудники компании сослались на баг, который был закрыт год назад. В последствии выяснилось, что это новая уязвимость и 23 апреля компания Микротик сообщила о выпуске прошивок, где эта уязвимость устранена.

Несмотря на то, что компания довольно оперативно выпустила bugfix, устройства, подверженные уязвимости в сети исчисляются тысячами.

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 1

Всем пользователям RouterOS рекомендую обновиться минимум до версий 6.40.8 [bugfix] или 6.42.1 [current]

Так же в общем доступе появились инструменты, которые позволяют простым пользователям получить доступ на устройства, которые не защищены фаерволом либо не обновлены до актуальной версии.

Ввиду последних событий я предлагаю всем пользователям устройств Mikrotik и CHR произвести хотя бы минимальную настройку.

Минимальные настройки безопасности

Анализируя устройства с багом, я обратил внимание, что практически все пренебрегают настройками фаервола, несмотря на то, что это самый эффективный инструмент защиты Вашей сетевой инфраструктуры. И 90% устройств имеют учётную запись "admin" с полными правами. Прям мечта для брудфорсеров.

В отношении защиты RouterOS сделайте несколько несложных шагов, чтобы обеспечить минимальную безопасность:

  1. Убедитесь, что у Вас последняя прошивка.

  2. Не стоит надеяться на отсутствие багов в новой прошивке и настройте фаервол:
    2.1. В цепочке INPUT доступ к устройству разрешён, только с доверительных ip адресов. Например, диапазон домашней сети или ip адресами сетевых администраторов.
    Обратите внимание на то, что цепочка INPUT применяется только для пакетов, адресованных непосредственно этому маршрутизатору. Транзитные пакеты относятся к цепочке FORWARD.
    2.2. Дропайте все пакеты, которые не соответствуют разрешённым.
    2.3. В случае, если Вам требуется периодически доступ с динамических адресов, то используйте "port knocking", чтобы добавить Ваш ip в разрешённые на определённое время.

  3. Выключите все сервисы, которые Вы не используете (api,ssh,telnet etc.)

  4. После настройки фаервола и обновления прошивки смените пароль.

Также, если вы используете имя учётки "admin" так же создайте свою и заблокируйте "админа".

FireWall

С использование терминала.
Создайте список адресов, которым будет разрешено подключаться к маршрутизатору
/ip firewall address-list
add address=192.168.1.0/24 list=allow-ip
add address=192.168.88.10/32 list=allow-ip

Добавляем правило, которое разрешает все действия с этих адресов

/ip firewall filter
add action=accept chain=input comment="Allow Address List" src-address-list=allow-ip

В случае если нужен доступ с неизвестных адресов я делаю ожидание icmp пакета (ping) определённого размера. Если такой пакет прилетает, то адрес источника добавляется в список allow-ip со временем в 1 час. При желании можно сделать каскад из таких пакетов.

/ip firewall filter
add action=add-src-to-address-list address-list=allow-ip address-list-timeout=1h chain=input packet-size=783 protocol=icmp

Обратие внимание на размер пакета packet-size 783 байт. Но при пинговании Вы должны указывать на 28 байт меньше. В данном случае пинг из windows:

ping -l 755 myhostname.domain

Запрещаем доступ ко всем портам, которые не разрешены выше:

/ip firewall filter add action=drop chain=input

Сервисы,

которые Вы не используете тоже надо выключить ибо это лишние точки отказа.
/ip service
set api disabled=yes
set api-ssl disabled=yes
и так далее.

Тоже самое при помощи винбокс.

Разрешаем в нашем адрес листе.

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 2

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 3

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 4

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 5

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 6

Правило добавления в адрес лист по пингу

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 7

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 8

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 9

Правило запрета всего и вся ставится самым последним

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 10

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 11

То есть это должно выглядеть так

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 12

Сервисы настраиваем здесь

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 13

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 14

Пользователей добавить и удалить "admin", а также сменить пароль можно здесь

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 15

Уязвимость Mikrotik позволяет получать список всех пользователей через winbox - 16

Заключение

Очень надеюсь, что моя краткая инструкция поможет вашему устройству не попасть под контроль любой ботнет сети, в том числе Hajim.

Автор: LMonoceros

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js