Hálózati forgalom ellenőrzése Androidon

Androidos fejlesztőként szeretném ellenőrizni a hálózati forgalmat az Android-eszközömön. A saját alkalmazásokkal, sőt, rengeteg eszköz segít a HTTP(s) forgalom hibakeresésében. Azonban hogyan tudja ellenőrizni más különböző alkalmazásokat, mint pl: Youtube, Twitter, stb.?

Ez a cikk segít ebben a mitmproxy eszköz használatával.

Röviden, a mitmproxy egy interaktív man-in-the-middle proxy a HTTP és HTTPS számára, konzolos felülettel, és ami a legfontosabb, ingyenes!

Elolvashatja ezt a dokumentumot, hogy megértse, hogyan működik.

Előfeltételek

  • Mitmproxy eszköz
  • Android emulátor root jogosultsággal

Fontos megjegyzés: Az emulátor létrehozásakor a Target (android verzió) alatt a “(Google APIs)”-t kell választani, ne a “(Google Play)”-t, különben nem kapunk adb root hozzáférést.

Idea

A mitmproxy CA tanúsítványt manuálisan telepítjük a felhasználó által hozzáadott CA-ként és kész!

Sajnos az Android 7 óta az alkalmazások figyelmen kívül hagyják a felhasználó által hozzáadott CA-kat , kivéve, ha úgy vannak beállítva, hogy használják őket. És a legtöbb alkalmazás nem választja kifejezetten a felhasználói tanúsítványok használatát. Tehát el kell helyeznünk a mitmproxy CA tanúsítványunkat a rendszer tanúsítványtárolójában, mint megbízható CA.

Most kezdjük!

Create mitmproxy certificate

  • Install mitmproxy
brew install mitmproxy
  • Generate certificate
mitmproxy

Rename certificate

  • Enter your certificate folder
cd ~/.mitmproxy/
  • CA Certificates in Android are stored by the name of their hash, egy ‘0’ kiterjesztéssel. Most generáld a tanúsítványod hash-ját
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
  • Például, a kimenet hash_value.Az mitmproxy-ca-cert.cer-t most már átmásolhatjuk a hash_value.0-ba, és a rendszer tanúsítványunk készen áll a használatra
cp mitmproxy-ca-cert.cer hash_value.0

Tanúsítvány beillesztése a rendszer tanúsítványtárolójába

  • Enter emulátor mappát az Android SDK-n belül
cd .../Android/SDK/emulator/
  • Az AVD-k listáját a emulator -list-avds
./emulator -list-avds
  • Android emulátorunk indítása a -writable-system opcióval a íráshoz/system
./emulator -avd <avd_name_here> -writable-system
  • Újraindítsd az adb-t rootként
adb root
  • Remountold a rendszerpartíciót írhatóvá
adb shell "mount -o rw,remount /"
  • Push a tanúsítványt a rendszer tanúsítványtárolójába és állítsuk be a fájlengedélyeket
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
  • Újraindítsuk az emulátort
adb reboot

Most telepítettük a CA tanúsítványt az emulátorra.

Proxy beállítása az emulátoron

  • Nyissuk meg az emulátor beállításait, adjunk hozzá manuális proxyt a 127-es hostnévvel.0.0.0.1 és 8080-as port

Elindítjuk az eszközt és meglátjuk a csodát!

Három eszköz bármelyikét elindíthatod a terminálból:

  • mitmproxy -> interaktív TUI-t ad
  • mitmdump -> egyszerű és egyszerű terminál kimenetet ad
  • mitmweb -> böngésző alapú GUI-t ad

Megnyitom például a Youtube alkalmazást és az alábbi módon figyelem a forgalmat.

  • Futtassa mitmproxy

  • Futtassa mitmweb az API részleteit

.

Voila!

Szólj hozzá!