iOS 탈옥 탐지 우회 (Frida 이용)

모바일 앱을 실행 후 Menu > Jailbreak Detection > Jailbreak Test 1 순서대로 누르면 탈옥된 단말기를 탐지하는 문구가 실행된다.


⊙ DVIA 다운로드

▶ www.github.com/prateek147/DVIA


⊙ DVIA 설치

1. ipa 파일 압축 해제 > Payload 디렉토리 내의 DamnVulnerableIOSApp.app 디렉토리를 단말기 내의 /Application 디렉토리로 이동

2. 단말기 내의 /Application/DamnVulnerableIOSApp.app/DamnVulnerableIOSApp 실행 권한 추가

3. uicache 명령어 실행



find-classes.js 파일은 앱에서 사용하는 모든 클래스 정보를 출력하는 스크립트이다.



프리다로 대상 프로세스에 연결 후 js 파일을 로드하면 수 많은 클래스가 출력된다. Jailbreak 문자열을 필터링하면 JailbreakDetectionVC 클래스가 존재한다.


○ frida -U -l frida-classes.js DamnVulnerableiOSApp | findstr "Jailbreak"



find-method.js 파일은 앱에서 사용하는 모든 메소드를 출력하는 스크립트이다.



js 파일을 로드하면 JailbreakDetectionVC 클래스 내의 모든 메소드가 출력된다. jail 문자열을 필터링하면 - jailbreakTest1Tapped:, - jailbreakTest2Tapped:, - isJailbroken 메소드가 존재한다.


○ frida -U -l find-methods.js DamnVulnerableiOSApp | findstr "jail"



show-modify-method-return-value.js 파일은 앱에서 사용하는 클래스/메소드 내의 반환 값을 출력하는 스크립트이다.



js 파일을 로드하고, 단말기에서 Jailbreak Test 1 메뉴를 누르면 반환 값이 '0x1' 이 출력된다.


○ frida -U -l show-modify-method-return-value.js DamnVulnerableIOSApp



show-modify-method-return-value.js 파일에 반환 값을 '0x0' 으로 변조하도록 수정한다.



js 파일을 로드하면 반환 값이 '0x0' 으로 변조된다.



현재 앱의 화면을 보면 탈옥된 단말기가 아니라고 출력된다.



iOS 탈옥 탐지 우회 (Ghidra 이용)

프로그램을 실행하면 현재 활성화 되어 있는 프로젝트 목록이 출력된다. 모바일 단말기에 설치된 바이너리 파일(DamnVulnerableIOSApp)을 프로젝트에 드래그하면 여러 개의 분석 옵션이 제공한다.

 

▶ Ghidra 공식 홈페이지



Batch 옵션을 선택하면 32, 64비트의 MAC OSX 포맷 파일이 생성된다.



ARM-32-cpu0x9를 더블클릭하면 코드 브라우저 창이 실행되면서 자동으로 분석하기 시작한다.



탈옥 탐지를 우회하려면 클래스, 메소드, 반환 값 순서대로 찾아야 한다. 탈옥된 단말기에서 앱을 실행하면 Jailbroken 문구가 출력되었으므로 Symbol Tree 창에서 키워드를 검색한다.



검색하면 JailbreakDetectionVC 클래스 내의 여러 개의 탈옥 탐지 함수가 보이는데, isJailbroken 함수를 클릭하면 해당 함수의 디컴파일 코드를 보여준다. 코드를 보면 탈옥 단말기에 존재하는 파일이 존재하면 '1'을 반환한다.



조건문을 클릭하면 기계어 코드(어셈블리 코드)로 이동된다. 마우스 오른쪽 버튼을 클릭하고, Patch Instruction를 선택하여 0x01을 0x00으로 변경한다.



코드 패치된 파일을 저장하려면 File > Export Program > Format : Binary를 선택하면 된다.



로컬에 저장된 파일 이름을 DamnVulnerableIOSApp으로 변경하고, 모바일 단말기의 Payload/ DamnVulnerableIOSApp.app 디렉토리에 복사하고, 앱을 실행하면 탈옥 탐지가 우회된다.



▶ iOS 바이너리 패칭 (앱 위변조)

▶ 아이폰 미러링 화면제어 (iPhone mirroring)

▶ 안드로이드 루팅 탐지 우회 (Frida Hooking)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유