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.
Azmitmproxy-ca-cert.cer
-t most már átmásolhatjuk ahash_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!