ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฐ์
์ฑ ์ง๋จ์ ํ์๋ ๋ถ๋ค์ด๋ผ๋ฉด ๋ํ์ ์ผ๋ก Frida, Drozer ๋ฑ ์ ์ฌ์ฉํ์๋ฉด์ ๋์ , ์ ์ ์ง๋จ์ ํ์์ง๋ง Objection์ด๋ผ๋ ํด์ ์ฌ์ฉํ์๋ฉด ๋ช ๊ฐ์ง ๋๊ตฌ๋ค๊ณผ ์กฐํฉํ์ฌ ๋ค์ํ ์๋๋ฅผ ํ ์ ์์ต๋๋ค.
Objection์ Run-Time Exploration ์ฆ ๋ฐํ์์ ์กฐ์ํ์ฌ ๊ณต๊ฒฉ์๊ฐ ์ํ๋ ํ์๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํ ์ ์๋๋ก ํ๋ก์ธ์ค์ ์ค์๊ฐ์ผ๋ก ์ฃผ์ ํ์ฌ ์ฌ์ฉํ๋ฉฐ Frida ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ Python3 ํ๊ฒฝ์์ frida ํ๊ฒฝ์ ์ฌ์ ์ ๊ตฌ์ถํด์ฃผ์๊ณ pip install์ ํตํด objection์ ์ค์นํด์ผ ๋ฉ๋๋ค.
*ํ๋ฆฌ๋ค ํ๊ฒฝ ๊ตฌ์ถ
/* 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 |