Android-kehittäjänä haluan tarkastaa verkkoliikennettä Android-laitteessani. Omien sovellusten kanssa on itse asiassa paljon työkaluja, jotka auttavat sinua debuggaamaan HTTP(s)-liikennettä. Miten voit kuitenkin valvoa muita eri sovelluksia, kuten esim: Tämä artikkeli auttaa sinua tekemään sen käyttämällä mitmproxy-työkalua.
Lyhyesti sanottuna mitmproxy on interaktiivinen man-in-the-middle-välityspalvelin HTTP:lle ja HTTPS:lle, jossa on konsolikäyttöliittymä, ja mikä tärkeintä, se on ilmainen!
Voit lukea tämän dokumentin ymmärtääksesi, miten se toimii.
Edellytykset
- Mitmproxy-työkalu
- Android-emulaattori root-oikeuksilla
Tärkeä huomautus: Kun luot emulaattoria, sinun on valittava ”(Google APIs)” kohdekenttään ”(Google APIs)” kohde (android-versio) äläkä valitse kohdekenttään ”(Google Play)”, tai muuten et saa adb-root-oikeuksia.
Idea
Asennetaan mitmproxy CA-varmenne manuaalisesti käyttäjän lisäämänä CA:na ja valmis!
Valitettavasti Android 7:stä lähtien sovellukset eivät huomioi käyttäjän lisäämiä CA:ita , ellei niitä ole määritetty käyttämään niitä. Ja useimmat sovellukset eivät nimenomaisesti valitse käyttäjän varmenteiden käyttöä. Meidän on siis sijoitettava mitmproxy CA -varmenteemme järjestelmän varmennesäilöön luotettavana CA:na.
Aloitetaan nyt!
Luo mitmproxy-varmenne
- Asenna mitmproxy
brew install mitmproxy
- Luo varmenne
mitmproxy
Nimeä varmenne
- Seuraa varmenne-kansiota
cd ~/.mitmproxy/
- CA-varmenteet tallennetaan Androidissa niiden hash-nimen mukaan, jossa on ’0’ laajennusmerkkinä. Luo nyt varmenteesi hash
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.cer | head -1
- Esimerkiksi, tuloste on
hash_value.
Voidaan nyt kopioidamitmproxy-ca-cert.cer
osoitteeseenhash_value.0
ja järjestelmävarmenteemme on valmis käytettäväksi
cp mitmproxy-ca-cert.cer hash_value.0
Sisällytä varmenne järjestelmävarmenteiden varastoon
- Enter Android SDK:n sisällä olevaan emulaattorikansioon
cd .../Android/SDK/emulator/
- Luettelo AVD:stä
emulator -list-avds
./emulator -list-avds
- Käynnistä android-emulaattorisi
-writable-system
-vaihtoehdolla kohdassa jotta voit kirjoittaa/system
./emulator -avd <avd_name_here> -writable-system
- Käynnistä adb pääkäyttäjänä
adb root
- Lisää järjestelmäosio kirjoituskelpoiseksi
adb shell "mount -o rw,remount /"
- Työnnä järjestelmäsi varmenne järjestelmän varmennevarastoon ja aseta tiedoston käyttöoikeudet
adb push ~/.mitmproxy/hash_value.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/hash_value.0"
- Käynnistä emulaattori uudelleen
adb reboot
Nyt olemme asentaneet CA-varmenteen emulaattoriin.
Aseta välityspalvelin emulaattoriin
- Avaa emulaattorin asetukset, lisää manuaalinen välityspalvelin, jonka hostname: 127.0.0.0.1 ja portti 8080
Käynnistä työkalu ja katso taika!
Voit käynnistää terminaalista minkä tahansa kolmesta työkalusta:
- mitmproxy -> antaa interaktiivisen TUI:n
- mitmdump -> antaa pelkän ja yksinkertaisen terminaalitulosteen
- mitmweb -> antaa selainpohjaisen graafisen käyttöliittymän
Avaan esimerkiksi Youtuben sovelluksen ja tarkkailen liikennettä alla olevan mukaisesti.
- Käynnistä
mitmproxy
- Käynnistä
mitmweb
nähdäksesi API:n tiedot
.
Voila!