Autre API Vero (nouveau reseau social)

Discussion dans 'Questions / Réponses' créé par totorinouchet, 11 Avril 2018.

  1. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    Salut tout le monde !

    Il est rare que je poste un message sur un forum mais après pas mal d'heures passées sur mon problème sans résultat, et tout autant d'heures de recherche, je me resigne à demander de l'aide.
    Vous avez sûrement entendu parlé de l'application Vero, le nouveau reseau social sur mobile. Mon but est entre autre de faire un bot dessus. Sachant que c'est une application mobile, le scraping est impossible, du coup j'ai cherché du côté de l'api. Après plusieurs tests, ils semblent n'utiliser que du websocket, les quelques call api que j'ai pu voir sont uniquement pour récupérer des images.
    Evidemment, c'est du WSS. J'ai essayé le MITM, de faire proxy et redirection de la connexion du mobile dessus, avec un certificat lambda, rien du tout, je n'arrive même pas à récupérer la première frame (ça foire au handshake je suppose). L'apk est simple a trouver et décompiler si vous voulez chercher de ce côté.

    Je cherche pas une solution toute faite, seulement un ptit aiguillage sur ce que je peux essayer de faire :D

    Merci d'avance !
     
  2. Brizze

    Brizze Rédacteur

    Inscrit:
    10 Mai 2015
    Messages:
    280
    J'aime reçus:
    28
    C'est quelle language que tu utilises pour dev ton bot ? car si c'est en .Net je connais des libraires et je peux t'orienter vers diverses façon de le dev.
     
  3. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    Salut, merci pour la réponse !

    Je me suis peut être mal exprimé mais je n'ai pas de soucis côté dev, c'est plutôt côté accès a la données, communication avec leur serveur.
    Je suis un (relatif) bon développeur, mais un mauvais hackeur :p.

    Sinon, pour répondre à ta question quand même, je fais du NodeJS majoritairement.
     
  4. Brizze

    Brizze Rédacteur

    Inscrit:
    10 Mai 2015
    Messages:
    280
    J'aime reçus:
    28
    Bah je comprends si tu as l'adresse du serveur distant et que tu n'arrives pas à t'y connecter c'est que c'est plus un problème niveau code nan ?

    Edit : je viens de voir que tu dis WSS donc c'est une connexion SLL (certificat + RSA) tu dois donc retrouver la clef que l'appli stock pour simuler une connexion au serveur.
     
    Dernière édition: 11 Avril 2018
  5. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    Salut salut, j'ai continué pas mal de tests, sans succes. Comme je te disais, malgres l'utilisation d'un proxy, j'arrive à intercepter toutes les requetes http/https, mais pas la connexion WSS. Le problème ne vient pas du certificat.
     
  6. Brizze

    Brizze Rédacteur

    Inscrit:
    10 Mai 2015
    Messages:
    280
    J'aime reçus:
    28
    C'est forcément toi qui fait une erreur quelque part c'est impossible que si tu fais tout comme l'apli que ça fonctionne chez elle et pas chez toi.
     
  7. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    Je pense qu'on s'est pas comprit :p. Je n'essaie pas de me connecter moi même au serveur de l'application, mon but actuel est uniquement de sonder les sockets transitants entre l'appli et le serveur.

    Je récapitule ma démarche. J'ai un proxy sur mon PC, un émulateur avec l'appli, la connexion de l'émulateur est branchée sur le proxy, ce dernier fonctionne puisque j'arrive à intercepter toutes les requêtes http et https (j'ai un certificat trusted fournis par le proxy). Par contre, je n'arrive pas à récupérer la requête de connexion WSS et les frames.

    Pourtant l'appli fonctionne parfaitement, ça signifie que la connexion WebSocket est établie. Je pense donc qu'elle arrive à bypass le proxy.

    Il faudrait que je modifie le fichier de conf host directement sur l'émulateur pour forcer les requêtes vers mon proxy.

    Je vais voir ça lundi :)

    Merci en tout cas de prendre mon problème en considération !
     
  8. Brizze

    Brizze Rédacteur

    Inscrit:
    10 Mai 2015
    Messages:
    280
    J'aime reçus:
    28
    C'est surement du au fait que le webSocket et le http sont 2 protocoles différents et que tu dois sans doute comme tu l'as dit rediriger le http ainsi que le websocket.
     
  9. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    C'est ce que je me disais, du coup j'ai fais une mini app avec du wss pour verifier, et .. j'arrive bien à intercepter la connexion wss et les frames ^^
     
  10. astro05

    astro05 Membre

    Inscrit:
    3 Janvier 2017
    Messages:
    32
    J'aime reçus:
    17
    Comment as-tu fais pour rediriger la connexion de ton mobile vers ton proxy ?

    Effectivement, on a bien deux protocoles distinct, et il est possible de configurer un proxy pour le protocole HTTP et pas pour le protocole websocket.

    Si j'étais toi, j'aurais fais une VM virtualbox avec un accès par pont sur ma machine hôte.

    Avec cette façon, tu es sûr que ta VM passe par ta machine hôte pour tout accès internet et donc en lançant un Wireshark sur ta machine hôte tu devrais voir tout les paquets.
     
  11. totorinouchet

    totorinouchet Membre

    Inscrit:
    25 Octobre 2016
    Messages:
    6
    J'aime reçus:
    0
    Salut astro.


    J'ai essayé plusieurs méthodes :
    1 - Via un emulateur (genymotion surtout), j'ai simplement créé un serveur proxy sur mon pc, et mon emulateur s'y connectait
    2 - Deuxième méthode, redirection de tout le trafic en modifiant le fichier host de mon emulateur.

    J'ai vaguement essayé la méthode connexion par pont et wireshark, mais sans grande conviction. Je vais retenter ça :)
     
  12. astro05

    astro05 Membre

    Inscrit:
    3 Janvier 2017
    Messages:
    32
    J'aime reçus:
    17
    La seconde méthode me paraît pas très fiable, car si ton application passe directement par l'adresse IP, le fichier host ne sera pas consulté.

    Je n'ai pas beaucoup utilisé genymotion, il faudrait que je regarde comment il se configure pour t'en dire plus...

    EDIT : Si ton application fonctionne, c'est que le trafic WebSocket de ton émulateur est bien redirigé vers internet par ta machine hôte.
    Les paquets ne passent peut-être pas par ton proxy logiciel mais tu devrais les voir si tu mes un wireshark sur ta machine hôte (avec quelques filtres pour y comprendre quelque chose ^^)
     
    Dernière édition: 20 Avril 2018
  13. Labo

    Labo Membre Actif

    Inscrit:
    16 Août 2013
    Messages:
    797
    J'aime reçus:
    59
    En fait tu as besoin d'un MITM qui lit le websocket.

    Plutôt que de développer le tien, je te conseille d'utiliser mitmproxy (https://mitmproxy.org/).

    C'est vraiment le meilleur tool pour ça, il est très utilisé dans la communauté et en plus c'est en Python <3
     

En naviguant sur ce site web, vous acceptez les Termes et Conditions d'utilisation. Tout le contenu que vous pourrez trouver sur ce site est soumis à la license Creative Commons.