ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฐ์
๊ธฐ๋ณธ์ ์ผ๋ก SSL(Secure Socket Layer)์ด๋ ์ ์์ ์ธ ์ฌ์ฉ์์ MITM(Man in the Middle) ๊ณต๊ฒฉ์ ์๋ฐฉํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํด๋ผ์ด์ธํธ ๊ธฐ๋ฒ์ ๋๋ค. ๊ฐ๋จํ ๋งํด ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ์ธ์ฆ์์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋๋ ๋น๊ต๋ฅผ ํ์ฌ ์ธ์ฆ์๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์ํ๊ฑฐ๋ ๋ ์ด์ ํต์ ์ด ๋์ง ์๋๋ก ํฉ๋๋ค.
SSL Pinning์ด๋ ํด๋ผ์ด์ธํธ ์ธก์์ SSL HandShake ์ดํ์๋ ์๋ฒ์ธก ์ฆ๋ช ์๋ฅผ ์ฌ๊ฒ์ฆ ํ๊ธฐ ๋๋ฌธ์ MITM ๊ณต๊ฒฉ์ ๋ง์์ ์์ง๋ง ๋ง์ฝ ์์ ์ ์ธ์ฆ์๊ฐ ์ ์์ ์ธ ์ธ์ฆ์์ธ ๊ฒ์ฒ๋ผ ์ค๊ฐ์ ์ฑ ๋ด๋ถ๋ก ์ฝ์ ํ์ฌ ์์ด๊ฒ ๋๋ค๋ฉด ์ฐํ๊ฐ ๊ฐ๋ฅํด์ง๋๋ค.
๊ธฐ์กด์ ์์ ์ ๋๋ฐ์ด์ค(Nox)์ ์ธ์ฆ์๊ฐ ์์ด์ผ ๋๊ธฐ ๋๋ฌธ์ ์์ผ์ ๋ถ๋ค ํ๋จ์ ํฌ์คํ ์ ์ฐธ๊ณ ํ์ฌ ์ธ์ฆ์ ์ค์น(Android 5)
์์ ์ Nox์ ๋ก์ปฌPC์ ์๋ Burp Suite๊ฐ ์ฑ๊ณต์ ์ผ๋ก ํต์ ์ด ๋๋ค๋ฉด ๋์ ์ฑ(ํธ์ํฐ)์ ํตํด SSL Pinning์ด ์ ์ฉ๋์ด ์๋์ง ํ์ธํด์ฃผ์๋ฉด ๋ฉ๋๋ค.(๊ณ์ ๋ง๋ค๊ธฐ)
๊ธฐ๋ณธ ๊ฒฝ๋ก์ ์กด์ฌํ๋ "๋ค์ด๋ก๋" ํด๋์ ๊ฒฝ๋ก๋ /storage/emulated/legacy/Download ์ ์กด์ฌํฉ๋๋ค. frida ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ฐํํ ๊ฒ์ด๊ธฐ์ ์ธ์ฆ์๋ฅผ /data/local/tmp/ ๊ฒฝ๋ก์ ์ด๋ฆ์ ๋ณ๊ฒฝํ์ฌ ์ด๋์ํค๊ฒ ์ต๋๋ค.
frida ์คํฌ๋ฆฝํธ์๋ ์ธ์ฆ์ ์ด๋ฆ์ด cert-der.crt ์ด๋ฆ์ผ๋ก /data/local/tmp๊ฒฝ๋ก์ ์ด๋๋์ด ์์ผ๋ฉฐ ์ด๊ฒ์ ํตํด ์ฐ๋ฆฌ์ ์ธ์ฆ์๊ฐ ์ ์์ ์ธ ๊ฒ์ผ๋ก ํ๋จํ๋๋ก ํ ์ ์๊ฒ ๋ฉ๋๋ค.
ํ๋ฆฌ๋ค ์คํฌ๋ฆฝํธ ๋ด๋ถ์ ์ง์ ๋ ๊ฒฝ๋ก์ ์ธ์ฆ์ ํ์ผ๋ช ์ด ๋ณด์ ๋๋ค. ๊ตณ์ด "๋ค์ด๋ก๋"์ ์๋ ์ธ์ฆ์๋ฅผ ์ฎ๊ธฐ์ง ์๊ณ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์กฐ๊ธ ์์ ํด์ ์ฌ์ฉํ์ ๋ ๋ฉ๋๋ค.
์ฐธ๊ณ ๋ก SSL Pinning ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ตฌ๋ฒ์ ์ frida๋ฅผ ์ฌ์ฉํด ์ฃผ์ ์ผ ์๋ฌ ์์ด ์๋์ด ๊ฐ๋ฅํฉ๋๋ค. ์ ๋ ์๋์ฝ๋ค์ python=3.7 ๋ฒ์ ์ ์๋ก์ด ์์ญ์ ์ถ๊ฐํ๊ณ ์ฌ๊ธฐ์ ๊ตฌ๋ฒ์ frida๋ฅผ ์ค์นํ์ต๋๋ค.
frida ๋ฒ์ ์ ๋ง์ถ๊ธฐ ์ํด adb ์๋ก ์ด๋ํ์ฌ ๊ธฐ์กด์ ์กด์ฌํ๋ ์ต์ ๋ฒ์ ์ frida-server๋ ์ ๊ฑฐํ๊ณ ๊ตฌ๋ฒ์ frida-server๋ก ๋์ผํ๊ฒ ์ค์นํ์ต๋๋ค.
cd /data/local/tmp
ls -al (frida-server ํ์ธ)
chmod 777 <ํ๋ฆฌ๋ค ์๋ฒ ํ์ผ>
./<ํ๋ฆฌ๋ค ์๋ฒ ํ์ผ> & -> ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ
๊ถํ์ 777๋ก ์์ ํ ๋ฐฑ๊ทธ๋ผ์ด๋ ํํ๋ก ์คํ๋๋๋ก ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
๊ตฌ๋ฒ์ ํ๋ฆฌ๋ค๊ฐ ํต์ ํ๋์ง ํ์ธํด์ฃผ์๊ณ ํธ์ํฐ ์ฑ์ ํจํค์ง ๋ช ์ ๋ณต์ฌํด๋๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ง์ฝ ์๋ฌ๊ฐ ๋ฐ์๋ ๊ฒฝ์ฐ Nox ์๋ฎฌ์ ๊ป๋ค๊ฐ ๋ค์ ์งํํด ์ฃผ์ธ์
frida -Uf <ํจํค์ง๋ช > -l <์คํฌ๋ฆฝํธ ํ์ผ๋ช > --no-pause
์ด์ ํ๋ฆฌ๋ค ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ์ฌ ํธ์ํฐ ์ฑ์ attach ๋๋๋ก ํ๊ฒ ์ต๋๋ค. ์คํฌ๋ฆฝํธ ์ฝ๋๋ ํ๋จ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ
codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/
์ ์ ๊ธฐ๋ค๋ ค์ฃผ์๋ฉด ์ฌ๋ฌ ๊ฐ์ ์ฝ์ ๋ก๊ทธ๊ฐ ์ฐํ์ ๋์ค๊ฒ ๋ฉ๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ๋ก๋๊ฐ ๋์๋ค๋ฉด TrustManager ๋ฌธ๊ตฌ๊ฐ ๋ํ๋ ๊ฒ์ ๋๋ค.
์ฑ์ด ์๋์ผ๋ก ๋ค์ ๋ก๋๊ฐ ๋๋๋ฐ ์ด๋ SSL Pinning์ด ๊ฑธ๋ฆฐ ๊ณ์ ๋ง๋ค๊ธฐ๋ฅผ ๋ค์ ํด๋ฆญํด ๋ณด์๋ฉด ์๋ฌ ๋ฉ์์ง๊ฐ ๋ํ๋์ง ์๊ณ ์ ํฌ ๋ค์ Burp Suite ์ธ์ฆ์๊ฐ ์ ์์ ์ธ ๊ฒ์ผ๋ก ํ๋จํ๊ณ ํ์ด์ง ํธ์ถ์ ํ๊ฒ ๋ฉ๋๋ค.
'MOBILE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] Activity Component ์ทจ์ฝ์ (0) | 2021.02.08 |
---|---|
[Android] Rooting ํ์ง ์ฐํ(Objection) (0) | 2021.02.07 |
[Android] Burp Suite ์ฐ๋(NOX) (0) | 2021.02.05 |
[Android] ๋๋ก์ (Drozer) ํ๊ฒฝ ๊ตฌ์ถ (0) | 2021.02.04 |
[Android] ๋์ปดํ์ผ & ๋ฆฌํจํค์ง(Apktool) (0) | 2021.02.03 |