IOS Local Data Storage IOS Application이 동작하다가 Local Data Storage에 민감한 데이터가 저장될 수 있는 공간들의 종류를 살펴보고 그 공간을 objection tool을 사용해 점검하는 방법을 살펴본다. Keychain "ios keychain dump" 명령어를 사용해 Keychain에 저장된 데이터를 확인할 수 있다. 예시코드는 아래와 같다. Binary Cookie "ios cookies get --json" 명령어를 사용해 Binary Cookie에 저장된 데이터를 확인할 수 있다. 실제 내 앱에서는 Binary Cookie에 데이터를 넣는 실습은 진행해보지 못했다. Binary Cookie에 데이터가 저장되면 아래와 같이 출력되는 것을 확인할 수 있다..
objection은 FRIDA를 기반으로 동작하는 Mobile Application Runtime Analyze Tool 이다. Android와 IOS에서 모두 사용가능하지만 명령어의 차이가 존재한다. 해당 포스팅에서는 IOS에 대해서만 다루도록 한다. 추후 Android를 다시 공부하게 된다면 반드시 다시 공부해보고 싶을만큼 강력한 Tool이다. https://github.com/sensepost/objection sensepost/objection 📱 objection - runtime mobile exploration. Contribute to sensepost/objection development by creating an account on GitHub. github.com objection ..
lldb를 사용해 IOS의 Application 동적 디버깅을 진행하는 방법에는 두가지가 있다. 1) macOS의 xcode를 사용해 원격으로 디버깅을 진행하는 방법 2) lldb-10 tweak을 설치해 로컬에서 진행하는 방법 (별다른 Source를 추가하지 않고 그냥 검색을 하면 나온다.) 나는 후자를 선택해서 진행했으며 로컬연결은 OpenSSH를 설치해 터미널상에서 진행했다. IOS Version : IOS 12.4.8 IOS Device : IPhone 6 Jailbreak : Yes (unc0ver) lldb-10 을 사용해 Process를 Attach하는 방법 1. ps -ef 를 사용해 Attach하고 싶은 Proccess의 PID를 찾는다. (당연히 App을 실행한 이후에) 2. lldb-..
IOS에서 Application에서 탈옥을 탐지하기 위해서 사용하는 코드의 예시들을 살펴보겠다. 크게 2가지로 나눌 수 있다. 1. 탈옥시 생기는 경로가 존재하는지 확인해 탐지하는 방법. 2. 탈옥시 생기는 Root 권한으로만 접근할 수 있는 곳에 접근해 탐지하는 방법. 이외에 추가적인 방법이 존재하긴한다. 밑에서 소개하도록 한다. 1. 탈옥시 생기는 경로의 존재여부 검사. (여러 앱을 분석하면서 검사하는 경로를 추가할 예정이다.) (fileExistsAtPath: 함수를 통해서 경로의 존재여부를 판단한다.) (NSArray에 경로들을 쭈욱 넣고 아래와 같은 루틴으로 일치하는게 존재하는지확인한다.) 이와 같이 fopen 함수를 통해서도 판단할 수 있다. (최신) - *표시한게 현재 내 환경에서 탐지된 경..
IPA의 Binary Patch를 통해서 ARM Assembly로 구성된 코드 자체를 수정해 내가 의도한 실행흐름으로 바꾸게 된다. Binary Patch를 하게되면 무결성 검증에 걸리기 때문에 무결성 검증이 기본적으로 우회가 되어있어야 한다. ( 무결성 검증 이전의 동작에 대해서는 Binary Patch를 통해서 수행이 가능하다. ) Binary Patch를 수행하는 과정을 살펴보자. 사용한 앱은 DVIA에서 제공하는 앱이며, Runtime Manipulation Login Method1에 대해서 진행했다. 1. IPA 추출(Decrypt)후 Binary File을 IDA에 올린다. IPA 파일를 CrackerXI를 통해서 Decrypt한 후 추출한다. 왼쪽에 정상적으로 복호화된 API를 확인할 수 있..
App Store에 올라가는 Application의 IPA 파일은 자동으로 Encrypt된다. 따라서 우리가 분석을 위해서 IPA를 PC로 추출하기 위해서는 반드시 Decrypt과정과 임의의 서명과정을 거쳐야만 한다. IOS 11 이전에는 Clutch를 사용해 Decrypt를 수행했다. 그러나 막히면서 이상 상위 버전에서는 CrackerXI 혹은 frida-ios-dump를 이용해 Decrypt 과정을 수행합니다. [ CrackerXI 사용법 ] 1. Cydia의 소스에탭에서 편집-추가에 http://cydia.iphonecake.com/ 을 입력해 추가한다. 2. AppCake가 생기면 거기에 포함된 CrackerXI를 설치한다. 3. 앱 실행후 새로고침을 누르면 추출가능한 APP List가 나온다. ..