La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

La possibilité de déclasser à distance des appareils basés sur RouterOS (Mikrotik) met en péril des centaines de milliers de dispositifs réseau. La vulnérabilité est liée à l'empoisonnement du cache DNS du protocole Winbox et permet de charger un firmware ancien (avec une réinitialisation du mot de passe « par défaut ») ou modifié sur l'appareil.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Détails sur la vulnérabilité

Le terminal RouterOS prend en charge la commande de résolution pour rechercher des DNS.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Cette requĂȘte est traitĂ©e par un fichier binaire nommĂ© resolver. Resolver est l'un des nombreux fichiers binaires connectĂ©s au protocole Winbox de RouterOS. À un niveau Ă©levĂ©, les « messages » envoyĂ©s sur le port Winbox peuvent ĂȘtre redirigĂ©s vers diffĂ©rents fichiers binaires dans RouterOS en fonction d'un schĂ©ma de numĂ©rotation basĂ© sur un tableau.

Par défaut, la fonction de serveur DNS est désactivée dans RouterOS.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Cependant, mĂȘme avec la fonction de serveur dĂ©sactivĂ©e, le routeur maintient son propre cache DNS.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Lorsque nous faisons une requĂȘte en utilisant winbox_dns_request, par exemple, example.com, le routeur mettra en cache le rĂ©sultat.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Puisque nous pouvons spĂ©cifier le serveur DNS par lequel la requĂȘte doit passer, entrer de fausses adresses est trivial. Par exemple, on peut configurer une implĂ©mentation de serveur DNS de Philippe Klaus, pour toujours rĂ©pondre avec un enregistrement A contenant l'adresse IP 192.168.88.250.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    print("---- Réponse:n", reply)
    return reply.pack()

Maintenant, si on recherche example.com avec Winbox, on peut voir que le cache DNS du routeur est empoisonné.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Bien sĂ»r, l’empoisonnement de example.com n’est pas trĂšs utile, car le routeur ne va en fait pas l'utiliser. NĂ©anmoins, le routeur doit se connecter Ă  upgrade.mikrotik.com, cloud.mikrotik.com, cloud2.mikrotik.com et download.mikrotik.com. Et grĂące Ă  une autre erreur, il y a une possibilitĂ© d'empoisonner tous ces derniers simultanĂ©ment.

def dns_response(data):
    request = DNSRecord.parse(data)
    reply = DNSRecord(DNSHeader(
        id=request.header.id, qr=1, aa=1, ra=1), q=request.q)
    qname = request.q.qname
    qn = str(qname)
    reply.add_answer(RR(qn,ttl=30,rdata=A("192.168.88.250")))
    reply.add_answer(RR("upgrade.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("cloud2.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    reply.add_answer(RR("download.mikrotik.com",ttl=604800,
        rdata=A("192.168.88.250")))
    print("---- Réponse:n", reply)
    return reply.pack()

Le routeur demande une autorisation, et nous en fournissons cinq en retour. Le routeur met en cache toutes ces réponses de maniÚre incorrecte.

La vulnérabilité Backport dans RouterOS met en danger des centaines de milliers d'appareils.

Il est évident que cette attaque est également utile si le routeur agit en tant que serveur DNS, car elle permet d'attaquer les clients du routeur.

Cette attaque permet également d'exploiter une vulnérabilité plus sérieuse : effectuer un downgrade ou un backport de la version de RouterOS. L'attaquant recrée la logique du serveur de mises à jour, y compris le changelog, et contraint RouterOS à considérer une version obsolÚte (vulnérable) comme étant actuelle. Le danger ici réside dans le fait qu'en « actualisant » la version, le mot de passe administrateur est réinitialisé à la valeur « par défaut » - l'attaquant peut alors se connecter avec un mot de passe vide !

Lire la vidéo

L'attaque fonctionne parfaitement, mĂȘme si l'auteur met en Ɠuvre plusieurs autres vecteurs, y compris l'insertion d'un backdoor dans le firmware, mais c'est dĂ©jĂ  une technique excessive et son utilisation Ă  des fins illĂ©gitimes est illĂ©gale.

Protection

Désactiver simplement Winbox permet de se protéger contre ces attaques. Malgré la facilité d'administration via Winbox, il est préférable d'utiliser le protocole SSH.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster