ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๊ฐœ์š”

์•ฑ ์ง„๋‹จ์„ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด๋ผ๋ฉด ๋Œ€ํ‘œ์ ์œผ๋กœ Frida, Drozer ๋“ฑ ์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด์„œ ๋™์ , ์ •์  ์ง„๋‹จ์„ ํ•˜์‹œ์ง€๋งŒ Objection์ด๋ผ๋Š” ํˆด์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ช‡ ๊ฐ€์ง€ ๋„๊ตฌ๋“ค๊ณผ ์กฐํ•ฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‹œ๋„๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Objection์€ Run-Time Exploration ์ฆ‰ ๋Ÿฐํƒ€์ž„์„ ์กฐ์ž‘ํ•˜์—ฌ ๊ณต๊ฒฉ์ž๊ฐ€ ์›ํ•˜๋Š” ํ–‰์œ„๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์„ธ์Šค์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉฐ Frida ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Python3 ํ™˜๊ฒฝ์—์„œ frida ํ™˜๊ฒฝ์„ ์‚ฌ์ „์— ๊ตฌ์ถ•ํ•ด์ฃผ์‹œ๊ณ   pip install์„ ํ†ตํ•ด objection์„ ์„ค์น˜ํ•ด์•ผ ๋ฉ๋‹ˆ๋‹ค.

 

*ํ”„๋ฆฌ๋‹ค ํ™˜๊ฒฝ ๊ตฌ์ถ•

guleum-zone.tistory.com/137

 

ํ”„๋ฆฌ๋‹ค(Frida) ํ™˜๊ฒฝ ๊ตฌ์ถ•

๊ฐœ์š” Frida๋ž€ Ole๊ฐ€ ๊ฐœ๋ฐœํ•œ DBI(Dynamic Binary Instrumentation) ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํˆด์ด๊ธฐ์— ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฐ๊ฒฐ๋œ ๋‹จ๋ง์— ๋Œ€ํ•œ ๋ถ„์„์„ ์ˆ˜

guleum-zone.tistory.com

/* objection ์„ค์น˜ */
python3.75# pip install objection
python3.75# objection -> ๋ช…๋ น์–ด ํ™•์ธ ๊ฐ€๋Šฅ
python3.75# objection -g ํŒจํ‚ค์ง€๋ช… explore -> ๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— attach

# frida-ps -Ua -> attach ํ•˜๊ธฐ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํŒจํ‚ค์ง€๋ช… ํ™•์ธ
# objection -g ํŒจํ‚ค์ง€๋ช… explore

ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด๋ฆ„์„ ํ†ตํ•ด ์ ‘๊ทผ์„ ํ•ด์ฃผ์…”์•ผ ๋ฉ๋‹ˆ๋‹ค. 

 

env ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‚ด๋ถ€ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€์˜ ์ค‘์š” ์ •๋ณด๊ฐ€ ํ‰๋ฌธ์œผ๋กœ ์ €์žฅ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  ์ „์ˆ˜์ง„๋‹จ์„ ํ†ตํ•ด ํ™•์ธํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

"Documents" ๊ฒฝ๋กœ๋กœ ์ ‘๊ทผํ•ด ๋ณด์‹œ๋ฉด "userInfo.plist" ํŒŒ์ผ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. plist ํŒŒ์ผ์€ Property List์˜ ์ค„์ž„๋ง๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์„ค์ • ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” xml ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

# ios plist cat "plistํŒŒ์ผ๋ช…"

"userInfo.plist" ํŒŒ์ผ์„ ์—ด๋žŒํ•ด๋ณด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐœ์ธ์ •๋ณด๊ฐ€ ํ‰๋ฌธ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

# ios keychain dump

keychain dumper ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ํ‚ค์ฒด์ธ ๊ฐ’์„ ์‰ฝ๊ฒŒ ํ™•์ธํ•˜์‹ค์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. iOS Keychain์€ ์•”ํ˜ธํ™” ํ‚ค์™€ ์„ธ์…˜ ํ† ํฐ ๊ฐ™์€ ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์ฃผ๋Š” ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ง€๋งŒ ๋ณ„๋„์˜ ์ถ”๊ฐ€์ ์ธ ์•”ํ˜ธํ™”๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š์œผ๋ฉด ์‰ฝ๊ฒŒ ๋ณตํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

# Library/Preferences ์ชฝ ๊ฒฝ๋กœ ์ด๋™
# ios plist cat "plistํŒŒ์ผ๋ช…"

๋งŒ์•ฝ ์•ฑ์ด UserDefault์˜ ์ทจ์•ฝ์ ์ธ  NSUserDefaults ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ • ๋ฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค๋ฉด ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋””๋ฐ”์ด์Šค ๋‚ด๋ถ€์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ value๋ฅผ ํš๋“ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NSUserDefaults ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  keychain์— ์ถ”๊ฐ€์ ์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ•˜๋„๋ก ๊ถŒ๊ณ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

# ios nsuserdefaults get

NSUserDefault ํด๋ž˜์Šค์— ์ €์žฅ๋œ ๊ฐ’์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ๋‘ ๋ฒˆ์งธ๋Š” ๋ณ„๋„์˜ ๊ฒฝ๋กœ ์ด๋™ ํ•„์š” ์—†์ด ์ƒ๋‹จ์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ „์ฒด plist ๋‚ด๋ถ€๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

# ios cookies get --json

objection์„ ํ†ตํ•ด ๋””๋ฐ”์ด์Šค์— ์ €์žฅ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฟ ํ‚ค๊ฐ’๋„ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ทจ์•ฝํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ์ฟ ํ‚ค๊ฐ’์ด ๋…ธ์ถœ๋˜์ง„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•ฑ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฏผ๊ฐ์ •๋ณด๊ฐ€ ์•”ํ˜ธํ™”๋˜์–ด ์ €์žฅ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด connect๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ๋ณ„๋„์˜  SQLite ํŒŒ์ผ์„ ๋กœ์ปฌ pc๋กœ ๊ฐ€์ ธ์™€์„œ ํ™•์ธํ•ด๋ณด๋Š” ๊ฒŒ ๋” ํŽธํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

# ios jailbreak disable

๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํƒˆ์˜ฅ๋œ ๋””๋ฐ”์ด์Šค๋ฅผ ํƒ์ง€ํ•˜๊ณ  ์ฐจ๋‹จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ƒ๋‹จ์˜ ๋ช…๋ น์„ ํ†ตํ•ด ๋™์ ์œผ๋กœ ํƒ์ง€ ์šฐํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‚ฌ์ „์— ์•ฑ์— attached ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋Š” ์ „์ œ์กฐ๊ฑด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ดˆ ์•ฑ ์‹คํ–‰ ์‹œ ํƒ์ง€๋ฅผ ํ•œ๋‹ค๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๊ธฐ ํž˜๋“ค์–ด์ง€์ง€๋งŒ, ์ตœ์ดˆ ํƒˆ์˜ฅ ํƒ์ง€ ์šฐํšŒ -> ํŠน์ • ์ด๋ฒคํŠธ ์‹œ ์ถ”๊ฐ€ ํƒˆ์˜ฅ ํƒ์ง€๋ฅผ ํ•œ ๋ฒˆ ๋” ์ˆ˜ํ–‰ํ•œ๋‹ค๋ฉด objection์„ ํ†ตํ•ด ํƒˆ์˜ฅ ํƒ์ง€๋ฅผ ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒƒ์œผ๋กœ ํŒŒ์•…๋ฉ๋‹ˆ๋‹ค.

 

ํƒˆ์˜ฅ ํƒ์ง€๋ฅผ ๊ฐ•์ œ ๋น„ํ™œ์„ฑํ™”์‹œํ‚ค๊ณ  ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ์ง€๋˜๋Š” ์‹ค์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์ปค๋งจ๋“œ ์ฐฝ์— ๋„์›Œ์„œ ๋‚˜ํƒ€๋‚ด ์ค๋‹ˆ๋‹ค.

 

ํƒˆ์˜ฅ ํƒ์ง€๋ฅผ ์šฐํšŒํ•ด์ฃผ๋Š” ํ‚ค์›Œ๋“œ๋Š” Objection์˜ "agent.js" ํŒŒ์ผ ๋‚ด๋ถ€์— ๋ฐฐ์—ดํ˜•์‹์œผ๋กœ ์ง€์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค์Šคํ…€์„ ์ง„ํ–‰ํ•˜์‹ค๋ถ„์€ ํ•ด๋‹นํŒŒ์ผ์— ์ถ”๊ฐ€ ํƒ์ง€ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ฃผ์‹œ๋ฉด ์šฐํšŒ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

# ios sslpinning disable

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก์‹œ๋ฅผ ์žก์•„ ์š”์ฒญ/์‘๋‹ต ๋ณ€์ˆ˜๊ฐ’์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๋„ํ•˜๋‹ค ๋ณด๋ฉด sslpinning์— ์žกํ˜€ ๋ง‰ํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ๋Š” sslpinning์„ ๊ฐ•์ œ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

# ios hooking list classes -> ์ „์ฒด ํด๋ž˜์Šค๋ช… ์ถœ๋ ฅ
# ios hooking search_classes "KEYWORD" -> ์ถ”์ธก ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค๋ช… ๊ฒ€์ƒ‰

๋Œ€์ƒ ์•ฑ์— ์‚ฌ์šฉ๋œ "class"์™€ "method" ์ •๋ณด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๊ฐ€ ์ž์‹ ์ด ์›ํ•˜๋Š” ๋ฐฉํ–ฅ๋Œ€๋กœ ๋Ÿฐํƒ€์ž„ ์กฐ์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ง ํƒ์ง€๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ Frida Script๋ฅผ ํ†ตํ•ด Trace ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ objection์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์‰ฝ๊ฒŒ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

# ios hooking list class_methods "ํด๋ž˜์Šค๋ช…"

์œ„๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค๋ช…์„ ์ฐพ์œผ์…จ๋‹ค๋ฉด "๋ฉ”์†Œ๋“œ" ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. "JailbreakDetection"์ด๋ผ๋Š” ํด๋ž˜์Šค์—๋Š” isJailbroken ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

# ios hooking watch method "+[ํด๋ž˜์Šค๋ช… ๋ฉ”์†Œ๋“œ๋ช…]" --dump-args --dump-return --dump-backtrace

ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ ์ •๋ณด๋ฅผ ํš๋“ํ–ˆ๋‹ค๋ฉด boolean์— ๋”ฐ๋ฅธ "retval" ์ฆ‰ ๋ฆฌํ„ด ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ true ๋˜๋Š” false๋กœ ์กฐ์ž‘ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

# ios hooking set return_value "+[ํด๋ž˜์Šค๋ช… ๋ฉ”์†Œ๋“œ๋ช…]" false OR true

์ถœ๋ ฅ๋œ ๋ฐ˜ํ™˜ ๊ฐ’์„ replace ํ•˜์—ฌ ๊ณต๊ฒฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์กฐ์ž‘๋˜๋„๋ก ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ ํƒˆ์˜ฅ์„ ํƒ์ง€ํ•˜๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์„ ์กฐ์ž‘ํ•จ์œผ๋กœ์จ ์šฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ถ”๊ฐ€์ ์œผ๋กœ ์œ ์šฉํ•œ ๋ช…๋ น์–ด๋Š” ๊ฐฑ์‹ ํ•ด๋‘๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

'MOBILE' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] Shared Clipboard ์ทจ์•ฝ์   (0) 2021.09.25
[iOS] Functions Hooking  (1) 2021.09.24
[Android] Data Storage(Plain/Encryption) ์ทจ์•ฝ์   (0) 2021.02.13
[Android] Content Provider ์ทจ์•ฝ์   (2) 2021.02.10
[Android] Broadcast Receiver ์ทจ์•ฝ์   (0) 2021.02.09
๊ณต์œ ํ•˜๊ธฐ ๋งํฌ
Comment