Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
— |
android:https [07.04.2012 15:04] (aktuální) wladik vytvořeno |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== MITM: Sniffování HTTPS ====== | ||
+ | Pro sniffování HTTPS komunikace se hodí program [[http://www.charlesproxy.com/|Charles Proxy]]. | ||
+ | |||
+ | Jeho kořenový certifikát je potřeba dostat do emulátoru mezi uznávané certifikáty, což se provede pomocí změny system.img romky. Postup funguje u verze 2.2, u verze 4.0 jsem nedošel do cíle, ale jít by to mělo taky. | ||
+ | |||
+ | Stručný postup: | ||
+ | - Make sure your android instance's sdcard partition is large enough to hold the entire /system (its ~100M) 200M will do. | ||
+ | - Pull out the cacerts.bks file | ||
+ | - Add the certificate to it | ||
+ | - Push it back | ||
+ | - Make it persistent (so it works when the instance reboots) | ||
+ | |||
+ | Pozn: **xda22** je jméno emulátoru. | ||
+ | |||
+ | Podrobně: | ||
+ | * spustit emulátor s parametrem partition size: <code>emulator -avd xda22 -partition-size 128</code> | ||
+ | * získat soubor s certifikáty: <code>adb pull /system/etc/security/cacerts.bks cacerts.bks</code> | ||
+ | * přidat vlastní certifikát: <code>keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias somealias -file charles-proxy-ssl-proxying-certificate.crt -noprompt</code>. Pokud to dobře proběhlo, tak to potvrdí hláška <code>Certificate was added to keystore</code>. | ||
+ | * je potřeba mít z [[http://www.bouncycastle.org/latest_releases.html]] resp. přímo [[http://www.bouncycastle.org/download/bcprov-jdk16-145.jar]] jar soubor nakopírovaný do **C:\Program Files (x86)\Java\jre6\lib\ext**. | ||
+ | * charles-proxy-ssl-proxying-certificate.crt certifikát je v adresáři kam se instaloval v podsložce **docs/**. | ||
+ | * pro vráceni upraveného souboru prvně potřebujem přemountvoat pro zápis: <code>adb remount</code> | ||
+ | * nastavit práva: <code>adb shell chmod 777 /system/etc/security/cacerts.bks </code> | ||
+ | * nahrát soubor zpět: <code>adb push cacerts.bks /system/etc/security/</code> | ||
+ | * a nyní musíme zajistit, aby tento upravený soubor zůstal i po restartu emulátoru (a bez restartu se ten soubor nenačte a nebude používat): | ||
+ | * potřebujeme prvně stáhnout soubor **mkfs.yaffs2.arm** z [[http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.arm&can=2&q=]] | ||
+ | * nahrát ho do emulátoru: <code>adb push Downloads/mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2</code> | ||
+ | * povolit execute oprávnění: <code>adb shell chmod 777 /data/data/temp/mkfs.yaffs2 </code> | ||
+ | * spustíme si shell: <code>adb shell</code> | ||
+ | * a v něm provedeme: <code>/data/data/temp/mkfs.yaffs2 /system /sdcard/system.img </code> | ||
+ | * po vytvoření souboru z něj vyskočíme pomocí <code>quit</code> | ||
+ | * z emulátoru dostat system.img: <code> adb pull /sdcard/system.img system.img</code> | ||
+ | * zavřít emulátor | ||
+ | * překopírovat system.img do složky kde jsou zbylé soubory daného emulátoru, tj, C:\users\user\.android\22xda | ||
+ | * nakonec spustit emulátor s nastavenou proxynou: <code>emulator -avd xda22 -http-proxy http://yourinterfaceip:8888</code> | ||
+ | |||
+ | ===== nastavení charles proxy ===== | ||
+ | HOST - Machine running Charles and hosting the proxy | ||
+ | CLIENT – User’s machine generating the traffic you will capture | ||
+ | |||
+ | Host Machine | ||
+ | - Proxy -> Proxy Settings -> check “Enable Transparent HTTP Proxying” | ||
+ | - Proxy -> Proxy Settings -> SSL TAB -> check “enable SSL Proxying” | ||
+ | - Proxy -> Proxy Settings -> SSL TAB -> click Add button and input * in both fields | ||
+ | - Proxy -> Access Control Settings -> Add your local subnet (ex: 192.168.2.0/24) to authorize all machines on your local network to use the proxy from another machine | ||
+ | - It might be advisable to set up the “auto save tool” in charles, this will auto save and rotate the charles logs. http://www.charlesproxy.com/documentation/tools/auto-save/ | ||
+ | |||
+ | Client Machine: | ||
+ | - Install and permanently accept/trust the charles SSL certificate http://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ | ||
+ | |||
+ | zdroj: | ||
+ | - [[http://fas.mide.dk/2011/11/make-android-emulator-ready-for-ssl.html]] | ||
+ | - [[http://geekcubo.com/2011/08/android-citrix-receiver-import-private-root-certificate/]] | ||
+ | - [[http://brakertech.com/capture-https-traffic-remotely-with-charles/]] |
android/https.txt · Poslední úprava: 07.04.2012 15:04 autor: wladik