|
Miranda un outil d'exploitation pour les faiblesses de conception du protocole UPnP
Par Rédaction,
secuobs.com
Le 02/12/2008
Résumé : Miranda est un script en Python qui permet de rechercher et d'identifier les dispositifs qui supportent et activent le protocole UPnP, bien connu pour ses faiblesses de conception. - Lire l'article
Miranda est un script, développé en Python ( lien ), qui vise à faciliter la recherche, l’identification et l’exploitation des périphériques qui supportent le protocole de configuration à distance UPnP ( Universal Plug and Play - lien ) ; un listage des services supportés par ces périphériques est également inclus. En plus de ses fonctions de recherche active et passive comparable à ce que fait un outil comme UPnPscan ( lien ), Miranda permet d’interagir directement avec les périphériques UPnP en présence.
Le protocole UPnP est utilisé en général dans les dispositifs de passerelle Internet ( UPnP IGD – lien ) comme les routeurs ADSL ( lien ). On le retrouve également dans les lecteurs multimédia et autres media centers ( UPnP A/V – lien ) ainsi que dans certaines consoles de jeu de dernière génération comme la X-Box et la Playstation qui représentent des vecteurs d’attaques de plus en plus émergents.
Certains clients Bittorent ( lien ), confrontés aux limitations par défaut de la translation d’adresse IP ( NAT - lien ), ajoutent automatiquement via le protocole UPnP des règles de redirection de port au niveau du routeur afin d’accélérer leur vitesse de téléchargement ; c’est également le cas de l’application Microsoft Live Messenger pour permettre l’échange de fichier et les communications audio et video.
Plus précisément, UPnP est un protocole, développé par Microsoft, qui consiste à simplifier l’ajout et la configuration d’un dispositif au sein d’un réseau. Il se base sur l’utilisation des protocoles SSDP ( Simple Service Discovery Protocol - lien ) et GENA ( Géneric Event Notification Architecture - lien ) ainsi que sur SOAP ( Simple Object Access Protocol - lien ) et le format XML ( Extensible Markup Language - lien ).
Les premiers avertissements sur l’insécurité relative à la conception même de ce protocole ont été lancés en 2006 lors d’une présentation intitulée "Universal Plug and Play - Dead simple or simply deadly ?" ( lien ). Une présentation que l’on retrouvera deux ans plus tard lors du FOSDEM 08 ( lien ) ; l’auteur y constate que très peu de choses ont changé entre temps.
UPnP se veut comme un protocole permettant de configurer à distance des éléments du réseau sans avoir recours à une quelconque forme d’authentification. Lorsqu’il est branché sur un réseau, un périphérique UPnP essaye d'obtenir automatiquement une adresse IP via le protocole DHCP ( lien ) ; si celui-ci n’est pas présent, une adresse est configurée par défaut depuis une plage spécifique. Une fois la configuration réseau effectuée, il essaye de découvrir, via une requête spécifique les autres dispositifs UPnP qui sont disponibles ainsi que les services qui sont accessibles dans leur profil.
Un dispositif UPnP peut demander à un autre dispositif UPnP d’effectuer une action donnée sur ces services disponibles ; une requête SOAP (http + XML) est alors employée afin de décrire les appels de procédure distante ( RPC - lien ) et renvoyer les résultats inhérents à ces requêtes à l’aide de variables de statut. L’accès se fait via une URL spécifique aussi appelée URL de contrôle ; les différentes méthodes SOAP disponibles sur un périphérique sont listées dans son profil via la valeur de la balise SCPDURL, aussi connue sous le nom d’URL de description de service.
Il est ainsi possible, via UPnP et SOAP, de manipuler, sans authentification préalable, la configuration d’un routeur afin d’ajouter des règles de filtrage comme de la redirection de port ( ( outil UPnP Port Forward - lien ) ; il est aussi envisageable de changer la valeur du serveur DNS pour le service DHCP. Le contrôle des DNS et l’activation de redirections peuvent alors permettre la mise en place d’attaques complexes de type Phishing ( voir l’annuaire de la revue de presse - lien ) à l’encontre des services bancaires en ligne, et autres services en tout genre via des serveurs tiers frauduleux.
On peut également récupérer ou modifier des informations sur la configuration des réseaux PPP ( lien ) et sans-fil WI-FI ( voir notre dossier - lien ), ou tout simplement les désactiver. Le routeur peut aussi être configuré de manière à faire office de centre de commande et de contrôle pour un réseau de type Botnet ( lien ) ou de relai type Proxy ( lien ) depuis l’extérieur en positionnant une adresse IP routable externe pour la transparence IP ( lien ) ou la redirection de port via la translation d’adresse NAT.
UPnP pouvait encore se targuer, il y a peu, du fait qu’il fallait être sur le réseau interne en vue d’en exploiter ses faiblesses de conception. C’était sans compter sur les équipes du site GNUcitizen qui, en janvier 2008, ont démontré ( exploiting IGDs remotely via UPnP - lien ) qu’il était possible d’utiliser une faille dans le plugin Adobe Flash afin de reconfigurer des éléments UPnP internes. Cette reconfiguration peut être effectuée via une page malicieusement forgée qui sera visualisée par un navigateur Internet vulnérable aux attaques CSRF ( lien ) et exécuté sur un système hôte faisant partie du même réseau que les dispositifs UPnP.
Pour en revenir à Miranda, ce script propose une invite de commande interactive de type Shell avec un historique des commandes et la visualisation des tâches accomplies. Les différents paramètres des requêtes SOAP peuvent être directement personnalisés par les utilisateurs en plus du contrôle de paramètres standards comme les adresses IP et les ports.
Miranda permet donc entre autres d’envoyer des actions spécifiques vers les services UPNP des périphériques le supportant ; les données issues d’un audit UPnP avec Miranda peuvent être enregistrées vers un fichier externe afin de les analyser lors d’une prochaine session. Il est également prévu que l’utilisateur soit en mesure de contrôler activement les audits en cours.
Miranda ( lien ) a été développé pour une utilisation sous les systèmes d’exploitation de type GNU/LINUX et a été évalué comme fonctionnel avec un noyau 2.6 et la version 2.5 de l’interpréteur de commande Python. La plupart des fonctionnalités devrait cependant être accessible depuis l’ensemble des plateformes qui supportent Python ; Miranda fonctionne par exemple sur un système d’exploitation de type Apple MAC OS X 10.5.5 avec un interpréteur Python en version 2.5.1.
Les postes de travail restent une cible privilégiée encore à l’heure actuelle pour les attaquants mais il y a fort à parier qu’avec la minimalisation des systèmes d’exploitation et l’externalisation des fonctionnalités applicatives, le nombre d'attaques UPnP pourrait bénéficier d’une courbe de croissance exponentielle, et notamment lorsque l’interface web de configuration est accessible depuis l’interface externe de l’IGD.
Les pages ( lien ) et ( lien ) peuvent être également consultées à ce propos ainsi que nos articles sur les attaques Drive By Pharming ( lien ), les backdoors Javascript ( lien ) et les navigateurs Internet en tant que système d’exploitation semi-autonomes ( lien ). Pour plus d'informations, certaines des différentes techniques de compromission UPnP évoquées ici ont déjà été détaillées par le cabinet de conseil et d'audit spécialisé en sécurité informatique Xmco Partners ( lien ).
Source : Security Database Tools Watch ( lien )
- Article suivant : Squirtle un outil pour la collecte de valeurs de hachage NTLM via une faille XSS
- Article précédent : Pramana, un système de CAPTCHA invisibles basé sur l'analyse comportementale
- Article suivant dans la catégorie Outils : Squirtle un outil pour la collecte de valeurs de hachage NTLM via une faille XSS
- Article précédent dans la catégorie Outils : Mina un outil de dé-obfuscation pour les codes Javascript
Mini-Tagwall des articles publiés sur SecuObs : | | | | sécurité, exploit, windows, attaque, outil, microsoft, réseau, audit, metasploit, vulnérabilité, système, virus, internet, usbsploit, données, source, linux, protocol, présentation, scanne, réseaux, scanner, bluetooth, conférence, reverse, shell, meterpreter, vista, rootkit, détection, mobile, security, malicieux, engineering, téléphone, paquet, trames, https, noyau, utilisant, intel, wishmaster, google, sysun, libre |
Mini-Tagwall de l'annuaire video : | | | | curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit, exploit, lockpicking, linux, attack, wireshark, vmware, rootkit, conference, network, shmoocon, backtrack, virus, conficker, elcom, etter, elcomsoft, server, meterpreter, openvpn, ettercap, openbs, iphone, shell, openbsd, iptables, securitytube, deepsec, source, office, systm, openssh, radio |
Mini-Tagwall des articles de la revue de presse : | | | | security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone, server, inject, patch, apple, twitter, mobile, virus, ebook, facebook, vulnérabilité, crypt, source, linux, password, intel, research, virtual, phish, access, tutorial, trojan, social, privacy, firefox, adobe, overflow, office, cisco, conficker, botnet, pirate, sécurité |
Mini-Tagwall des Tweets de la revue Twitter : | | | | security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall, network, twitter, vmware, windows, microsoft, compliance, vulnerability, python, engineering, source, kernel, crypt, social, overflow, nessus, crack, hacker, virus, iphone, patch, virtual, javascript, malware, conficker, pentest, research, email, password, adobe, apache, proxy, backtrack |
|
|
|
|
|