[Из песочницы] Уязвимость Mikrotik позволяет получать список всех пользователей через winbox

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

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

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

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


qpyprdhvre6mjevcfwznusbm8xe.png

Всем пользователям 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
и так далее.


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

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


j3nfc-aekcw3dboprbj3emwdeu0.png

yukpnh6rgek33kz6f_g2kaqagh4.png

_tsb2aa95lg7y6leplte11i7ndg.png

eto2qhxbih_pgnplcvrkuk1mwjy.png

r03n1vsv5pjaw_wzrkyemlcea6k.png

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

hiv870px1jbpuqze7mwsq8eqpc8.png

ba2i0egu9a9fc03unanywi0zyps.png

uxjir-vj1rbizeb3jndr29bgy2a.png

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

tzs4mwzrmfw1sjghm0yw05vkwfy.png

mqciumjfi92upnedp0vlesh_q4o.png

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

euxm6fsg2oopempr7nccpa3d82o.png

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

ejb2mo3bqeryxdkyufoqfnuxta0.png

_a1d6v1lyln9ngfuavbtyewjnog.png

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

jefxtgc1zeqe-rakypihk4th2se.png

d1sa_8ovl2fmqtd93soybvjwizk.png

Заключение

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

© Habrahabr.ru