Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

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