dimanche 7 août 2016

Tu me suis je te suis ;)

Créer un tracker maison? Ok!

Je m'intéresse depuis quelques temps au applications que nous trouvons dans nos mobiles, il faut savoir que certaine d'entre elle laisse transiter des informations intéressantes telles que des positions de latitude et de longitude.

1) Analyse du traffic

La première étape consiste à analyser les requêtes reçus/envoyé par notre mobile, pour cela je me suis renseigné sur les applications de type " Rencontre par le biais de la géo-localisation ".

J'ai sélectionné plusieurs applications connues, je ne divulguerais pas les noms ici mais, elles sont assez simples à trouver sur le store de votre mobile.

Pour cette analyse j'ai décidé d'utiliser l'outil " Burp suite " disponible en version gratuite sur internet ou directement installer dans la distribution " Kali linux ".

Nous allons donc utiliser le proxy disponible dans Burp et installer sont certificat SSL dans notre mobile pour pouvoir analyser les paramètres envoyés par l'application sélectionné.


Il faut bien évidemment bien isoler les requêtes pour éviter d'être floodé par toute les autres requêtes de notre mobile.

Maintenant il nous reste plus cas analyser les requêtes de notre application et trouver les plus importantes à savoir en général :

- Envoie de la géo-localisation.
- Récupération des personnes proches.
- Récupération de la dernière personne vue.

2) Fonctionnement de l'application

Après avoir trouvé ces requêtes il nous faut trouver le moyen d'authentification qu'utilise notre application pour pouvoir transmettre les même commande via une interface web ( Pour le mieux ).

Grace à notre outil ( Burp Suite ) nous pouvons copier la requête en format CURL  (copy  as curl command ) ce qui peut nous être utile.


Dans cet exemple la requête envoie le meme résultat  en utilisant CURL et notre mobile, ce genre d'applications utilise en général un token renvoyé par l'api de Facebook Login afin de vous identifier donc si concrètement on ne déconnecte/re-connecte pas le compte le token reste le même.  

Donc pour le moment l'authentification fonctionne via l'user-agent, et l'autorisation token de Facebook, ce qui peut nous laisser une large manoeuvre d'action si nous souhaitons implémenter une surveillance un peux plus massive via une interface web.

Après avoir trouvé la requête qui récupère notre positionnement j'ai constaté qu'il y avait dans les paramètre deux champs très significatifs ( Lat, Lng ) avec à l'intérieur nos données de localisation, il m'a suffi de les modifier et d'attendre une dizaine de minutes pour envoyer la requête ce qui a effectué mon changement de localisation d'après le retour du serveur.

A partir de la nous pouvons donc imaginer une application web avec plusieurs comptes positionné a divers endroits d'une ville, ce qui aura pour but de pouvoir tracer un itinéraire complet des personnes croisées et de pouvoir anticiper leur mouvement.

3) Mise en place d'un système de surveillance

Après quelques jours de recherche je me suis mis au code avec pour objectif de créer une base de données de déplacement dans une ville que j'ai choisie par hasard afin de faire mes tests.

J'ai donc fait plusieurs systèmes :

1 - Une carte avec la positionnement des personnes croisé.
2 - Une page plus explicite pour chaque personnes ( Date de croisement, age ... )
3 - Une page ou je gère mes comptes dans l'application.  


J'ai aussi crée un système d'itinéraire complet, il permet de tracé un itinéraire de déplacement si la personne croisée a déjà été croisée dans le passé à un autre positionnement.


jai positionné un compte au centre de la ville un autre à l'entrée et le suivant à la sortie, ce qui a données en quelques heures une 50ène de données.