Специалисты компании Tenable обнаружили четыре уязвимости в маршрутизаторах MikroTik, совместное использование которых позволяет понизить версию RouterOS и создать бэкдор. Две уязвимости были обнаружены и раскрыты MikroTik 11 сентября 2019 года (CVE-2019-3976 и CVE-2019-3977) и еще две 13 сентября 2019 года (CVE-2019-3978 и CVE-2019-3979). Инженеры MikroTik представили патчи для этих проблем 28 октября 2019 года.
В своем блоге исследователи описывают потенциальную атаку следующим образом. Первый этап — это отравление кеша DNS (DNS cache poisoning). Так как можно указать DNS-сервер, через который должны проходить запросы, инжект адреса становится тривиальной задачей.
Следующим этапом атаки является понижение версии RouterOS до 6.42.12 или более ранней. Дело в том, что начиная с версии 6.43, изменился процесс обработки паролей. В итоге понижение до любой версии, предшествующей 6.43 (6.42.12 и старше) приведет к удалению всех пользовательских паролей и разрешит аутентификацию без пароля.
Используя вредоносный DNS-сервер, злоумышленник может внедрить в кеш маршрутизатора ряд IP-адресов, включая адрес для загрузки обновлений. Когда устройство будет искать обновление, оно перейдет на сайт злоумышленника, а не на настоящий ресурс MikroTik. Этот вредоносный сайт может быть использован для предоставления маршрутизитору более ранней версии ПО, которую RouterOS из-за обмана сочтет новейшей.
После понижения RouterOS до версии 6.41.4, злоумышленники возвращают в дело пустой пароль администратора по умолчанию. Это означает, что преступник может свободно войти в систему как администратор. Версию 6.41.4 исследователи выбрали из-за того, что в ней присутствуют известные уязвимости, с помощью которых в системе можно создать полноценный бэкдор. Дело в том, как MikroTik обрабатывает файлы .NPK во время обновлений. Так, он парсит поле «part info», что позволяет создать каталог в произвольном месте на диске. Эксперты Tenable объясняют, что файл поддержки бэкдора, это просто /pckg/option, и пока этот файл существует, даже в виде каталога, бэкдор будет активен.