Slide 1

Slide 1 text

Android։ൃͰ mitmproxyΛ࢖ͬͨ࿩

Slide 2

Slide 2 text

Who am I? — ٠஑/bigbackboom — גࣜձࣾΞΠελΠϧɹ ϝσΟΞ։ൃ౷ׅ෦ ΞϓϦάϧʔϓ — ͳΜͪΌͬͯAndroid։ൃऀ — ࠷ۙαʔόʔαΠυ Golangʹුؾத — ҟ໊ɿ͓٠ɺ٠๥ɺ٠͞Μ

Slide 3

Slide 3 text

ܦҢ — responseͷ஋Λॻ͖׵͑ͯɺຊ൪؀ڥͰΞϓϦͷڧ੍Ξο ϓσʔτͷςετ͕͍ͨ͠ɻ — iOS͸CharlesΛ࢖͑͹Ͱ͖Δ͕ɺAndroid͸ʁ — CharlesͰ͍͚Δ͸͚ͣͩͲɺͳΜ͔httpsΩϟονͰ͖ͳ ͍Αɾɾɾ(´ŋωŋ`) — Charles͕ͩΊͳΒଞͷΞϓϦέʔγϣϯ୳ͯ͠ΈΑ͏ʂ

Slide 4

Slide 4 text

mitmproxy — Charlesͱ΄΅ಉ౳ͷػೳΛఏڙ͢ΔOSS — UI͸ίϚϯυϕʔε — WebUIʢβʣ·Ͱ͋Δʂ

Slide 5

Slide 5 text

ݒ೦఺ — ਖ਼௚ίϚϯυϥΠϯϕʔε͕ɾɾɾͬͨΔ͍

Slide 6

Slide 6 text

ͱ͸͍͑ɾɾɾଞʹํ๏΋ͳ͍

Slide 7

Slide 7 text

ͱΓ͋͑ͣ΍ͬͯݟΔ΂͖

Slide 8

Slide 8 text

Πϯετʔϧ $ brew install mitmproxy

Slide 9

Slide 9 text

ىಈ $ mitmproxy -p ϙʔτ൪߸

Slide 10

Slide 10 text

ΞϓϦͷ४උ 1. pcͷipΞυϨεΛϝϞ 2. Android୺຤Λ༻ҙͯ͠ɺઃఆʼWi-Fiͱը໘ΛભҠ 3. ઀ଓࡁΈͷwifiΛ௕ԡ͢͠Δͱɺ"ωοτϫʔΫΛมߋ"ͷ߲໨͕ग़ΔͷͰλοϓ͢Δ 4. දࣔ͞Εͨ΢Οϯυ΢ͷ”ৄࡉઃఆ߲໨"ͷϓϩΩγ߲໨Λखಈʹมߋ͢Δ 5. ௥Ճදࣔ͞Ε߲ͨ໨ͷ”ϓϩΩγͷϗετ໊”ʹᶃͷipΞυϨεΛೖྗ͢Δ 6. ”ϓϩΩγϙʔτʹ͸”mitmproxyىಈ࣌ʹ࢖༻ͨ͠ϙʔτ൪߸Λೖྗ 7. อଘϘλϯΛλοϓ͢Δ(*1) 8. ϒϥ΢βΛ։͖ɺ"mitm.it"ΛΞυϨεʹೖྗ͢Δ(࣍ϖʔδը૾ࢀর) 9. ։͍ͨϖʔδͷAndroidϩΰͷϘλϯΛԡͯ͠ɺূ໌ॻΛμ΢ϯϩʔυɾΠϯετʔϧ͢Δ

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

ͦͯ͠ɾɾɾಈ͔ͯ͠ΈΔ

Slide 13

Slide 13 text

Https͕औΕ͍ͯͳ͍ͩͱʁ

Slide 14

Slide 14 text

ͦͯ͜͠ͷ ৘ใ Λݟ͚ͭΔ "ࣗ෼ͷΞϓϦͰड͚෇͚ΔΑ͏ʹ͢Δʹ͸ωοτϫʔΫɾη ΩϡϦςΟͷઃఆΛΞϓϦʹ௥Ճ͢Δඞཁ͕͋ΔΑ͏Ͱ͢ɻ"

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

΍ͬͯΈΑ͏ — app/src/main/res/xmlʹnetwork_security_config.xml Λ࡞੒ɻҎԼͷ಺༰Λهड़ɻ

Slide 17

Slide 17 text

— AndroidManifest.xmlʹҎԼΛ௥ه ...

Slide 18

Slide 18 text

τϥΠΞήΠϯ

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

࣮͸ɾɾɾcharlesͰ΋͍͚ͨ Android7͔ΒcharlesͰssl௨৴͕ݟΕͳ͘ͳͬͨ݅

Slide 21

Slide 21 text

·ͱΊ — charlesͷଞʹແྉͷmitmproxy͕͋Δ — ࢖͍উख͸ݴ͏΄Ͳѱ͘ͳ͍ — Android 7Ҏ্͔Β໌ࣔతʹূ໌ॻͷڐՄΛϓϩδΣΫτ ʹઃఆ͢Δඞཁ͕͋Δ