Annonce

Réduire
Aucune annonce.

Hackez Facebook Messenger (démonstration et exploitation avec BurpSuite)

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • News Hackez Facebook Messenger (démonstration et exploitation avec BurpSuite)

    Récemment, une importante faille de sécurité a été trouvée dans Facebook Messenger.
    Cette dernière a été dévoilée par un chercheur en sécurité informatique du nom de Roman Zaikin.

    Cette faille permet de :
    • Modifier un message envoyé sur le chat
    • Accéder à l'historique de la conversation
    • Modifier un lien ou tout autre fichier lié à une conversation
    • ...


    Dans un monde où Messenger Facebook est utilisé dans toutes les situations personnelles mais également professionnelles, cette faille représente une réel problème.
    En effet, elle pourrait permettre à un hacker de passer un contrat puis de changer les termes de ce dernier afin de mieux le rompre.
    Toute personne malintentionnée pourrait ainsi profiter et extorquer à volonté d'autres personnes ou sociétés.

    La faille
    La faille est liée à un champs de la requête envoyée au serveur de Facebook et plus précisément à cette adresse www.facebook.com/ajax/mercury/thread_info.php.

    Ce champs, c'est le message_id.
    Il représente une identifiant unique du message dans la conversation.

    En effet, lorsque vous envoyez un message sur Facebook, le SI de la société doit donner un identifiant à ce dernier.
    Celui-ci permet de l'identifier formellement et donc de le retrouver de façon plus aisée.
    Cet identifiant devrait pour bien faire rester secret.

    Cependant, si l'on envoie le message à l'adresse www.facebook.com/ajax/mercury/thread_info.php cette dernière nous répond des informations en JSON contenant le message_id.

    Une fois celui-ci obtenu, on peut renvoyer vers Facebook les requêtes initiales modifiées (avec les modifications que l'on souhaite) agrémentées du message_id.
    Le système informatique se chargera alors de modifier le message dans les base de données de Facebook.
    Mais, encore mieux, le message modifié sera également envoyé en push à tous les comptes et appareils connectés à la conversation de telle sorte que ceux-ci prendront également en compte cette modification qui passera donc totalement inaperçu.

    Exploitation de la faille

    Pour exploiter cette faille comme le chercher en informatique qui l'a dévoilée, nous allons utiliser BurpSuite selon l'architecture suivante :


    Quelques explications s'imposent toutefois

    Qu'est-ce que BurpSuite ?
    BurpSuite est une application Java permettant le test de vulnérabilité des applications Web.
    Elle est composée des modules suivants :
    • Burp Proxy : Un serveur proxy permettant d'intercepter le traffic réseau (pour les têtes en l'air voici un <a href="http://www.spidermind.be/info/anonyme77/qu-est-ce-qu-un-serveur-proxy">petit rappel</a>)
    • Burp Spider : Un robot d'indexation pour découvrir la structure des sites webs
    • Burp Intruder : Un outil permettant de faire des tests d'intrusion sur certains types de vulnérabilités
    • Burp Repeater : Un répéteur HTTP afin de renvoyer une ou plusieurs des requêtes HTTP captées via Burp Proxy


    Burp Suite est donc un outil assez complet et puissant pour les tests d'intrusion sur les applications web.
    Un des meilleurs d'après moi.

    Il dispose d'une licence gratuite permettant l'utilisation de certains des modules tels que Burp Proxy et Burp Repeater.
    De plus, comme il est écrit en Java, Burp est totalement multi-plateforme.

    Utiliser BurpSuite
    Une fois BurpSuite téléchargé et lancé, son proxy devrait déjà être lancé et en mode interception.
    Vous devez donc configurer votre navigateur pour qu'il utilise ce proxy.
    Pour ce faire, référez vous au guide utilisateur de votre navigateur.
    Voici un lien pour Chrome.

    Après avoir effectué les opérations et si BurpSuite est en Intercept On, vous devriez voir les requêtes et les réponses dans cet outils.
    Vous aurez alors la possibilité de les renvoyer ou de les forwarder grâce à BurpRepeater.

    Envoyons un message et modifions le !
    Comme cette faille a maintenant été patchée, je vais me contenter de reprendre les screenshots faits par le chercheur à l'origine de la faille.

    Après avoir envoyé un message, vous devez voir une requête envoyée telle que celle-ci :


    Comme celle-ci contient le message_id, vous pouvez alors la modifier de la sorte :


    Et enfin l'envoyer à l'URL : www.facebook.com/ajax/mercury/thread_info.php
    Cette page se charge alors de modifier le message dans la conversation de votre interlocuteur, mais pas dans la votre !

    Pourquoi cette faille est-elle dangereuse ?
    Cette faille est potentiellement très dangereuse.
    En effet, elle permettrait à toute personne mal intentionnée de :
    • Modifier un lien le faire pointer ailleurs (un malware, ransomware, à vous de voir)
    • Modifier un message afin de poser préjudice à la réputation d'une autre personne
    • Modifier les images liées dans le même but
    • Modifier les termes d'un contrat pour mieux le rompre et mieux nuire
    • ...


    Les possibilités sont infinies et un ingénieur social aurait certainement bien plus d'idées d'exploitation que moi.
    Comme on dit : The Sky is the limit

    Quid du cryptage dans tout ça ?
    En effet, Facebook est protégé par ses certificats SSL non ?
    Alors, comment pourrait-on modifier mes messages ?

    Et bien c'est là que se trouve toute la magie !
    Quand vous faites, la requêtes, n'oubliez pas que vous ne la faites que virtuellement, c'est en fait le proxy qui s'en charge.
    C'est donc lui qui ouvre la connexion aux serveurs de Facebook. Il peut donc voir les données envoyées en clair.
    Le proxy peut tout voir. Même et en particulier en connexion en HTTPS !

    La conclusion de tout ça
    Le point positif c'est que Facebook a directement pris cette faille très au sérieux et l'a corrigée dans les plus brefs délais.
    La messagerie Facebook serait donc apparement à nouveau sécurisée.

    Je pense que si l'on doit retenir trois points de tout ça c'est :
    • N'utilisez jamais que des proxy en lesquels vous avez une confiance absolue
    • Facebook prend la sécurité de ses utilisateurs au sérieux
    • Il ne faut jamais oublier d'auditer les protocols réseau utilisés


    Merci pour votre lecture.
    N'hésitez pas à poser des questions si vous en avez !
    Je reste à votre entière disposition.

    Sources :
    http://blog.checkpoint.com/2016/06/0...maliciouschat/
    http://www.news.com.au/technology/se...af6a4f4ea63fa5
    https://www.facebook.com/notes/faceb...10578262289730
    Dernière modification par Anonyme77, 27 juin 2016, 11h51.

  • #2
    Voilà une news + explication qui est vraiment intéressante et dans le fil de l'histoire de ce forum, c'est à dire savoir et comprendre. Merci Ano et j'espère que d'autres suivront, en tout cas je trouve que là c'est du GOOD

    Commentaire


    • #3
      Merci pour cet article instructif et précis. Du travail high level comme toujours A77

      Commentaire


      • #4
        Salut

        C'est vraiment cool ton explication Anonyme77

        En fait, il y'a certaines questions que je souhaiterais poser :
        - la configuration du navigateur en précisant Burp Suit comme serveur proxy, est-elle faite en https (proxy ssl)
        ou en http ?
        -> si en http, comment Burp suite va t-il intercepté les requêtes https ? étant donné que pour déchiffrer, il doit connaitre la clé publique du client (navigateur) et aussi via le certificat le navigateu doit connaitre sa clé publique. Si c'est le cas alors cela veut dire burp suite envoie son certificat au navigateur et c'est son utilisateur qui accepte ce certificat ou alors c'est autre chose.
        -> si en https, alors ça sera Burp suite qui négociera les rêquetes https avec le serveur (sauf si le client le laisse faire). Bref pour une requête https, est ce que Burp suite pourra lire le contenu du message ? c'est à dire pour une personne qui saisit pa exemple un url du genre : https://monserveur.ext
        N'oublions c'est généralement le http le protocole par défaut.

        Bref SVP essayez de me détailler cela selon le protocole ssl

        MERCI BEAUCOUP
        Dernière modification par rodrigue daniel, 29 juin 2016, 18h03.
        Passionné par la Sécurité Informatique.
        Le véritable ennemi de la connaissance n'est pas l'ignorance mais l'illusion de la connaissance.
        La quête de la connaissance passe d'abord par l'humilité et ensuite la détermination.

        Commentaire


        • #5
          En fait, tu dois bien te rendre compte qu'il y a deux connexions

          Navigateur <-------conn1-------> Burp <-----------conn2---------> Facebook.com

          De là, je pense (sans en être certain) que ton navigateur envoie les requêtes en HTTP vers le proxy.
          Ce n'est pas vraiment dérangeant si tu utilises burp sur ta machine. La connexion passera via la boucle locale et personne ne pourra donc sniffer ta connexion.

          Par contre, si tu utilises burp sur une autre machine la connexion pourra être sniffée mais encore une fois je ne suis pas certain de savoir si elle est sécurisée ou pas.

          Dans tous les cas, ton navigateur envois en fait la connexion vers burp plutôt que vers le vrai serveur et c'est brup qui va faire la connexion vers le vrai serveur.

          C'est donc lui qui va négocier la connexion HTTPS avec le serveur (disons de facebook). Il aura donc le traffic en clair avant de te l'envoyer (en chiffré ou pas comme je te l'ai expliqué plus haut).

          Commentaire


          • #6
            Par défaut, lorsque l'on navigue sur un site HTTPS via Burp, le Proxy génère un certificat SSL pour chaque hôte, signé par son propre certificat d'autorité de certification (CA). Ce certificat est généré par Burp puis est exécuté, et stocké localement. Pour utiliser Burp proxy le plus efficacement possible avec les sites Web HTTPS, il faut installer le certificat de CA de Burp comme une racine de confiance dans le navigateur.

            L’ensemble fonctionnera comme la tunnellisation dont je faisais référence dans mes précédents tutoriels. On va se servir de Burp pour naviguer, il sera celui qui va générer le trafic HTTPS à notre place. Burp est configuré pour acheminer le trafic à travers votre tunnel SSH sortant. Burp génère un certificat CA unique pour chaque installation, et la clé privée de ce certificat est stockée sur l'ordinateur, dans un emplacement spécifique de l'utilisateur.


            Donc hormis les données en clair, il sera difficile même en Man in the Middle attack de s'approprier le CA.
            Dernière modification par DreAmuS, 30 juin 2016, 14h05.

            Commentaire


            • #7
              Salut

              Merci DreAmuS.
              Au fait ce n'est pas plutôt une tunnelisation ssl car tu as parlé de tunnelisation ssh (sauf si je me trompe).
              Donc j'avais raison : il faut vraiment que l'utilisateur accepte via son navigateur le certificat de Burp Suite qui contient sa propre clé publique car le navigateur ne fait pas confiance au CA de Burp (c'est très logique).
              En ce qui concerne la sécurité avec Burp suite comme tu le préconises DreAmuS, un pirate peut se positionne entre le serveur proxy ssl et le serveur web. Il va échanger sa clé publique (key_p) avec celui de Burp Suite (key_b) et faire de même avec le serveur web (key_w). Car n'oublions pas dans une communication ssl, le client chiffre avec la clé publique du serveur et vice-versa. Donc Burp Suite va chiffrer le message avec la clé publique du pirate (key_p) pour l'envoier le message, ensuite le pirate récupère et déchiffre avec sa clé privée, puis le processus est repris de la façon dans le chemin inverse et aussi dans les deux sens entre le serveur et le pirate. Bon STP explique moi un peu comment contrer ça ?

              MERCI
              Passionné par la Sécurité Informatique.
              Le véritable ennemi de la connaissance n'est pas l'ignorance mais l'illusion de la connaissance.
              La quête de la connaissance passe d'abord par l'humilité et ensuite la détermination.

              Commentaire


              • #8
                Alors je vais faire bref. Dans ce cas (burp suite), oui c'est SSH que je préfére, oui il faut config le navigateur pour burp HTTPS et pour ce qui est de la sécurité BURP comme je l'ai dit fournis un CA propre et unique au Pc, donc il ne peut être relayé et pirater par MITM surtout que SSH est une véritable plate-forme de sécurisation pour toutes formes de communications électroniques.

                Il faut reconnaître que l'ensemble permet donc de travailler all secure.
                Dernière modification par DreAmuS, 30 juin 2016, 18h22.

                Commentaire

                Chargement...
                X