Inspectați traficul de rețea pe Android

În calitate de dezvoltator Android, vreau să inspectez traficul de rețea în dispozitivul meu Android. Cu propriile aplicații, de fapt, există o mulțime de instrumente care vă ajută să depanați traficul HTTP(s). Cu toate acestea, cum puteți monitoriza alte diverse aplicații, cum ar fi:: Youtube, Twitter, etc.?

Acest articol vă va ajuta să o faceți folosind instrumentul mitmproxy.

Pe scurt, mitmproxy este un proxy interactiv man-in-the-middle pentru HTTP și HTTPS cu o interfață de consolă și, cel mai important, este gratuit!

Puteți citi acest document pentru a înțelege cum funcționează.

Precondiții

  • Strument Mitmproxy
  • Emulator Android cu permisiune de root

Nota importantă: Când creați emulatorul, trebuie să alegeți „(Google APIs)” în Target (versiunea android), nu alegeți „(Google Play)” sau nu veți putea obține acces root adb.

Ideea

În mod normal, instalăm manual certificatul CA mitmproxy ca o CA adăugată de utilizator și gata!

Din păcate, începând cu Android 7, aplicațiile ignoră CA-urile adăugate de utilizator , cu excepția cazului în care sunt configurate să le folosească. Iar majoritatea aplicațiilor nu optează în mod explicit pentru utilizarea certificatelor de utilizator. Așadar, trebuie să plasăm certificatul nostru de CA mitmproxy în magazinul de certificate al sistemului ca o CA de încredere.

Acum să începem!

Crearea certificatului mitmproxy

  • Instalați mitmproxy
brew install mitmproxy
  • Generați certificatul
mitmproxy

Renumiți certificatul

  • Intrați în folderul de certificate
cd ~/.mitmproxy/
  • Certificatele CA în Android sunt stocate după numele hash-ului lor, cu un „0” ca extensie. Acum generați hash-ul certificatului dumneavoastră
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
  • De exemplu, rezultatul este hash_value.Acum putem copia mitmproxy-ca-cert.cer în hash_value.0 și certificatul nostru de sistem este gata de utilizare
cp mitmproxy-ca-cert.cer hash_value.0

Inserați certificatul în magazinul de certificate al sistemului

  • Introduceți folderul emulator din Android SDK
cd .../Android/SDK/emulator/
  • Obțineți o listă cu AVD-urile dvs. cu emulator -list-avds
./emulator -list-avds
  • Porniți emulatorul android cu opțiunea -writable-system din scopul de a scrie pe/system
./emulator -avd <avd_name_here> -writable-system
  • Reporniți adb ca root
adb root
  • Remontează partiția de sistem ca fiind inscriptibilă
adb shell "mount -o rw,remount /"
  • Push your certificatul în stocul de certificate de sistem și setați permisiunile de fișier
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
  • Reporniți emulatorul
adb reboot

Acum am instalat certificatul CA pe emulator.

Setup Proxy on Emulator

  • Deschideți Setări Emulator, adăugați proxy manual cu numele de gazdă: 127.0.0.0.1 și portul 8080

Lansați instrumentul și vedeți magia!

Puteți lansa oricare dintre cele trei instrumente din terminal:

  • mitmproxy -> vă oferă un TUI interactiv
  • mitmdump -> vă oferă o ieșire clară și simplă din terminal
  • mitmweb -> vă oferă o interfață grafică bazată pe browser

De exemplu, deschid aplicația Youtube și monitorizez traficul ca mai jos.

  • Executați mitmproxy

  • Executați mitmweb pentru a vedea detaliile API

.

Voila!

Lasă un comentariu