Inspecteer netwerkverkeer op Android

Als Android ontwikkelaar wil ik het netwerkverkeer op mijn Android toestel inspecteren. Met uw eigen apps, in feite, zijn er een heleboel tools die u helpen debuggen HTTP (s) verkeer. Echter, hoe kun je monitoren andere verschillende apps, zoals: Youtube, Twitter, enz.?

Dit artikel zal u helpen om het te doen met behulp van mitmproxy tool.

In het kort, mitmproxy is een interactieve man-in-the-middle proxy voor HTTP en HTTPS met een console-interface, en het belangrijkste is dat het gratis is!

U kunt dit document lezen om te begrijpen hoe het werkt.

Voorvereisten

  • Mitmproxy tool
  • Android Emulator met root permissie

Belangrijke opmerking: Wanneer u de emulator maakt, moet u “(Google APIs)” kiezen in de Doel (android versie), kies niet “(Google Play)” of u zult niet in staat zijn om adb root toegang te krijgen.

Idea

Het mitmproxy CA certificaat installeren we handmatig als een door de gebruiker toegevoegde CA en klaar!

Treurig genoeg, sinds Android 7, negeren apps door de gebruiker toegevoegde CA’s, tenzij ze zijn geconfigureerd om ze te gebruiken. En de meeste applicaties kiezen er niet expliciet voor om gebruikerscertificaten te gebruiken. Dus moeten we ons mitmproxy CA certificaat in de systeem certificaat opslag plaatsen als een vertrouwde CA.

Nu kunnen we beginnen!

Mitmproxy-certificaat

  • Installeer mitmproxy
brew install mitmproxy
  • Genereer certificaat
mitmproxy

Rename certificaat

  • Voeg uw certificaatmap in
cd ~/.mitmproxy/
  • CA-certificaten in Android worden opgeslagen met de naam van hun hash, met een ‘0’ als extensie. Genereer nu de hash van uw certificaat
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
  • Voorbeeld, de uitvoer is hash_value.We kunnen nu mitmproxy-ca-cert.cer kopiëren naar hash_value.0 en ons systeemcertificaat is klaar voor gebruik
cp mitmproxy-ca-cert.cer hash_value.0

Voeg certificaat in in systeemcertificaatopslag

  • Voeg emulatormap binnen Android SDK
cd .../Android/SDK/emulator/
  • Krijg een lijst van uw AVD’s met emulator -list-avds
./emulator -list-avds
  • Start uw android emulator met -writable-system optie om om te kunnen schrijven naar/system
./emulator -avd <avd_name_here> -writable-system
  • Start adb opnieuw op als root
adb root
  • Mount de systeempartitie als beschrijfbaar
adb shell "mount -o rw,remount /"
  • Push uw certificaat naar de systeemcertificaatopslag en stel de bestandsrechten in
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
  • Reboot uw emulator
adb reboot

Nu hebben we het CA-certificaat op de emulator geïnstalleerd.

Proxy instellen op de emulator

  • Open de instellingen van de emulator, voeg een handmatige proxy toe met hostnaam: 127.0.0.1 en poort 8080

Lanceer de tool en zie de magie!

U kunt een van de drie tools vanaf de terminal starten:

  • mitmproxy -> geeft u een interactieve TUI
  • mitmdump -> geeft u een eenvoudige terminal output
  • mitmweb -> geeft u een browser-gebaseerde GUI

Voorbeeld, ik open de Youtube app en monitor het verkeer zoals hieronder.

  • Run mitmproxy

  • Run mitmweb om de API details te zien

Voila!

Plaats een reactie