본문 바로가기

분류 전체보기376

iOS 탈옥 탐지 기법 몇 가지 파일 기반 탈옥 탐지 파일 기반으로 탈옥 여부 탐지 탈옥 관련된 파일 및 디렉터리를 확인 파일 권한 확인 파일 권한을 확인하여 탈옥 여부를 확인 애플리케이션의 샌드박스 외부에 파일 생성을 시도하는 것으로 확인 가능 /private 경로에 파일을 생성하도록 하여 성공한다면 디바이스는 탈옥 된 것으로 간주. 프로토콜 핸들러 확인 프로토콜 핸들러를 확인 하여 탈옥 여부 확인 프로토콜 핸들러란 특별한 URL을 처리하는 프로그램으로 cydia:// 프로토콜 핸들러를 사용하여 시디아에서 설치 가능 Cydia URL을 열어 프로토콜 핸들러 확인가능. 거의 모든 탈옥 툴이 기본적으로 설치하는 cydia앱은 cydia:// 프로토콜 핸들러를 설치함 시스템 API 호출 시스템 API를 호출하여 탈옥 여부 확인가능 탈옥 되.. 2022. 12. 14.
iOS Local Data Storage 저장소 취약점 plist 애플리케이션 데이터 및 설정 정보를 저장하는데 사용하는 xml파일 저장된 정보는 암호화 되지 않아 중요한 정보를 저장하면 안됨 Info.plist에는 버전정보, 실행 가능한 바이너리 이름, 지원되는 iOS 버전 및 디바이스 모델 등의 정보가 저장됨. UserDefault UserDefault 취약점에서는 NSUserDefaults 클래스를 사용하여 저장 사용자 기본 설정 및 속석을 저장하는 가장 일반적인 방법 중 하나 애플리캐이션을 종료하고 재시작해도 정보를 계속 유지 로그인 상태를 저장에 사용 될 때도 있음(계정정보, 접근 토큰 등) NSUserDefaults로 저장한 데이터는 암호화 되지 않은 상태로 plist파일에 저장. Keychain iOS키체인은 암호화 키와 세션토큰과 같은 짧고 민.. 2022. 12. 11.
iOS 애플리케이션 디렉터리 구조 /Applications/app_name.app 사전에 설치된 애플리케이션 및 탈옥 애플리케이션 디렉터리 삭제하면 재설치 불가능 /var/containers/Bundle/Application/UUID 앱 스토어 애플리케이션 디렉터리(번들 컨테이너) 새로 설치 될 때 마다 UUID가 변경됨 /var/mobile/Containers/Data/Application/UUID 데이터 디렉터리 모든 애플리케이션 내부 데이터를 저장 샌드박스로 인해 탈옥 되지 않은 디바이스의 특정 애플리케이션에서만 접근 가능함 A앱은 A데이터 디렉터리만 접근 가능 /var/Keychains/keychain-2.db iOS Keychain 사용자 이름, 암호, 네트워크암호, 인증 토큰과 같은 민감한 정보를 저장하는 공간 sqlite 데.. 2022. 12. 10.
iOS 탈옥 Cydia 추천 트윅 iOS탈옥하면 설치되는 Cydia의 추천트윅을 정리해 보았다. 1. Apple File Conduit "2" Apple File Conduit "2"는 PC에서 직접 아이폰 내부 폴더에 접근이 가능하게 해준다.(iFunbox 와 함께 사용) https://www.i-funbox.com/en/page-download.html iFunbox | the File and App Management Tool for iPhone, iPad & iPod Touch. www.i-funbox.com 2. Filza File Manager 아이폰, 아이패드, 아이팟 터치용 파일관리자 3. MTerminal 모바일 터미널 환경 제공 4. Darwin CC Tools Otool도구를 사용하기 위해 설치 6. OpenSSH S.. 2022. 12. 6.
iOS 앱 생명 주기 iOS 생명주기 Not Running: 실행되지 않거나 종료된 상태 Inactive: 앱이 forground에서 실행 중이지만 이벤트나 알림을 받지 않음 Active: Forground에서 이벤트를 받을 수 있음. Background: Background 상태로 실행되어 사용자 상호작용 없이 코드를 실행함. Suspended: Background 상태로 메모리에 존재하지만 코드를 실행하지 않음. 참고 https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle 2022. 12. 5.
iOS 보안 모델 iOS 보안 모델 하드웨어 수준 보안을 제공 주요기능 보안구조를 하드웨어, 운영체제, 애플리케이션 레벨로 계층화 하드웨어/펌웨어 레벨에서 암호화가 진행 애플리케이션은 샌드박스 기술을 사용함 암호화를 통한 데이터 보호 코드서명 iOS 보안 부트 체엔 보안 부트체인 메커니즘을 사용하여 부트 프로세스에서 보안을 제공 부트 수준에서 감염되는 많은 루트킷과 멀웨어가 있기 때문에 각 단계별로 무결성 검사를 통해 위변조 검증 이것을 통해 iOS가 확인된 애플 디바이스에서만 실행될 수 있음.Boot ROM 절대적으로 신뢰할 수 있는 초기 단계 프로세서(보안칩, CPU)에 코드가 포함되어있어 업데이트 또는 변경 불가 Apple 루트인증서가 포함되어 다음 단계인 LLB(Low Level Bootloader)가 올바르게 서.. 2022. 12. 5.
iOS 앱 덤프하기 frida-ios-dump iOS 앱을 정적분석하기 위해서는 복호화된 ipa파일이 필요하다. 이번 포스트에서는 frida-ios-dump를 이용해 복호화된 ipa파일을 추출하는 법을 알아보겠다. 0. 준비 우선 탈옥된 아이폰, ssh가 접속되는 아이폰이 필요하며, PC에는 frida가 설치되어 있어야한다. 아직 안되어있다면 이전 포스트를 참고하라. https://lucidmaj7.tistory.com/379 아이폰 탈옥하기 with checkra1n (iOS 12.5.6) 집에서 굴러다니던 아이폰6를 unc0ver로 탈옥을 하고 나서 애플 계정세팅을 다시하려고 초기화를 해버렸는데.. 무조건 최신버전으로 올라가버려 12.5.6이되어 버렸다. 때문에 더 이상 내 아이폰6은 lucidmaj7.tistory.com https://luci.. 2022. 10. 19.
iOS 프리다(Frida) 세팅하기 이번 포스트에서는 iOS 앱을 동적 분석하는데 가장 많이 쓰이고 있는 프리다(Frida)를 세팅해 보겠다. Frida를 사용하는데 Windows든 macOS든 상관이 없으므로 Windows에서 진행하겠다. 0. 탈옥, 아이튠즈, python3 설치 아이폰이 PC에서 아이폰으로 인식하기 위해 아이튠즈가 설치 되어있어야 하며, 프리다(Frida)를 설치하고 사용하기 위해 python3를 설치 해야한다. 당연히 아이폰은 탈옥된 아이폰이어야 한다. 아이폰 탈옥 방법은 이전 포스트를 참고하자. https://lucidmaj7.tistory.com/372 아이폰 탈옥하기 (iPhone Jailbreak with unc0ver, Altstore) 어쩌다보니 iOS 보안쪽 프로젝트를 하게 되면서( 보안을 벗어나나..싶.. 2022. 10. 14.
아이폰 탈옥하기 with checkra1n (iOS 12.5.6) 집에서 굴러다니던 아이폰6를 unc0ver로 탈옥을 하고 나서 애플 계정세팅을 다시하려고 초기화를 해버렸는데.. 무조건 최신버전으로 올라가버려 12.5.6이되어 버렸다. 때문에 더 이상 내 아이폰6은 unc0ver로 탈옥이 불가능해졌다. appledb.dev 사이트에서 조회 해본 결과 checkra1n 탈옥툴로 iOS 12.5.6이 올라간 아이폰6를 탈옥 할 수 있는 것으로 나왔다. 바로 실행해본다. 1. checkra1n 다운로드 일단 macOS환경에서 checkra1n사이트에서 툴을 다운로드 받는다. checkra1n 0.12.4 beta 최신버전을 다운로드 받으면 dmg 패키지 파일이 다운로드 된다. checkra1n을 Application폴더로 드래그 앤 드롭 하여 설치한다. 2. checkra1.. 2022. 10. 13.