Главная

Thursday, 13 October 2022

Сканируем Mikrotik RouterOS.

Всем привет.

Вы знаете, Microsoft иногда выдает на гора полезные штуки. Давненько так я писал вам про их кофе. А вчера узнал что Microsoft приложила руку к диагностике Mikrotik RouterOS на уязвимости.

Обьяснялось это тем что сам Mikrotik не прилагает достаточных усилий к безопасности своей RouterOS. Поэтому, мол, за все это время RouterOS, особенно старые ее версии, накопили достаточно дыр. Как их латать и чем это вопрос к разработчику, ну а Microsoft ограничилась бесплатным инструментом RouterOS Scanner.

Что же этот сканер может выявить:

  • get the version of the device and map it to CVEs
  • check for scheduled tasks
  • look for traffic redirection rules
  • look for DNS cache poisoning
  • look for default ports change
  • look for non-default users
  • look for suspicious files
  • look for proxy, socks and FW rules.

Как это работает? В принцпе все просто, делаем клон репозитория, запускаем виртуальное окружение в Python и щупаем нашу Mikrotik RouterOS.

Вывод сканера включает 3 раздела для каждого теста:

  • raw data - данные, которые мы ищем.
  • suspicious - CVE, которые мы обнаружили как подозрительные, должны быть проверены, являются ли они законными или вредоносными.
  • recommendation - обнаруженные нами слабые места в безопасности и рекомендации по их устранению.

Для локального теста я развернул RouterOS v5.26 прямо в VirtualBox. 

Запускаем 1-й тест (доступ без пароля):

python main.py -i 192.168.56.2 -u admin -concise

Вывод сокращен:

** Mikrotik ip address: 192.168.56.2

Version:

suspicious:

"CVE-2018-1157"

--

"CVE-2018-1158"

"CVE-2020-20253"

"CVE-2019-3976"

recommendation:

"RouterOS version:  is vulnerable to CVE(s). Upgrade to the latest version. (The CVEs list is from NVD)"

Users:

recommendation:

"You are using the default \"admin\" user name- create new user in \"full\" group with a unique name, and delete the admin user"

"Add allowed ip address to user: admin, to be the only address it can login from"

Ports:

recommendation:

"The port for ssh protocol is as ssh default port (22)- Mikrotik company recommended to change it"


Запускаем 2-й тест (доступ с паролем 123456):

python main.py -i 192.168.56.2 -u admin -ps 123456

Вывод сокращен:

** Mikrotik ip address: 192.168.56.2

Version:

raw_data:

5.26

suspicious:

"CVE-2021-36613"

--

"CVE-2018-14847"

"CVE-2018-1158"

recommendation:

"RouterOS version: 5.26 is vulnerable to CVE(s). Upgrade to the latest version. (The CVEs list is from NVD)"

Files:

raw_data:

{"name": "skins", "type": "directory", "creation-time": "may/27/2018 08:15:44"}

{"name": "um-before-migration.tar", "type": ".tar file", "size": "15 360", "creation-time": "may/27/2018 08:19:02"}

{"name": "auto-before-reset.backup", "type": "backup", "size": "7 066", "creation-time": "may/27/2018 09:26:21"}

{"name": "pub", "type": "directory", "creation-time": "oct/12/2022 13:45:16"}

Users:

raw_data:

{"name": "admin", "group": "full", "address": ""}

recommendation:

"You are using the default \"admin\" user name- create new user in \"full\" group with a unique name, and delete the admin user"

"Add allowed ip address to user: admin, to be the only address it can login from"

Ports:

raw_data:

{"name": "telnet", "port": "23", "address": ""}

{"name": "ftp", "port": "21", "address": ""}

{"name": "www", "port": "80", "address": ""}

{"name": "ssh", "port": "22", "address": ""}

{"name": "www-ssl", "port": "443", "address": "", "certificate": "none"}

{"name": "api", "port": "8728", "address": ""}

{"name": "winbox", "port": "8291", "address": ""}

recommendation:

"The port for ssh protocol is as ssh default port (22)- Mikrotik company recommended to change it"


Или запускаем 3-й тест (вывод будет в JSON формате):

python main.py -i 192.168.56.2 -u admin -ps 123456 -J

Вот так простенько и со вкусом.

Удачи всем.


No comments:

Post a Comment

А что вы думаете по этому поводу?