본문 바로가기
보안 및 개발/MOBILE

[iOS] 탈옥폰에서 분석환경 세팅 (clutch, class-dump)

by CH@3M 2019. 10. 7.

1. iOS ssh 접속

  • 루팅 된 iOS폰을 이용 (버전에 따라 다름, 진행은 iPhone5_9.2.1)
1. Home Depot 실행

2. enable jailbrake 활성화

3. specific 실행

4. 메모에 저장된 메모리값 전체 복붙

5. 진행되면서 자동 재부팅

6. Cydia 통해 Open SSH 재설치

7. ip확인 후 동일 네트워크에서 접속

8. 필요한 앱 : Open SSH, nano, Filza file manager 등
  • ssh 접속 ( 기본적으로 아이폰은 root / alpine 계정 사용)
mac_pc#ssh root@192.168.0.16
root@192.168.0.16's password: ***
chaem-iPhone:~ root#
  • cydia impactor로 ipa 주입 https://android1219.tistory.com/34 -> 자꾸 실패해서 아래아래 방법으로 진행
  • cydia에서 ipa installer console을 이용하는 방법도 있음 -> 자꾸 실패해서 아래 방법으로 진행
  • xftp로 ipa파일 주입하고 filza 앱으로 ipa 파일 설치 후, 설정 > 일반 > 프로파일 및 기기 관리 > Cross Communication Inc. > 앱 신뢰 > 바탕화면에 설치된 앱 실행

2. 사용자 설치 Application 위치

  • 사용자 Application 설치 위치
  • 설치 위치는 iOS 설정에 따라 다르다 find / -name Application 2>/dev/null이용해 위치를 파악한다.
  • /private/var/mobile/Containers/Bundle/Application 내 존재
  • 아래 이미지와같이 알아보기 어렵지만 설치된 일자를 확인하여 대략적 유추한다.

Installed Application

3. Clutch2 를 이용한 Decrypt

  • Clutch ( https://github.com/KJCracks/Clutch/releases 링크에서 다운로드 가능)
  • Clutch는 iOS 11 이상에서는 동작하지 않는 것으로 보인다
  • FileZilla와 같은 툴을 이용하여 아이폰으로 전송
  • ./Clutch -i로 현재 설치 된 Application을 볼 수 있다
  • 위의 내용에서 보이는 숫자를 이용해 ./Clutch -b 숫자 를 입력하게 되면 알아서 Decrypte 진행한다.

Clutch2.0.4 를 이용한 Decrypt

  • ipa파일이 이미 있을 경우 진행할 필요 없어 보임
  • clutch로 복호화해주지 않아도 IDA에서 복호화해주는 경우도 있는 것으로 보임
  • /private/var/mobile/Containers/Bundle/Application/109D29CA-CFE1-43CB-ADDA-4002CE44B7D2/Multi.app
  • dyld: Library not loaded: /usr/lib/libpcre.0.dylib 에러 발생 시, cydia에서 pcre를 설치
  • 참고 : (https://rootable.tistory.com/tag/class-dump-z)

 

4. clutch 사용 후 class-dump 사용

( 버전에 따라 class-dump-z는 동작하지 않는 것으로 보임)

chaemui-iPhone:/private/var/containers/Bundle/Application/70510B9B-E08D-4ADC-983A-EB5A2475258A/AppName.app root# class-dump AppName 
2019-11-13 09:19:09.934 class-dump[8119:673753] We don't support 64-bit Mach-O files.


chaemui-iPhone:/private/var/containers/Bundle/Application/70510B9B-E08D-4ADC-983A-EB5A2475258A/breadwallet.app root# otool -arch all -Vh AppName
AppName:
Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
MH_MAGIC_64   ARM64        ALL  0x00     EXECUTE    57       6344   NOUNDEFS DYLDLINK TWOLEVEL PIE

 

  • class-dump에서 "class-dump[3795:113367] We don't support 64-bit Mach-O files." 에러가 발생하여 otool을 이용하여 아키텍쳐를 확인해 보았다. class-dump는 32bits 환경에서만 작동하는 것으로 예상된다. 
  • lipo를 이용하여 아키텍쳐를 변경해 줄 수 있을 것으로 기대했으나, 다음과 같은 에러가 발생하고, 동작하지 않음 ㅠ
chaemui-iPhone:/private/var/containers/Bundle/Application/70510B9B-E08D-4ADC-983A-EB5A2475258A/AppName.app root# lipo -thin armv7 AppName -ouput NewName
fatal error: lipo: unknown flag: -ouput
반응형

'보안 및 개발 > MOBILE' 카테고리의 다른 글

[iOS] cycript 사용법  (0) 2019.10.17
[iOS] otool 사용법  (0) 2019.10.17
[iOS] objection 툴 사용  (0) 2019.10.07
[iOS] 파일시스템 구조  (0) 2019.10.07
[iOS] Frida 사용자함수 hooking  (0) 2019.10.07