Î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 copiamitmproxy-ca-cert.cer
înhash_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!