ํฐ์คํ ๋ฆฌ ๋ทฐ
๊ฐ์
iOS ์ฑ์ ์ง๋จ์ ํ๊ธฐ ์ํด์ ๋ณ๋์ iPA ํ์ผ์ ์ ๋ฌ๋ฐ์ ๋ถ์์ ํ๊ฑฐ๋ ๊ทธ๋ ์ง ๋ชปํ ๊ฒฝ์ฐ ์๋น์ค์ ๋ฑ๋ก๋์ด ์๋ ์ฑ ์คํ ์ด์์ ์ง์ ๋ค์ด๋ก๋ํ์ฌ ์งํํด์ผ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ง์ ์ ๋ฌ๋ฐ์ผ๋ฉด ๋ฌธ์ ๊ฐ ์์ง๋ง ์ฑ ์คํ ์์ ๋ด๋ ค๋ฐ์ ๊ฒฝ์ฐ์๋ ์ฑ ๋ด๋ถ์ ์ฝ๋ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํ "FairPlay Code" ์ํธํ๊ฐ ์ ์ฉ๋์ด ์๋๋ฐ ์ํธํ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ปค๋์ "Match-O"๋ก๋์ ์ํด ๋ฐํ์ ์ค์ ํด๋ ์ด ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ์ฑ ์คํ ์์ ๋ฐ์ ์ฑ์ ๋ฆฌ๋ฒ์ฑ ๊ณผ์ ์ ๊ฑฐ์น๊ธฐ ์ํด์ ์ฌ์ ์ ๋ณตํธํ ์์ ์ ์งํํด์ผ ๋๋ค๋ ๊ฒ์ ๋๋ค.
otool -l Binaryname | grep -A4 LC_ENCRYPTION_INFO
otool์ ํตํด ์ฑ์ FairPlay DRM ์ฌ๋ถ๋ฅผ ํ์ธํด๋ณด๋ฉด "cyptid: 0" ํญ๋ชฉ์ด ๋ณด์ ๋๋ค. ์ด๋ ์ํธํ๊ฐ ๋์ด ์์ง ์๋ค๋๊ฒ์ ์๋ฏธํ๊ธฐ์ ํด๋น ํ์ผ์ ๋ก์ปฌ๋ก ์ถ์ถํ์ฌ ๋ฐ๋ก ๋ถ์์ด ๊ฐ๋ฅํฉ๋๋ค.
Windows ํ๊ฒฝ
์ฑ์ ๋ณตํธํ ํ๊ธฐ ์ํด์ ๋ํ์ ์ผ๋ก "Class-dump, CrackerXI, frida-ios-dump"๊ฐ ์กด์ฌํฉ๋๋ค. ์ ๋ ๋ณดํต CrackerXI๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ frida-ios-dump๋ฅผ ํตํด ๋ณตํธํ๋ฅผ ์งํํ๊ณ ์์ต๋๋ค.
https://github.com/AloneMonkey/frida-ios-dump
๋ค์ด๋ก๋ ํ ๋ด๋ถ ๊ฒฝ๋ก๋ก ์ด๋ํ์ฌ ์ค์ง์ ์ผ๋ก ์ฌ์ฉ๋๋ dump.py ์ ํ์ ์ค์น ๋ช ๋ น์ด๋ค์ด ๋ด๊ธด requirements.txt ํ์ผ์ด ํ์ธ๋ฉ๋๋ค.
pip install -r requirements.txt –upgrade
์์ ๋ช ๋ ค์ด๋ฅผ ํตํด ํ์ ๋ช ๋ น์ด๋ค์ ์ค์นํฉ๋๋ค.
์ค์น ํ USB๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋๋ฐ์ด์ค ๋ด๋ถ์ ์ฑ ๋ฆฌ์คํธ๋ค์ ์ถ๋ ฅํด์ฃผ๋์ง ํ์ธํด์ฃผ์๊ณ Google Maps๋ฅผ ๋์์ผ๋ก ํ ์คํธ๋ฅผ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
https://code.google.com/archive/p/iphonetunnel-usbmuxconnectbyport/downloads
์ด์ ์์ ๊ฒฝ๋ก๋ก ๋์ด๊ฐ ๋ก์ปฌ PC์ ํฐ๋๋ง์ ์งํํด์ค iTUNNEL์ ์ค์นํด์ฃผ์ ์ผ ๋ฉ๋๋ค. itunnel_mux_rev71 ํ์ผ์ ๋ค์ด๋ก๋ํด์ฃผ์๋ฉด ์์ฒ๋ผ. exeํ์ผ์ด ํ์ธ๋๋ฉด ๋ฉ๋๋ค.
itunnel_mux.exe --iport 22 --lport 2222
.exe ๊ฒฝ๋ก๋ก ์ด๋ํ์ฌ ์ฌ์ ์ ์ฌ์ฉ ์ค์ธ SSH 22๋ฒ ํฌํธ์ ์ถ๊ฐ์ ์ผ๋ก ๋ก์ปฌ ํฌํธ 2222๋ฅผ ์ง์ ํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
๋ง์ฝ ์๋ฌ๊ฐ๋ฐ์ํ ๊ฒฝ์ฐ ์๋์ ํ์ผ์ ์ถ๊ฐ์ ์ผ๋ก ์ค์นํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ๋ณดํต iTunes๋๋ผ์ด๋ฒ ๊ด๋ จ ๋ฌธ์ ๋ ๋ณตํธํ ์งํ ์ ์๋์ฐ ํ๊ฒฝ์ ๋ฌธ์ (chmod, ls ๋ช ๋ น์ด ๋ฑ)๋ก ์ธํด ๋ฐ์๋ฉ๋๋ค.
1. "iTunesDriver64_0205.exe" ๊ฒ์ ํ ์ค์น
2. gow์ค์น(https://github.com/bmatzelle/gow/releases/download/v0.8.0/Gow-0.8.0.exe)
C:\Users\{์ง์ ํ ์ฌ์ฉ์ ์ด๋ฆ}\AppData\Local\Temp
๋ง์ฝ ๋๋ผ์ด๋ฒ์ gow๋ฅผ ๋ชจ๋ ์ค์นํ๋๋ฐ๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ํฐ๋ฏธ๋ ์ฐฝ์ ๋ซ์ ํ ๋ค์ ์๋ํด ๋ณด์๊ณ ํด๋น ๊ฒฝ๋ก๋ฅผ ํ๊ณ ๋์ด๊ฐ "Payload"๋ผ๋ ์์ฌ ๋๋ ํ ๋ฆฌ๊ฐ ์๋์ง ํ์ธํด์ฃผ์๊ณ ์ญ์ ํฉ๋๋ค.
python dump.py com.google.Maps
์ด์ dump.py ํ์ผ์ ํ์ฉํ์ฌ DRM ๋ณตํธํ ์์ ์ ์์ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ๋ก๋ฉ ๋ฐ๊ฐ 100%๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์
๋ณตํธํ ์์ ์ด ๋ชจ๋ ์๋ฃ๋๋ฉด ์์ฒ๋ผ ์ ์ผ ํ๋จ ์ฝ์์ "Generating "Google Maps.ipa" ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
FairPlay DRM ๋ณตํธํ๊ฐ ์์ ๋ ipaํ์ผ์ ํ์ฌ ๋๋ ํ ๋ฆฌ์ธ frida-ios-dump-master ํด๋ ์์. ipa ํ์ฅ์๋ก ์์ฑ๋ฉ๋๋ค. ์ด์ ํด๋น ํ์ผ์ ์์ถ์ ํด์ ํด๋ณด๊ฒ ์ต๋๋ค.
์์ถ ํด์ ํด๋๋ก ๋ค์ด๊ฐ๋ณด๋ฉด ๊ธฐ์กด์ ์ํธํ๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ๋ชจ๋ ๋ณตํธํ๋์ด ๋ํ๋ฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋ก์ง์ ๋ถ์ ํ ์๋ ๋ฐฉ์, ๋ด๋ถ ํด๋์ค ๊ตฌ์กฐ๋ฅผ ํ์ธํ์๋ฉด ๋ฉ๋๋ค.
Linux ํ๊ฒฝ
์๋์ฐ ํ๊ฒฝ์์ ์งํํ ๊ฒ์ฒ๋ผ frida-ios-dump ํ์ด์ง์์ ๋ฆฌ๋ ์ค ํ๊ฒฝ์ผ๋ก Clone ํ์ฌ ๋ค์ด๋ก๋ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
ํ์ฅ์๊ฐ “zip”์ธ ํ์ผ์ด ๋ค์ด๋ก๋๋๊ฒ์ ํ์ธํ๊ณ "unzip" ํด์ฃผ์๋ฉด dump.py ๋ requirements.txt๊ฐ ์๋ ํด๋๊ฐ ๋ํ๋ฉ๋๋ค.
frida-ios-dump ํ์ผ ๋ด๋ถ์ ์กด์ฌํ๋ dump.py ํ์ผ์ ํ์ด์ฌ 3.x ๋ฒ์ ์์ ๋์ํฉ๋๋ค. Kali Linux์๋ python2.x ๊ณผ 3.x ๋ฒ์ ์ด ๊ณต์กดํ๋ฏ๋ก ๋ช ๋ น์ด ์คํ ์ python3๋ก ๋ช ์ํ์ฌ ์คํํ๊ฑฐ๋ Linux์ฉ anaconda ํ๊ฒฝ์ ๊ตฌ์ถํ์ฌ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค.
# sudo apt update && sudo apt install python3-pip
# sudo pip3 ์ ๋ ฅํ์ฌ ์ค์นํ์ธ
# pip3 install -r requirements.txt => ๋ฆฌ๋ ์ค์ anaconda ์์ด ๊ทธ๋ฅ ์ค์นํ๊ณ ์ ํ ๊ฒฝ์ฐ pip3 ๋ช ์
๋ง์ฝ ๋ฆฌ๋ ์ค ํ๊ฒฝ์์ "pip" ๋ช ๋ น์ด๊ฐ ์๋ค๊ณ ๋์ฌ๊ฒฝ์ฐ ์์ ๋ช ๋ น์ด๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ์ธํ์ฌ pip์ฌ์ฉ์ ํ๋ณด ํ requirements.txt๋ฅผ ์ค์นํฉ๋๋ค.
# apt install libusmuxd-tools
์๋์ฐ ํ๊ฒฝ์์ itunnel์ ์ฌ์ฉํ๋ค๋ฉด ๋ฆฌ๋ ์ค์์๋ “iproxy”๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง ํ์ฌ ํจํค์ง๊ฐ ๋ซํ๊ธฐ ๋๋ฌธ์ apt install iproxy ํ ๊ฒฝ์ฐ ์กด์ฌํ์ง ์๋๋ค๊ณ ๋ํ๋๋ค.
์ค์น๋ฅผ ๋ง์ณค๋ค๋ฉด itunnel์์ ํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก iPHONE์ ์ด๋ฆฌ 22๋ฒ ํฌํธ๋ฅผ ๋ก์ปฌ 2222 ํฌํธ๋ก ํฐ๋๋ง์ ์งํํฉ๋๋ค.
iPHONE ๋จ๋ง์ ์ฐ๊ฒฐํ๋ฉด ์๋์ ๊ฐ์ ํ์ ์ฐฝ์ด ๋ํ๋๋ค. ํ๋จ์ “Connect to a virtual machine”์ผ๋ก ์ ํ ํ ์์ ์ ๊ฐ์ ์ด๋ฏธ์ง์ ์ฐ๊ฒฐ์ํค๋ฉด ๋๋ ํ ๋ฆฌ ๋ฆฌ์คํธ์ “iPhone”์ด ๋ํ๋ฉ๋๋ค.
Kali Linux์ iPhone์ด ์ ์์ ์ผ๋ก attaching ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์ฑ์ ์ค์น๋ ๋ฆฌ์คํธ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด๋ด ๋๋ค.
๋ฐ์ด๋๋ฆฌ ํ์ผ์ด ํ๊ธ๋ก ๋์ด์์ ๊ฒฝ์ฐ ์๋์ฐ ํ๊ฒฝ์์ ๋ณตํธํ ์ “์ก์ธ์ค๊ฐ ๊ฑฐ๋ถ๋์์ต๋๋ค.” ๋ฑ ๊ธฐํ ์๋ฌ๊ฐ ๋ค์ํ๊ฒ ๋ฐ์ํ๋๋ฐ, ์ด๋ด๋๋ Linuxํ๊ฒฝ์์ Dump๋ฅผ ์งํํ๋ฉด ์๋ฌ ์์ด ๋ณตํธํํ ์ ์์ต๋๋ค.
iproxy์์ ์ถ๋ ฅ ๋ฌธ๊ตฌ๊ฐ ์์ฑ๋๋ฉด์ ๋์ ์ฑ์attach ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋ณตํธํ๋ ipaํ์ผ์ด ์์ฑ๋ ๊ฒ์ ํ์ธํ์ผ๋ฉด ์ด์ ๋ก์ปฌ PC๋ก ์ฎ๊ฒจ ๋ถ์์ ์งํํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ ์์ ์ผ๋ก ๋ณตํธํ๊ฐ ๋์๋์ง ํ์ธํ๊ธฐ ์ํด์ ๋ด๋ถ์ ์กด์ฌํ๋ ๋ค์ํ ํด๋์ค๋ช ์ด ์ด๋ป๊ฒ ๋ํ๋๋์ง ํ์ธํด๋ณด์๋ฉด ๋ฉ๋๋ค. ๋ง์ฝ ํด๋์ค๋ช ์ด ๋๋์ ๋ฌธ์์ด๋ก ์๋ณ์ด ํ๋ค๊ฒ๋ ๋์ด ์๋ค๋ฉด ๋ณตํธํ๊ฐ ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ ๊ฒ์ด๋ผ ๋ณผ ์ ์์ต๋๋ค.
'MOBILE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] Setcancelable ํตํ ์ฑ ์ข ๋ฃ ๋ง๊ธฐ (0) | 2022.02.02 |
---|---|
[iOS] Shared Clipboard ์ทจ์ฝ์ (0) | 2021.09.25 |
[iOS] Functions Hooking (1) | 2021.09.24 |
[iOS] Objection ์ฃผ์ ๋ช ๋ น์ด (0) | 2021.02.14 |
[Android] Data Storage(Plain/Encryption) ์ทจ์ฝ์ (0) | 2021.02.13 |