
CVE-2020-11881 : déni de service à distance non authentifié pour le service SMB de MikroTik.
Ce rapport décrit la CVE-2020-11881, un déni de service (DoS) distant non authentifié pour le service SMB de MikroTik fonctionnant sous RouterOs. La vulnérabilité permet à un attaquant de faire planter le service SMB en cours d'exécution et a été divulguée de manière responsable à security<@>mikrotik.com le 06.04.2020.
Le protocole Server Message Block (SMB) a été introduit par Microsoft et réimplémenté par plusieurs fournisseurs afin de maintenir la compatibilité d'échange de fichiers avec les systèmes et services Windows. Le protocole est généralement utilisé pour l'échange de fichiers entre systèmes Windows.
6.41.3 (version long terme)
6.45.8 (version long terme)
6.45.9 (version long terme)
6.46.4 (version stable)
6.47.2 (stable)
6.47.3 (stable)
7.0beta5 (bêta)
7.1beta2 et inférieures
Probablement plus de versions publiées avant le 12.09.2020 sont affectées. À l'exception de la version 6.47.0, qui semble avoir été corrigée pendant un cycle de publication en réponse au processus initial de divulgation responsable.
Le serveur SMB plantera après avoir reçu un paquet negotiation-request suivi d'un paquet setup-request modifié.
Pour déclencher la vulnérabilité, le paquet setup-request doit avoir le champ MessageID défini à 1 et le champ SessionID défini à 0. Le service plante car il ne semble pas pouvoir gérer le champ SessionID.
Pour reproduire le bogue de manière fiable, veuillez reconstruire l'environnement de test utilisé fourni dans ce dépôt.
Téléchargez et démarrez l'environnement RouterOs.
Veuillez exécuter le script suivant sur une version fraîchement installée d'Ubuntu 18.04, car le script installera tous les logiciels nécessaires. Le script se termine en fournissant l'IP de la VM RouterOs.
sudo ./setupMikroTikEnvironment.sh
Activer SMB sur RouterOs
Exécutez les commandes suivantes pour activer le service SMB.
telnet <RouterOs IP>
(user: admin, <no password>)
ip smb set enabled=yes
ip smb print
Le service peut être vérifié manuellement depuis le système hôte avec la commande suivante et devrait répondre avec Anonymous login successful tant que le service est en cours d'exécution.
smbclient -N -L \\\\<RouterOs IP>
L'attaque par déni de service
Le script Python3 cve-2020-11881.py valide la disponibilité du service SMB avant et après le processus d'exploitation. Une exécution réussie aboutira à l'indisponibilité du service SMB.
Veuillez exécuter le script comme indiqué ci-dessous.
python3 cve-2020-11881.py --ip <RouterOs Ip>
Tester le service SMB avec la commande suivante échouera.
smbclient -N -L \\\\<RouterOs IP>
Supprimer la VM
Pour supprimer la VM, exécutez simplement le script à nouveau.
Le bogue a été signalé le 06.04.2020 et n'a pas été corrigé le 12.09.2020 malgré de multiples demandes.
Discussion about the 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