Autre API Vero (nouveau reseau social)

Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#1
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 !
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#2
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.
 
Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#3
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.
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#4
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:
Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#5
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.
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#6
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.
 
Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#7
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 !
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#8
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.
 
Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#9
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 ^^
 
Inscrit
3 Janvier 2017
Messages
32
Reactions
1
#10
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 !
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.
 
Inscrit
25 Octobre 2016
Messages
6
Reactions
0
#11
Salut astro.


Comment as-tu fais pour rediriger la connexion de ton mobile vers ton proxy ?
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 :)
 
Inscrit
3 Janvier 2017
Messages
32
Reactions
1
#12
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 :)
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:

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#13
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
 
Haut Bas