NewbieContest

Divers => Hacking => Discussion démarrée par: Løcki le 02 Juillet 2013 à 18:26:05



Titre: [Android] Sniff d'une application
Posté par: Løcki le 02 Juillet 2013 à 18:26:05
Bonjour à tous,

Je chercherai une app ou autre me permettant de sniffer l'activité réseau d'une application installée sur mon android (rooté).
J'ai essayé wireshark mais on ne peut pas définir une seule application.

Je ne sais pas si c'est possible... car je voudrais savoir que fait une de mes applications et pas l'entier du téléphone (sinon je n'arrive pas à trouver mon app dans le pcap).

Merci d'avance


Titre: Re : [Android] Sniff d'une application
Posté par: _o_ le 02 Juillet 2013 à 21:16:20
je voudrais savoir que fait une de mes applications et pas l'entier du téléphone

Tcpdump/wireshark t'affichent les paquets qui passent, mais ceux-ci ne sont pas marqués par l'application qui les génère (ou qui va y répondre). Ce que tu demandes n'est tout simplement pas possible.


Titre: Re : [Android] Sniff d'une application
Posté par: the lsd le 03 Juillet 2013 à 09:10:58
Pas avec wireshark en tout cas. Il y a peut être moyen de récupérer les paquets par appli. Windows peut bien le faire avec Network Monitor.

Enjoy

The lsd


Titre: Re : [Android] Sniff d'une application
Posté par: Løcki le 03 Juillet 2013 à 19:17:08
Merci pour vos réponses  =).

C'est bien ce qu'il me semblait ...
Donc je suis obligé d'utiliser wireshark et de trier "manuellement" les différents paquets pour savoir.

Je vais jeter un coup d'œil à Network Monitor.


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 03 Juillet 2013 à 23:38:21
Salut le moyen le plus simple pour cela, c'est de définir un proxy sur ton téléphone Android au niveau de  ta connexion wifi.

Et tu installe sur ton pc une application qui sniffe en simulant un proxi comme Fiddler
(y a une option a activer pour accepter les connections d'autres pc dans options)
et tu verra tous le trafic passe over http :-) en json bien souvent.

Ça m'a servi bien souvent pour des développement sur des Andoid ou Wndows phone.


Titre: Re : Re : [Android] Sniff d'une application
Posté par: _o_ le 04 Juillet 2013 à 06:39:07
le moyen le plus simple pour cela, c'est de définir un proxy sur ton téléphone Android au niveau de  ta connexion wifi.

Le proxy ne va pas trier les paquets par appli non plus.


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 04 Juillet 2013 à 08:02:35
Pas par application mais par site de destination, ce sera pareil. Essaye Fiddler c'est un superbe outils de monitoring web :-)
Gratuit qui plus est. Il trace et affiche l'ensemble des connections http. Tu peux ensuite les modifier les rejouer etc ... pratique en tous cas pour pas mal de challenge. C'est un peu comme CharlesProxy.

Sinon tu peux toujours avec whireshark (en faisant du Man In Middle ou pas selon ta config reseau) mais vu que les communication des applications sur mobiles sont en http, il faudra reconstruire toutes les trames vu qu'elles seront fragmentés (HTTP Reconstruct)

Essaye fiddler avec ton Android tu verras.


Titre: Re : [Android] Sniff d'une application
Posté par: Løcki le 04 Juillet 2013 à 09:06:40
J'ai essayé avec wireshark mais les communications de mon app passent en HTTPS. Je me suis donc cassé les doigts un moment pour dl le certificat et essayé de déchiffrer le tout (j'ai du arreté, il était trop tard ... ;)).

Je vais essayer ce soir Fiddler et d'après ce que j'ai vu, ça à l'air plus simple pour déchiffrer le HTTPS.

Je vous tient au courant :)


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 04 Juillet 2013 à 09:14:08
Avec Fiddler tu a une option pour décrypter les flux SSL, comme il fait l'intermédiaire avec ton appareil, il envoi un certificat factice a ton navigateur ou ton application.


Titre: Re : Re : [Android] Sniff d'une application
Posté par: _o_ le 04 Juillet 2013 à 21:49:54
Pas par application mais par site de destination, ce sera pareil.

C'est pas pareil, non. Ça dépend de l'appli, évidemment.

Avec Fiddler tu a une option pour décrypter les flux SSL, comme il fait l'intermédiaire avec ton appareil, il envoi un certificat factice a ton navigateur ou ton application.

Ça marchera seulement si l'appli ne vérifie pas le certificat, et dans ce cas on se demande bien l'intérêt d'utiliser HTTPS, ou si l'application avertit l'utilisateur du certificat vérolé mais l'autorise à forcer quand même.


Titre: Re : [Android] Sniff d'une application
Posté par: Løcki le 05 Juillet 2013 à 08:33:32
Alors, j'ai essayé pendant un moment hier soir avec Fiddler.
  • Installer Fiddler
  • Ajouter le certificat sur l'Android (http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigureForAndroid (http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigureForAndroid)) et configurer le WiFi de mon Android pour passer par le proxy
  • Modifier les options de Fiddler pour déchiffrer le trafic HTTPS
  • Fermer toutes les applications sur mon Android (pour pas "polluer" mon scan)  =)

