๋ชจ๋ฐ์ผ ์ฑ ํดํน vs ๋ชจ๋ฐ์ผ ํดํน
๋ชจ๋ฐ์ผ ํดํน๊ณผ ๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ๊ฐ์ ๊ฒ์ด ์๋๋ค.
๋ชจ๋ฐ์ผ ํดํน์ ์ค๋งํธํฐ ์์ฒด๋ฅผ ํดํนํ๋ ๊ฒ์ผ๋ก, ์นด๋ฉ๋ผ๋ฅผ ์ ์ดํ๊ณ , ๋ น์๊ธฐ๋ฅ์ ํ์ฑํ ํ๋ ๋ฑ์ ํดํน์ ๋ชจ๋ฐ์ผ ํดํน์ผ๋ก ๋ชจ๋ฐ์ผ OS, ์ฆ ์๋๋ก์ด๋๋ iOS์ ๊ฐ์ ๊ฒ์ ํดํนํ๋ ๊ฒ์ ๋งํ๋ค.
๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ๋ชจ์ํดํน์์ ์งํํ๋ ๊ฒ์ผ๋ก ์น ํดํน๊ณผ ๋น์ทํ๋ค๊ณ ํ ์ ์๋ค.
์น ๊ฐ๋ฐ - ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ
์น ํดํน - ์น ์ ํ๋ฆฌ์ผ์ด์ ํดํน
์น ๊ฐ๋ฐ๊ณผ ์น ํดํน์ ์ฌ์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ํดํนํ๋ ๊ฒ์ ๋ป ํ๊ธฐ ๋๋ฌธ์ ๋น์ทํ๋ค๊ณ ํ ์ ์๋ ๊ฒ์ด๋ค.
์น ๊ฐ๋ฐ๊ณผ ์น ํดํน์ ํ๋ค๋ ๊ฒ์ ์น ์๋ฒ ์์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ณ , ๊ฑฐ๊ธฐ์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ ์ฐพ์ ๊ฒ์ด๋ค.
๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํดํน์ผ๋ก์ ์ค๋งํธํฐ ์์ฒด๋ฅผ ํดํนํ๋ ๊ฒ์ด ์๋๋ผ ์ค๋งํธํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ ์ฐพ๋ ๊ฒ์ด๋ค.
๋ชจ๋ฐ์ผ ์ฑ์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก ๊ธ์ทจ๋ถํ์ ๊ธฐ์ค์ผ๋ก ํ๋ค.
๋ชจ๋ฐ์ผ ์ฑ ํดํน
๋ชจ๋ฐ์ผ ์ฑ ํดํน์ด ํ์ํ ์ด์
๊ทธ๋ ๋ค๋ฉด ๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ์ ํด์ผํ๋ ๊ฑธ๊น?
์น ํดํน์ ํ๋ ์ด์ ๋ ์น ์ฌ์ดํธ์ ๋ํ์ฌ "๋ชจ์ํดํน์ ์งํํ๋ ์ด์ ๋ ๋ชจ๋ ํ์ฌ๊ฐ ์น ์ฌ์ดํธ๊ฐ ์์ผ๋๊น"์ด๋ค.
์ด์ ๊ฐ์ด ๋ชจ๋ฐ์ผ ์ฑ์ ๋ํ์ฌ ๋ชจ์ํดํน์ ์งํํ๋ ์ด์ ๋ ์ ๋งํ ํ์ฌ๋ค์ ์์ฒด ๋ชจ๋ฐ์ผ ์ฑ์ด ์์ผ๋๊น ๋ผ๊ณ ํ ์ ์๋ค.
๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ์ทจ์ฝ์
์๋ฒ ์ธก ์ทจ์ฝ์
์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ฉด, ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์๋ฒ์์ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ด์ฉํ๋ ์ฑ ์๋ฒ๋ฅผ API ์๋ฒ๋ผ๊ณ ํ๋ฉฐ, ์ด ์๋ฒ์์ ํต์ ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ ์ฐพ๋ ๊ฒ์ด๋ค.
๋จ๋ง๊ธฐ ์ทจ์ฝ์
๋จ๋ง๊ธฐ ์ทจ์ฝ์ ์ ํ๊ฐ์ง ๊ฐ์ ์ ํ๊ณ ๋ค์ด๊ฐ๋ค.
| ๊ฐ์ : ๊ณต๊ฒฉ์(ํด์ปค)๊ฐ ํผํด์์ ๋จ๋ง๊ธฐ๋ฅผ ํ์ทจํ์ ๋. or ์ ์ฑ์ฝ๋๋ก ๊ฐ์ผ์์ผฐ์ ๋
์์ ๊ฐ์ด ๋จ๋ง๊ธฐ ์์ฒด๊ฐ ์ด๋ฏธ ๊ณต๊ฒฉ์ ๋ ธ์ถ๋ ์ํ๋ฅผ ๊ฐ์ ํ๊ณ ์งํํ๋ ์ทจ์ฝ์ ์ด๋ค.
์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋จ๋ง๊ธฐ ๋ด๋ถ์ ์ ์ฅํ๋ค๊ณ ์๊ฐํด๋ณด์, ์์๋ก ์๋ ๋ก๊ทธ์ธ์ ๊ฒฝ์ฐ ์์ ์๋ ๊ธฐ๊ธฐ ๋ด๋ถ์ ์์ด๋/๋น๋ฐ๋ฒํธ๋ฅผ ๊ทธ๋๋ก ์ ์ฅํด ๋์๋ค๊ณ ํ๋ค. ์ด๊ฒ์ด ํ๋ฌธ์ผ๋ก ์ ์ฅ๋์ด ์๋ค๋ฉด ํด๋น ๋ด์ฉ์ ์คํ์ด์จ์ด๋ฅผ ํตํด ํ์ทจํ์ฌ ํฌ๋ฆฌ๋ด์ ์คํฐํ์ ํตํด ์ฐ์ด์ ํดํน์ด ๊ฐ๋ฅํด์ง๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฌํญ์ ๋ํ์ฌ ํ์ธํด๋ด์ผ ํ๋ค.
1) ์ด์ฉ์์ ์ ๋ณด ์์ ํ๊ฒ ๋ณด๊ดํ๋์ง ์ฌ๋ถ
2) ์ฑ์ ํ๋ฆ ์ ์ดํ์ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ
๋ชจ๋ฐ์ผ ์ฑ ์ทจ์ฝ์
(์ฑ) ์๋ฒ ์ธก ์ทจ์ฝ์
๋๋ถ๋ถ์ ๋ชจ๋ฐ์ผ ํต์ ์ HTTP ํต์ ์ ์ด์ฉํ๋ค.
HTTP ํต์ ์ ์น์์ ์ฌ์ฉํ๋ ํต์ ๋ฐฉ์์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ๋ชจ๋ฐ์ผ ์ ์ฉ์ผ๋ก ํต์ ์ ๋ฐ๋ก ๋ง๋ค์ง ์๊ณ ์ด๋ ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น?
์น ์ฌ์ดํธ / ์น ์๋ฒ - (API)
API๋ฅผ ์ด์ฉํ๋ฉด ํต์ ์ด ๊น๋ํ๊ณ , ๊ตฌํ์ด ์ฝ๊ณ , ๊ธฐ์กด์ ์น ์ฌ์ดํธ์์ ์ฐ๋์ด ์ฌ์์ง๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์น ์๋ฒ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ ค๊ณ ํ๋ ๊ฒ์ด๋ค.
๋ชจ๋ฐ์ผ ์ฑ์ ์นดํ ๊ณ ๋ฆฌ
๋ชจ๋ฐ์ผ ์ฑ์์ ํต์ ์ ์ด๋ป๊ฒ ํ๊ณ ์๋๋์ ๋ฐ๋ผ์ ๋ชจ๋ฐ์ผ ์ฑ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ถ๋ฅํ ์ ์๋ค.
ํต์ ๊ธฐ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ ๋ถ๋ฅ
(1) ์น ์ฑ : ์น ์ฌ์ดํธ๋ฅผ ๊ทธ๋๋ก ๋ชจ๋ฐ์ผ ์ฑ์ผ๋ก ์ด๊ดํ ๊ฒ
(์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ํ์ผ๋ก ๊ตฌํ)
(2) ํ์ด๋ธ๋ฆฌ๋ ์ฑ : API, HTTP ๊ตฌํ
(3) ๋ค์ดํฐ๋ธ ์ฑ : TCP ํต์
์นดํ ๊ณ ๋ฆฌ ๋ณ ๋ชจ์ํดํน
(1) ์น ์ฑ
์ ํ์ ์ธ ์น ์ฑ : ex) ๋ณด์๋ด์ค
์น ์ฑ์ธ์ง ํ์ธ๋๋ค๋ฉด, ๋ชจ๋ฐ์ผ ๋ฒ์ ๋๋ฉ์ธ์ด ์๋์ง ํ์ธํด๋ณธ๋ค.
์น ์ฑ ์ทจ์ฝ์ ์ PC๋ก๋ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ Burp๋ฅผ ์ด์ฉํ์ฌ ์ฐพ๊ณ , ๋จ๋ง๊ธฐ ์ทจ์ฝ์ ๋ง ๋ฐ๋ก ์ฐพ๋๋ค.
F12 ๊ฐ๋ฐ์ ๋ฉ๋ด -> ์ข์ธก ์๋จ์ (Toggle Device Toolbar๋ฅผ ํด๋ฆญ) -> ์น ์ฑ
(2) ํ์ด๋ธ๋ฆฌ๋ ์ฑ
Burp Suite -> ํ๋ก์(Proxy) ์ค์ -> ํ๋ก์(Proxy) ๋ฆฌ์ค๋(Listener)
๋ฆฌ์ค๋(Listener)์์ ํด๋นํ๋ ํฌํธ๋ฅผ ์ด๋๋ก ์ค์ ํ๋ค.
Burp ํ๋ก์ ์ค์
๋ธ๋ผ์ฐ์ --- Burp(ํ๋ก์ ๋ฆฌ์ค๋) --- ์๋ฒ
๋ธ๋ผ์ฐ์ ํ๋ก์ ์ค์
์น ๋ธ๋ผ์ฐ์ -> ์ค์ -> ์ปดํจํฐ ํ๋ก์
๋ ธํธ๋ถ(์ปดํจํฐ)๊ณผ ๋ชจ๋ฐ์ผ์ด ๋์ผํ Wifi ์์ ์กด์ฌํด์ผํ๋ค.
(๋ น์ค ์ฑ ํ๋ ์ด์ด (์๋ฎฌ๋ ์ดํฐ) ์ด์ฉ ๊ฐ๋ฅ)
Wifi -> ๊ณ ๊ธ ์ต์ -> ํ๋ก์ -> ์๋ -> ip ์ฃผ์ ์์ฑ / ํฌํธ ์ค์
http ๋ฅผ ์ด์ฉํ ํต์ ์์ ์ค๊ณ ๊ฐ๋ ๋ฐ์ดํฐ์ ๋ํด์๋ Burp๋ฅผ ๊ฑฐ์น๊ฒ ๋๋ค.
(https - Burp์ ์ธ์ฆ์๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ค.)
> Android Burp ์ธ์ฆ์ ์ค์น
> iOS Burp ์ธ์ฆ์ ์ค์น
์ปดํจํฐ์์ ์ฌ์ฉํ๋ IP ์ฃผ์๋ ์๋ฒ๊ฐ ์๋๋ฏ๋ก ๊ณ ์ ํ IP ์ฃผ์๊ฐ ์๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฐ๋์ ๋์ผ Wifi์ ์์ ์์ด์ผํ๋ค.
๋ด๋ถ/์ธ๋ถ IP ์ฃผ์ ์ค์ ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ ๊ฒ์ด ๋ด๋ถ IP์ฃผ์์ด๊ธฐ ๋๋ฌธ์ผ๋ก, LTE ํต์ ์ ๊ฒฝ์ฐ ๋คํธ์ํฌ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค.
(3) ๋ค์ดํฐ๋ธ ์ฑ
Burp๋ฅผ ํตํด ๋ณผ ์ ์๋ ๊ฒ์ http ์น ํต์ ๋ฟ์ด๋ค. ํ์ง๋ง ๋ค์ดํฐ๋ธ ์ฑ์ ๊ฒฝ์ฐ TCP ํต์ ์ ํ๊ธฐ ๋๋ฌธ์ Burp๋ก๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์๊ฐ ์๋ค.
์ด์ ๋ํ์ฌ ๋ค์ดํฐ๋ธ ์ฑ์ ํ์ธํ ์ ์๋ 2๊ฐ์ง ์ ๋ต์ด ์กด์ฌํ๋ค.
1. Burp Suite - NoPEModule
https://github.com/summitt/Nope-Proxy
(DNS ์๋ฒ) ip์ฃผ์๋ฅผ ๋๋ฉ์ธ ํํ๋ก ๋ง๋ค์ด์ ๋ณด๋ด, DNS ์๋ฒ ์ธ ์ฒ์ ํ๋๋กํ๋ค. -> (DNS ์ง์)
2. frida - ํ๋ฆฌ๋ค (๋ชจ๋ฐ์ผ ์ฑ ํํน์ ์ฝ๊ฒ ๋ง๋ค์ด ์ฃผ๋ ๋์ ๋ถ์ ํด!)
(๋ชจ๋ฐ์ผ ์ฑ ํํน)
์์ ๊ฐ์ด Burp Suite์ ๋ชจ๋(Module)์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ด ์๊ณ , ํ๋ฆฌ๋ค(frida)๋ผ๋ ๋ชจ๋ฐ์ผ ์ฑ ํํน์ ์ํ ๋์ ๋ถ์ ํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ํ๋ฆฌ๋ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
(์ถํ์ python์ ์ด์ฉํ ๊ฐ์ด ํ๋ก์ ํด์ ๋ง๋ค์ด ๋ณด๋๋กํ์.)
(์ฑ) ๋จ๋ง๊ธฐ ์ทจ์ฝ์
๋ฉ๋ชจ๋ฆฌ(์ ์ฅ๊ณต๊ฐ)์ ์ดํด๋ณด๋ ์์ ์ ์งํํ๋ค. ์ด์ฉ์ ์ ๋ณด๊ฐ ๋จ๋ง๊ธฐ์ ์ ์ฅ๋๋์ง ์ ์ ์ด ์ฐพ๋ ๊ฒ์ด๋ค.
์ปดํจํฐ OS - linux, windows, mac
์ค๋งํธํฐ OS - Android, iOS
์ค๋งํธํฐ์ OS์ ๊ฒฝ์ฐ Linux ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ linux ๋ช ๋ น์ด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋ค.
adb
adb๋ ๋ชจ๋ฐ์ผ์ ์์ ๋ค์ด๊ฐ๋ ํด(Tool)์ด๋ค. ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ adb shell์ ์ ๋ ฅํ๋ฉด ๋๋ค.
๋ น์ค์ ๊ฐ์ ์๋ฎฌ๋ ์ดํฐ์ธ ๊ฒฝ์ฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
adb connect 127.0.0.1:(์ ๋ฎฌ๋ ์ดํฐ์ ํฌํธ)
ํ๊ฒฝ ์ธํ
๋ น์ค์ ๊ฐ์ ์๋ฎฌ๋ ์ดํฐ๋ก ์ด๋์ ๋์ ๋์ฒ๋ ๊ฐ๋ฅํ์ง๋ง, ์ค์น ํน์ ์คํ์ด ์ ๋๋ก ๋์ง ์๋ ์ฑ๋ค๋ ์์ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ๋๋ก ํ๊ธฐ ์ํด์๋ ์ค์ ๊ธฐ๊ธฐ๊ฐ ์์ด์ผํ๋ค.
> iPhone - ios ๋ฒ์ ผ ์ค์. (์ต์ ๋ฒ์ ์ ๊ฒฝ์ฐ ํ์ฅ์ด ๋ถ๊ฐ๋ฅ ํ ์ ์๋ค.)
ํ์ฅ์ด ๋์ฌ๋ ๊น์ง ๊ธฐ๋ค๋ ค์ผ ํจ. (์ฆ, ์ต์ ๋ฒ์ ์ด ์๋ ๊ธฐ์ข ์ ์ฌ์ผํ๋ค.)
> ์๋๋ก์ด๋ / ALL (๊ธฐ์ข ๋ฒ์ ์๊ด X)
-> ์๋๋ก์ด๋์ ๊ฒฝ์ฐ ๋ น์ค์ ๊ฐ์ ์ ๋ฎฌ๋ ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ์ด๋์ ๋ ๊ฐ๋ฅํ๋ค.
์์์ ๋งํ๋ฏ์ด ๋ฉ๋ชจ๋ฆฌ(์ ์ฅ๊ณต๊ฐ)์์ ์ด์ฉ์ ์ ๋ณด๊ฐ ๋จ๋ง๊ธฐ์ ์ ์ฅ๋๋์ง ์ ์ ์ด ์ฐพ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ธฐ ๋๋ฌธ์ ํธ๋ํฐ์ ํฐ๋ฏธ๋์ ๋ค์ด๊ฐ ์ ์์ด์ผํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํฐ๋ฏธ๋์ ์ ์ํ๊ธฐ ์ํด root ๊ถํ์ ํ๋ํ ์ํ์ฌ์ผ ํ๋ค.
Android - ๋ฃจํ
iOS - ํ์ฅ(= ์ด์์ฒด์ ์ ์ทจ์ฝ์ ์ ์ฐพ์์ ์ด์ฉ)
> ํ์ฅ ํ๋ก๊ทธ๋จ ์ด์ฉ.
์ฆ, ์ ํ์ iPhone์ ๊ฒฝ์ฐ ํ์ฅ์ด ํ์ํ๊ณ , ์๋๋ก์ด๋ ํฐ์ ๊ฒฝ์ฐ ๋ฃจํ ์ด ํ์ํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์์์ ์ ๋ฆฌํ์๋ฏ์ด ์๋๋ก์ด๋์ ๊ฒฝ์ฐ ๊ธฐ์ข , ์๋๋ก์ด๋ ๋ฒ์ ์ ์๊ด์ด ์์ง๋ง, iPhone์ ๊ฒฝ์ฐ ์ต์ ๋ฒ์ ์์๋ ํ์ฅ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์์ด ์ต์ ๋ฒ์ ์ด ์๋ ๊ธฐ์ข ์ ์ฌ์ผํ๋ค๋ ๊ฒ์ด๋ค.
iPhone App
iPhone์ ๊ฒฝ์ฐ ์๋ ์์ฒด์ ์ผ๋ก ํน์ดํ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์๋์ฐ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ถํธํจ์ด ์์ ์ ์๋ค.
iPhone App
Mac ์์๋ debugger๋ฅผ ์ง์ ๋ถ์ผ ์ ์๋ค.
ํ์ง๋ง ์ข ๋ถํธํ ๋ฟ Windows๋ก ๊ฐ๋ฅ (ํ๋ฆฌ๋ค ์ด์ฉ)
๋ถํธํจ์ผ ๋ฟ์ด์ง ๋ถ๊ฐ๋ฅ ํ๊ฒ์ด ์๋๋ค. (ํ๋ฆฌ๋ค ๋ง๋ง์ธ..์ด๋ค.)
Android App
- Tools
jadx-gui
-> ๋์ปดํ์ผ๋ฌ(decompile) - java ๊ธฐ๋ฐ / kotlin- ์ฝํ๋ฆฐ(java ๊ธฐ๋ฐ)
https://github.com/skylot/jadx
compile
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด -> binary
Android App์ ๊ฒฝ์ฐ Java๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๊ฐ ์ง์ฌ์ ธ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก jadx-gui๋ฅผ ์ด์ฉํ ๋์ปดํ์ผ๋ง์ด ํ์ํ๋ค.
Mobile App
JAVA
Java๋ ๋ฉํฐ ํ๋ซํผ ์ธ์ด๋ก์ ๋ง๋ฒ์ ์ธ์ด์ด๋ค.
(Burp Suite๋ Java๋ก ๋ง๋ค์ด์ ธ ์๋ค.)
JAVA -> class (java byte code) -> JVM (java๊ฐ ๋ง๋ assembly ํ์ผ)
์์ ๊ตฌ์กฐ๊ฐ Java์ ๊ตฌ์กฐ์ธ๋ฐ, ๋ชจ๋ฐ์ผ ๋ฒ์ ์ ๊ฒฝ์ฐ class๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
JAVA -> dex (์๋๋ก์ด๋(Android) ์์์ ์คํํ์ผ)
(smali : android assembly)
(c์ธ์ด์ ๋ค๋ฅด๊ฒ) ์ญ์ผ๋ก ์์ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๋ค. ์์ค์ฝ๋๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์
์๋๋ก์ด๋์ ์ค์นํ์ผ์ APK์ธ๋ฐ ์์ถํ์ผ๊ณผ ๊ฐ์ ๊ฒ์ผ๋ก ๋ณตํธํ๊ฐ ํ์ํ๋ค. JADX๋ฅผ ์ด์ฉํ๋ฉด ์๋์ผ๋ก ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์น
adb ์ด์ฉ -> adb install (insecureshop.apk)
๋จ๋ง๊ธฐ ๋ชจ์ํดํน
Android ๋ฆฌ๋ฒ์ฑ
Android App์ ๊ฒฝ์ฐ Activity๋ผ๋ ๊ฒ์ด ์กด์ฌํ๋ค. JAVA์ class์ ๊ฐ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋๋ฐ Activity ๋ ํ๋์ ํ๋ฉด์ผ๋ก ํ๋ฉด๋ณ๋ก Activity๊ฐ ์กด์ฌํ๋ค.
์๋๋ก์ด๋ ๋ฉ๋ํ์คํธ AndroidManifest.xml๋ App์ ์๋ณ์์ด๋ค.
android.intent.action.MAIN์ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ Activity์ด๋ค.
JAVA ์ฝ๋์์ ์ฃผ๋ชฉํด์ผ ํ ์ฝ๋๋ onCreate ์ด๋ค.
ํ๋ฆฌ๋ค(Frida)
ํ๋ฆฌ๋ค๋ DBI (Dynamic Binary Instrumentation)๋ก์ DBI๋ printf("test %s",buf); ๋ฑ๊ณผ ๊ฐ์ด ํน์ ์์ ์์์ ๋ณ์๊ฐ ๋ฑ์ ํ์ธํ๊ฑฐ๋ ํ๋ก๊ทธ๋จ์ ํ์๋ฅผ ์กฐ์ฌํ๋ ์ผ์ ์ํํ๋ค. ๋ฐ์ด๋๋ฆฌ ๋ถ์์ ํ ๋ ๊ฐ์ข ๋ชจ๋ํฐ์ผ ํด๋ค์ ์ผ๊ณ ์ ์ฑ์ฝ๋๋ฅผ ์คํํ์ฌ ํ์๋ฅผ ๋ถ์ํ๊ฑฐ๋ ๋ฐํ์ ์ฝ๋์ ํํนํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ฌ ๋๋ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ถ์ํ๋ค.
ํจ์ํํน์ ํตํด ์ด๋ค ์ฝ๋๊ฐ ์คํ๋๋ ๋์ ์ค๊ฐ์ ํ ์ ๋ฌ์ ๋์ผ๋ฉด ๊ทธ ๋ถ๋ถ์ ๊ฐ์ ๋ณด๊ณ , ๋ณ์กฐํ ์ ์๋ค.
> [fridaLab]
https://rossmarks.uk/blog/fridalab/
https://github.com/DERE-ad2001/Frida-Labs
๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ
์น ํดํน์ ํ๋ ค๋ฉด ์น ๊ฐ๋ฐ์ ํด๋ด์ผ ํ๋ฏ์ด, Mobile App ๊ฐ๋ฐ์ ํด๋ด์ผ ๋ชจ๋ฐ์ผ ์ฑ ํดํน์ ํ๋๋ฐ ๋์์ด ๋๋ค๋ ๊ฒ์ด๋ค.
Android : Java
iOS : Swift
๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์์ ํด์ผํ๋ ๊ฒ์ ์น ๊ฐ๋ฐ๊ณผ ๊ฑฐ์ ๋๊ฐ๋ค. ์ปค๋ฎค๋ํฐ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด๋๋๋ฐ, ์ถ๊ฐ์ ์ผ๋ก ์๋๋ก๊ทธ์ธ์ ๊ตฌํํด๋ณด๋ฉด ์ข๋ค๊ณ ํ๋ค.
๋ชจ๋ฐ์ผ ์ฑ ํดํน ์ค์ต
DIVA๋ ์ ํ๋ฆฌ์ผ์ด์ (Application, App)์ ๋ํด ์ทจ์ฝ์ ์ง๋จ์ ์ค์ตํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ฑ์ด๋ค.
- Mobile App
> DIVA Android
https://github.com/0xArab/diva-apk-file
> DIVA iOS
https://github.com/prateek147/DVIA-v2
์๋๋ก์ด๋๋ ๋์ปดํ์ผ๋ฌ ํ๋ก๊ทธ๋จ์ด ์๋๋ฐ iOS๋ ์๋ค.
IPA - binary / ghidra - ์ด์ ๋ธ๋ฆฌ์ด | ๋๋ต์ C ์ธ์ด ์ฝ๋๋ก ๋ณํ
์ง๋ฌธ ํ์, ์์ ๋ฐ ๋ณด์์ ๋ํ ์ง์ ํ์