
CVE-2020-11881: неаутентифицированная удалённая DoS-атака для службы SMB MikroTik.
В этом отчете описывается CVE-2020-11881 — неаутентифицированная удаленная DoS-уязвимость для службы SMB MikroTik, работающей на RouterOs. Уязвимость позволяет злоумышленнику вызвать сбой работающей службы SMB и была ответственно раскрыта security<@>mikrotik.com 06.04.2020.
Протокол Server Message Block (SMB) был представлен Microsoft и перереализован несколькими поставщиками для поддержания совместимости обмена файлами с системами и службами Windows. В целом протокол используется для обмена файлами между системами Windows.
6.41.3 (long term release)
6.45.8 (long term release)
6.45.9 (long term release)
6.46.4 (stable release)
6.47.2 (stable)
6.47.3 (stable)
7.0beta5 (beta)
7.1beta2 и ниже
Вероятно, затронуты и другие версии, выпущенные до 12.09.2020. За исключением версии 6.47.0, которая, похоже, была исправлена на один цикл выпуска в ответ на первоначальный процесс ответственного раскрытия.
Сервер SMB выйдет из строя после получения пакета negotiation-request, за которым следует модифицированный пакет setup-request. Чтобы вызвать уязвимость, в пакете setup-request поле MessageID должно быть установлено в 1, а поле SessionID — в 0. Сервис аварийно завершает работу, поскольку, по-видимому, не может обработать поле SessionID.
Для надежного воспроизведения ошибки, пожалуйста, пересоберите используемую тестовую среду, предоставленную в этом репозитории.
Загрузите и запустите среду RouterOs.
Пожалуйста, выполните следующий скрипт на свежеустановленной версии Ubuntu 18.04, так как скрипт установит все необходимое программное обеспечение. Скрипт завершается предоставлением IP-адреса виртуальной машины RouterOs.
sudo ./setupMikroTikEnvironment.sh
Включите SMB на RouterOs
Выполните следующие команды для активации службы SMB.
telnet <RouterOs IP>
(user: admin, <no password>)
ip smb set enabled=yes
ip smb print
Службу можно вручную проверить с хост-системы с помощью следующей команды, и она должна ответить Anonymous login successful, пока служба работает.
smbclient -N -L \\\\<RouterOs IP>
Атака типа «отказ в обслуживании»
Скрипт на Python3 cve-2020-11881.py проверяет доступность службы SMB до и после процесса эксплуатации. Успешное выполнение приведет к недоступности службы SMB. Выполните скрипт, как показано ниже.
python3 cve-2020-11881.py --ip <RouterOs Ip>
Проверка службы SMB с помощью следующей команды завершится ошибкой.
smbclient -N -L \\\\<RouterOs IP>
Удаление виртуальной машины
Чтобы удалить виртуальную машину, просто запустите скрипт снова.
Ошибка была сообщена 06.04.2020 и не была исправлена на 12.09.2020, даже после нескольких запросов.
Обсуждение CVE: https://forum.mikrotik.com/viewtopic.php?f=2&t=166137
Currently only the long-term version channel (v6.46.7) has all the necessary fixes for this CVE. We are working on getting them published in stable and testing channels as well. Sorry for any inconvenience.
sudo ./setupMikroTikEnvironment.sh