기기 : 아이폰 8
ios : 16.7.10
3uTools: iOS 기기 관리 및 펌웨어 플래싱 도구
palen1x: Palera1n 루팅 도구를 실행하기 위한 Linux 기반 툴
iTunes: 백업 및 iOS 장치 복구, 파일 관리
ventory : USB 플래시 드라이브에 여러 개의 운영체제를 부팅 가능한 이미지 파일로 저장하고 실행할 수 있도록 돕는 도구(현재 palen1n 만 설치됨)
백업: iTunes나 iCloud를 통해 반드시 모든 데이터를 백업합니다. 루팅 과정에서 데이터 손실이 발생(but 공기계라 상관 X)
충전: 기기 배터리가 충분히 충전되어 있는지 확인합니다. 최소 50% 이상 추천.
: https://ios.cfw.guide/get-started/iPhone-8.html
: https://ios.cfw.guide/installing-palera1n/
: https://ios.cfw.guide/using-palen1x/
: https://youtu.be/afWF9UrYniQ?si=8uRBGQh0FSQ36aWa
: https://youtu.be/JXYV57b45fU?si=6-O5x2hPy_tHfAhP
: https://hyotwo.tistory.com/141#google_vignette
루팅은 iOS 장치에서 제한된 권한을 우회하여 시스템 파일과 설정에 접근할 수 있게 해주는 과정
이후 루팅 성공시
기본적으로 접근할 수 없는 시스템 파일을 수정하고, Apple이 승인하지 않은 서드파티 앱이나 트윅(tweak)을 설치 가능함
사전에 usb를 사용해 ventory 세팅 후 시작
DFU 모드 Device Firmware Update
: iOS 기기의 가장 낮은 수준의 시스템 복구 모드
ios 복구, 탈옥, 부팅 문제 해결, 다운그레이드 등에 사용
리커버리 모드
: iPhone이 부트로더를 사용하는 상태로, iOS 시스템에 문제가 있을 때 복구를 진행할 수 있는 모드, itunes 를 통해 복구 가능
루팅 완료 후 기기 설정
루팅이 완료되면, 기기 재부팅 후 설정에서 추가적인 루트 권한을 확인할 수 있다. (어플 생성됨)
rootful 과 rootless 의 차이점
rootful
: 시스템 파티션에 직접 접근하여 루트 권한을 획득하는 방식
: 시스템 파일을 수정할 수 있으며, 탈옥 후 다양한 시스템 변경과 파일 접근이 가능
=> 내부 구조를 깊게 변경 가능함
: 단점으로는 iOS 업데이트 후 루팅이 해제되거나 장치가 벽돌이 될 위험있음
rootless
: 루트 파티션을 건드리지 않고 탈옥이 진행, 시스템 파일을 수정하지 않으므로 안정성이 높고 iOS 업데이트에 더 유연하게 대처 가능
: 루트 접근 권한은 제한되지만, 대부분의 탈옥 기능을 사용 가능
=> 안정성, 호환성이 비교적 높음
: iOS 16 이후에서 많이 사용되며, Apple의 보안 업데이트에 더 적은 영향을 받음
주의사항
Frida (Frida IOS Intergration)
구동 원리
동적 코드 주입 & 후킹
Frida 서버 실행
: 대상 기기에서 Frida 서버를 실행, 시스템의 루트 권한이 필요함
클라이언트와 연결
: Frida 클라이언트를 통해 Frida 서버와 연결, 클라이언트는 Python을 기반으로 동작하고, 사용자가 작성한 자바스크립트를 실행할 준비
타겟 프로세스 선택
: Frida 클라이언트에서 분석하려는 프로세스를 선택합니다.
모바일 앱이나 시스템 서비스를 타겟으로 지정
코드 주입
: 클라이언트에서 작성한 자바스크립트 코드가 타겟 프로세스에 주입됨,
이 과정에서 Frida는 타겟 프로세스의 메모리에 접근하고, 지정된 함수나 메서드를 후킹하여 코드를 삽입한다.
실시간 후킹 및 분석
: 주입된 코드는 타겟 프로세스 내에서 실시간으로 실행되고, 함수 호출을 모니터링하거나, 함수의 동작을 변경하는 작업을 수행한다.
분석된 결과는 클라이언트로 전달되며, 이후 앱의 동작을 실시간으로 모니터링할 수 있다
용도
: 앱에서 실행 중인 코드를 수정, 특정 메서드를 후킹하여 실행 흐름을 분석할 수 있다
: 보안 테스트 중 앱의 취약점을 찾거나, 앱의 보호 메커니즘을 우회하는 데 사용
후킹?
: 프로그램의 실행 흐름을 가로채거나 특정 기능을 변경
프리다 설치 간단 가이드
Frida 서버 설치
: 탈옥된 iOS 기기에서 Frida 서버를 다운로드하여 실행
frida-server 바이너리를
/usr/local/bin 디렉토리에 복사, 실행 권한을 부여
Frida 클라이언트 설치
컴퓨터에 Python을 설치 후, pip 명령어로 Frida 클라이언트를 설치
pip install frida-tools
Frida 서버 실행
아이폰에서 실행
./frida-server &
PC 와 연결