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 numitmproxy-ca-cert.cer
kopiëren naarhash_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