Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

๋ชจ์˜ ํ•ดํ‚น ์Šคํ„ฐ๋””/๋ชจ์˜ ํ•ดํ‚น - ๊ธฐ๋ก์ผ์ง€

[๊ธฐ๋ก์ผ์ง€] ๐Ÿ“š 20์ฃผ์ฐจ (๋ชจ๋ฐ”์ผ ์•ฑ ๋ชจ์˜ํ•ดํ‚น)

Gearvirus(junyup2) 2024. 3. 23. 11:02

๋ชจ๋ฐ”์ผ ์•ฑ ํ•ดํ‚น 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 ์–ธ์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜

์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