J'ai bien réussi à capturer des paquets mais pas ce que je veux....
Je m'explique un peu mieux. Mon application fonctionne comme Whatsapp, mais quand j'envoie un message depuis mon app, je ne récupère rien sur Fiddler (mais j'ai capté la connexion de l'app au serveur à son lancement).

J'ai ensuite essayé de sniffer Whatsapp, mais toujours le même constat (pas de paquets récupérer quand j'envoie ou que je reçois).

Avez-vous des idées ?


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 05 Juillet 2013 à 10:41:17
Essaye peut-être de désactiver le 3G de ton tel ou enlever ta carte SIM pour que tous passe par le wifi


Titre: Re : [Android] Sniff d'une application
Posté par: Løcki le 05 Juillet 2013 à 11:42:44
Ce serait bizarre que ça passe par la 3G ou autres ... ?!?

Bref, je vais quand même suivre tes indications et le faire ce soir :)


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 05 Juillet 2013 à 12:39:34
Tu peux aussi installer un device virtuel Android sur ton pc et configurer sa connection via le proxy, puis installer ton APK. Tous cela est dans le SDK d'Android.

Ta essayé de couper fiddler ou la connexion de ton pc, voir si l'application ne fonctionnait plus ?


Titre: Re : [Android] Sniff d'une application
Posté par: _o_ le 05 Juillet 2013 à 18:51:56
De mémoire, la configuration d'un proxy sur une connexion WIFI Android ne sera pas forcément prise en compte par les applications mais je n'arrive pas à retrouver où j'ai lu ça.

En tout cas, sur mon Android 4.1.2, la boite de dialogue indique « Le proxy HTTP est utilisé par le navigateur mais ne peut pas être utilisé par d'autres applications » (c'est un problème de traduction : «may not be used by the other apps»). Ça confirme que si l'appli n'est pas décidée à aller regarder la conf proxy, ben...

Bref, wireshark, quoi.


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 05 Juillet 2013 à 19:49:21
Ha mince, mais si un pare-feu interdit les connections direct a internet l'application ne fonctionnera pas alors.
Autrement si l'application existe aussi sur Windows phone (y a aussi un émulateur dispo) je peux te confirmer que sur cette plateforme ça fonctionne. Je vais essayer de mon coté sur mon tel (idem 4.1.2), c'est Whatsapp que tu veux tracer ?
l'API de communication a l'air publique et décrite :  http://openwhatsapp.org/develop/

Si tu est root sur ton android :  https://sites.google.com/site/androidarts/packet-sniffer

Je viens d'essayer sur une application en http avec l'émulateur du SDK ça marche bien je capture les requettes. Il faut lancer l'émulateur en ligne de commande >>
emulator -avd MonoForAndroid_API_14 -http-proxy http://127.0.0.1:8888


Titre: Re : Re : [Android] Sniff d'une application
Posté par: _o_ le 05 Juillet 2013 à 21:00:43
Si tu est root sur ton android :  https://sites.google.com/site/androidarts/packet-sniffer

Basé sur tcpdump. Ça ne pourra pas plus filtrer les flux par applications.


Titre: Re : [Android] Sniff d'une application
Posté par: dauphinus le 05 Juillet 2013 à 22:55:17
Si tu veux utiliser WireShark :

Résassembler les fragements http : http://wiki.wireshark.org/TCP_Reassembly
Décrypter le SSL : http://htluo.blogspot.fr/2009/01/decrypt-https-traffic-with-wireshark.html



Titre: Re : [Android] Sniff d'une application
Posté par: courte66 le 07 Juillet 2013 à 20:48:17
Comme te l’a laissé entendre dauphinus, une très bonne approche consiste a récupérer l'APK de ton application depuis ton téléphone puis de l'installer sur VM Android "propre". À partir de là, tu analyses le trafic sortant via un proxy de ton choix (Wireshark, Burp, ZAP, etc.) ; mon choix personnel c'est Burp mais la chacun a ses préférences.

Cependant, avant de pouvoir analyser le trafic SSL, tu vas devoir ajouter a la liste des certificats de confiance celui de ton proxy. Un peu de documentation pour y arriver :

http://carnal0wnage.attackresearch.com/2012/05/update-android-ssl-cert.html
http://portswigger.net/burp/help/proxy_options_installingCAcert.html

Voilà comment j'ai pu procéder assez simplement pour analyser plusieurs applications Android.

here's my 2 cents :)


Titre: Re : [Android] Sniff d'une application
Posté par: Løcki le 13 Juillet 2013 à 16:03:27
Je reviens vers vous après plusieurs jours d'absences.

J'ai installé ProxyDroid et je l'ai configuré pour que seulement mon app soit redirigée vers mon proxy.
Dans ProxyDroid, j'ai mis le type de proxy à "HTTP" mais le problème c'est que mon application ne marque que je ne suis pas connecté à Internet (du faite que ProxyDroid oblige l'app à passer par mon proxy). J'ai essayé de changer le type de proxy (je les ai tous essayé) mais je n'ai toujours pas de meilleurs résultats.
(En type "HTTP", je sniff quand même des requêtes et je peux envoyer des messages mais ceux-ci ne sont pas capturés)

Est-ce que vous avez d'autres idées (à part lancer depuis une VM) ??