Une vulnérabilité dans l'interface d'administration web des routeurs Cisco permettrait de leur jouer toute sorte de tours pendables. Au menu des réjouissances : injecter du code dans la mémoire ou changer le mot de passe administrateur. Tout cela sans même nécessiter de compte sur le routeur : il suffit de pouvoir le pinger ! La vulnérabilité n'est malgré tout pas vraiment sérieuse car elle n'est pas exploitable automatiquement. Mais la démonstration est très intéressante.

au sommaire


    logo Cisco Systems

    logo Cisco Systems

    Après le mal au FTP, voici que c'est du côté du web que les routeurs Cisco prennent l'eau. Tout commence par un pirate un peu désœuvré (il avoue lui-même avoir du temps libre et encore quelques bières au frais) et plutôt malin. En explorant son routeur Cisco 3620, il a l'idée saugrenue de voir si des données envoyées arbitrairement sur le port TelnetTelnet du routeur seront lisibles dans la mémoire.

    Pour le vérifier, il utilise la fonction d'administration web de l'équipement, qui permet de vider (dumper) la mémoire à l'écran du navigateur via une page précise de l'interface d'administration. Bilan de cette première approche : n'importe quelle donnée envoyée sur l'invite Telnet du routeur atterrira directement en mémoire, où elle pourra être lue par l'administrateur si ce dernier appelle la page web ad-hoc (pour les curieux, elle se trouve à /level/15/exec/-/show/buffersbuffers/dump).

    L'étape suivante du raisonnement de notre pirate était prévisible : s'il est possible de faire visualiser via un navigateur des données arbitraires (et à l'administrateur, qui plus est !), peut-être une attaque par Cross Site Scripting (XSS) est-elle possible ?

    Et bien elle l'est ! Cela demande bien entendu un peu de magie et pas mal d'essais, car le routeur procède bien à quelques filtrages des données. Mais le pirate est parvenu à construire une chaîne de caractères qui met en œuvre la bonne vieille technique d'attaque IFRAME afin de forcer le navigateur de l'administrateur à faire une requête (HTTPHTTP GET) malgré lui. Et bien entendu, cette requête peut faire tout ce qui est accessible à l'administrateur, notamment changer le mot de passemot de passe principal !

    La démonstration est déjà plutôt amusante en l'état, mais son auteur l'a poussée un peu plus loin : puisque l'attaque repose sur le dépôt d'informations arbitraires dans la mémoire du routeur, peut-être y a-t-il pour les injecter d'autres méthodes que de se connecter à l'invite Telnet ? Il y en a une autre, en effet. Et c'est la plus simple qui soit : le pingping ! Il suffit en effet d'utiliser un outil tel hping, qui permet d'envoyer des paquetspaquets ICMP fabriqués dotés d'un contenu arbitraire (et, cerisecerise sur la gâteau, dont l'adresse source a été maquillée pour un peu plus d'anonymat).

    En arrivant sur le routeur, ces paquets seront traités par la couche TCP/IPTCP/IP de l'équipement, et très probablement ignorés ou répondus par un ping de retour. Mais au passage, leur contenu piégé aura été copié dans la mémoire et sera prêt à être visualisé par l'administrateur.

    Cette vulnérabilité n'est cependant pas aussi sérieuse qu'il n'y paraît. D'abord parce que l'interface d'administration web des routeurs Cisco n'est pas activée par défaut. Et ensuite parce le succès de l'attaque dépend du bon vouloir de l'administrateur, qui doit tout de même aller consulter le contenu de la mémoire de son routeur. Et ce n'est pas franchement un passe-temps répandu chez les administrateurs réseau !

    Il reste que la démonstration est très intéressante, et la lecture de l'exposé du pirate offre une plongée enrichissante et originale dans les attaques par Cross Site Scripting. À recommander aux passionnés !