탈옥 탐지 우회는 기술상, 시간상 어려운데 ipa 패키지에 대한 무결성 검증을 하지 않는 경우(낮은 확률의 Case)에 유용한 옵션이 될 수 있음.
Frida on Non-rooting Device보다 절차가 번거로움.
이하 macOS 10.14 VM, XCode 11.2, iOS 12.4(iPhone 6S+)에서 테스트 진행.
Xcode test 프로젝트 생성하고, 비탈옥단말에 설치 및 Profile 신뢰설정.
security find-identity -p codesigning -v // 서명 identity값 확인
brew install ios-deploy // ios-deploy 설치
brew install npm // npm 설치
npm install -g applesign // applesign 설치
// insert_dylib 설치
git clone https://github.com/Tyilo/insert_dylib
cd insert_dylib
xcodebuild
cp build/Release/insert_dylib /usr/local/bin/insert_dylib
pip install objection // objection 설치
objection patchipa --source <decrypted ipa> --codesign-signature <서명 identity> --gadget-version <삽입할 frida-gadget 버전> // FridaGadget.dylib 삽입하는 patching 작업을 objection에서 자동으로 수행해줌. 수행결과 현재 디렉터리에 something-frida-codesigned.ipa 파일 생성.
※ objection patchipa --help 명령어로 patchipa 관련된 options 확인 가능.
iOS App Signer 이용하여 패칭된 ipa파일에 대하여 사이닝 수행(제일 처음에 설치한 test 앱과 동일한 Provisioning Profile 사용하여야 함).
unzip <사이닝 완료된 ipa> // unzipping 하면 Payload 폴더 생성
ios-deploy --bundle Payload/example.app/ -W -d // 패칭 및 사이닝 완료된 ipa파일을 단말기에 설치
여기까지 완료되면 앱이 실행되면서 멈춰 있고, 터미널에서 다음 문구 출력.
frida-ps -Uai | grep Gadget // FridaGadget 실행 여부 확인
frida -U Gadget 명령어로 attach하여 분석 수행.
※출처
https://github.com/sensepost/objection/wiki/Running-Patched-iOS-Applications
'Information Security > iOS' 카테고리의 다른 글
iOS 14.2 탈옥(iPhoneX) (0) | 2020.12.02 |
---|---|
iOS 13.5.1 탈옥 - Bootrain (0) | 2020.08.17 |
iOS TouchID Bypass(DVIA-v2) (0) | 2020.07.23 |
DVIA-v2 Jailbreak Detection Test3 (0) | 2020.07.14 |
Cycript(iOS 12.4) (1) | 2020.07.10 |