루팅 매뉴얼

신원상·2024년 10월 2일

루팅 환경

기기 : 아이폰 8
ios : 16.7.10

사용 도구

3uTools: iOS 기기 관리 및 펌웨어 플래싱 도구
palen1x: Palera1n 루팅 도구를 실행하기 위한 Linux 기반 툴
iTunes: 백업 및 iOS 장치 복구, 파일 관리
ventory : USB 플래시 드라이브에 여러 개의 운영체제를 부팅 가능한 이미지 파일로 저장하고 실행할 수 있도록 돕는 도구(현재 palen1n 만 설치됨)

  • lg gram 사용시 부팅시 f2 버튼 누르고 부팅 후 변경

준비 사항

백업: 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 세팅 후 시작

  1. Palen1x 설치
  • Palera1n 루팅 도구는 Palen1x라는 Linux 기반 환경에서 실행됩니다. USB를 통해 PC에 설치 후 부팅할 수 있도록 준비
  1. DFU 모드 진입
    iPhone 8을 DFU 모드로 전환 (볼륨 하 버튼과 전원 버튼을 이용해 DFU 모드로 진입 => 작동 방식 알려줌)

DFU 모드 Device Firmware Update
: iOS 기기의 가장 낮은 수준의 시스템 복구 모드
ios 복구, 탈옥, 부팅 문제 해결, 다운그레이드 등에 사용

리커버리 모드
: iPhone이 부트로더를 사용하는 상태로, iOS 시스템에 문제가 있을 때 복구를 진행할 수 있는 모드, itunes 를 통해 복구 가능

  1. Palera1n 실행
    Palen1x 환경에서 Palera1n 도구를 실행하여 루팅 절차를 시작

루팅 완료 후 기기 설정
루팅이 완료되면, 기기 재부팅 후 설정에서 추가적인 루트 권한을 확인할 수 있다. (어플 생성됨)

rootful 과 rootless 의 차이점
rootful
: 시스템 파티션에 직접 접근하여 루트 권한을 획득하는 방식
: 시스템 파일을 수정할 수 있으며, 탈옥 후 다양한 시스템 변경과 파일 접근이 가능
=> 내부 구조를 깊게 변경 가능함

: 단점으로는 iOS 업데이트 후 루팅이 해제되거나 장치가 벽돌이 될 위험있음

rootless
: 루트 파티션을 건드리지 않고 탈옥이 진행, 시스템 파일을 수정하지 않으므로 안정성이 높고 iOS 업데이트에 더 유연하게 대처 가능
: 루트 접근 권한은 제한되지만, 대부분의 탈옥 기능을 사용 가능
=> 안정성, 호환성이 비교적 높음

: iOS 16 이후에서 많이 사용되며, Apple의 보안 업데이트에 더 적은 영향을 받음

주의사항

  • ios 업데이트 금지
  • 전원 off 금지(재부팅 주의)

Frida (Frida IOS Intergration)

  • 동적 코드 주입을 통해 앱의 동작을 실시간으로 변경하거나 분석할 수 있는 도구
  • 앱의 메모리와 실행 상태를 분석 가능
    ios, 안드, 윈도우, 맥, 리눅스등 다양한 곳에서 사용 가능

구동 원리

  • 클라이언트-서버 구조로 동작
  • Frida 서버가 대상 기기에서 실행 중인 프로세스에 접근하여 특정 함수나 메서드를 후킹하고, Frida 클라이언트가 이를 제어하거나 분석하는 방식

동적 코드 주입 & 후킹

Frida 서버 실행
: 대상 기기에서 Frida 서버를 실행, 시스템의 루트 권한이 필요함

클라이언트와 연결
: Frida 클라이언트를 통해 Frida 서버와 연결, 클라이언트는 Python을 기반으로 동작하고, 사용자가 작성한 자바스크립트를 실행할 준비

타겟 프로세스 선택
: Frida 클라이언트에서 분석하려는 프로세스를 선택합니다.
모바일 앱이나 시스템 서비스를 타겟으로 지정

코드 주입
: 클라이언트에서 작성한 자바스크립트 코드가 타겟 프로세스에 주입됨,
이 과정에서 Frida는 타겟 프로세스의 메모리에 접근하고, 지정된 함수나 메서드를 후킹하여 코드를 삽입한다.

실시간 후킹 및 분석
: 주입된 코드는 타겟 프로세스 내에서 실시간으로 실행되고, 함수 호출을 모니터링하거나, 함수의 동작을 변경하는 작업을 수행한다.
분석된 결과는 클라이언트로 전달되며, 이후 앱의 동작을 실시간으로 모니터링할 수 있다

용도
: 앱에서 실행 중인 코드를 수정, 특정 메서드를 후킹하여 실행 흐름을 분석할 수 있다
: 보안 테스트 중 앱의 취약점을 찾거나, 앱의 보호 메커니즘을 우회하는 데 사용

후킹?
: 프로그램의 실행 흐름을 가로채거나 특정 기능을 변경

프리다 설치 간단 가이드

  1. Frida 서버 설치
    : 탈옥된 iOS 기기에서 Frida 서버를 다운로드하여 실행
    frida-server 바이너리를
    /usr/local/bin 디렉토리에 복사, 실행 권한을 부여

  2. Frida 클라이언트 설치

컴퓨터에 Python을 설치 후, pip 명령어로 Frida 클라이언트를 설치

pip install frida-tools

  1. Frida 서버 실행
    아이폰에서 실행

    ./frida-server &

  2. PC 와 연결

profile
wonsang

0개의 댓글