본문 바로가기

탈옥14

[iOS 보안] iOS 15 Dopamine(도파민) rootless탈옥하기 (아이폰7) iOS 15부터 애플의 SSV 도입으로 rootless탈옥이 등장하게 되었다. rootless탈옥을 지원하는 탈옥툴은 대표적으로 palera1n, dopamine이 있다. palera1n은 A12이전의 칩의 부트롬 취약점을 이용한 탈옥이라 재부팅하면 다시 컴퓨터와 연결하여 탈옥을 수행해야하는 Semi-tethered 탈옥이다. 하지만 Dopamine의 경우 iOS 커널 취약점을 기반으로한 Semi-Untethered방식의 탈옥 툴로써 언제든지 컴퓨터연결없이 탈옥을 진행할 수 있다. 그래서 대세인 Dopamine 탈옥을 하는 방법을 알아보겠다.1. 설치 요약Dopamine 탈옥을 하는 방법은 대략적으로 다음과 같다.Dopamine 앱설치탈옥!문제는 Dopamine앱을 어떻게 설치하냐이다.dopamine홈페.. 2025. 7. 5.
[iOS 보안] 완탈? 반탈? 탈옥의 종류 (Tethered, Untethered jailbreak) iOS 탈옥을 알아보다보면 완탈, 반탈이라는 용어들이 등장한다. 모두 탈옥의 상태를 의미하지만 약간 상태가 다른듯하여 이번에 정리해본다. 참고로 영어권에서는 Tethered, Untetherd, Semi-Tetherd, Semi-Unthered와 같은 단어로 통용된다.1. 완전탈옥 : 완탈 (Untethered jailbreak)완탈은 가장 이상적인 탈옥 형태로 한번 탈옥을 하게되면 그 상태가 재부팅을 하여도 여전히 유지되는 상태를 말한다. 즉 완탈된 아이폰은 마음껏 재부팅을 할 수 있고 부팅에 제약이 없다. 하지만 요새는 이러한 완탈 형태의 탈옥이 불가능하다.2. 반탈옥: 반탈 (Tethered jailbreak)반탈은 영어로 Tethered Jailbreak이라고 불린다. 그 뜻에서 알 수 있듯 무언.. 2025. 7. 3.
[iOS보안] Rootless jailbreak(탈옥)이란? Rootless jailbreak(탈옥)이란?Rootless 탈옥이라는 단어를 처음 보았다면 Root권한이 없는 탈옥인가? 생각 할 수 있다. 하지만 이것은 잘못된 유추이다. rootless에서 root란 시스템 루트(root) 디렉터리를 이야기한다. 즉 root디렉터리를 건들지 않는 탈옥에서 나온 단어라 볼 수 있다.기존 탈옥은 루트 시스템(/)을 마운트하여 시스템파일에 직접 수정이 가능하였지만 rootless탈옥은 시스템 파일을 건들지 않고 사용자 계정 영역(/var, /private/var, /Users 등)에서만 동작하는게 특징이다.rootless탈옥을 하더라도 root권한은 여전히 유효하다.Rootless jailbreak은 왜 필요하게 되었나? (SSV)rootless jailbreak은 본격.. 2025. 6. 19.
TheOS를 이용한 MobileSubstrate Tweak 빌드하기 주의) 본 포스트는 연구목적을 위해 작성되었습니다. 절대 악의적인 행위를 시도하지 마세요. 책임은 절대 본인에게 있습니다. This post is intended for research purposes. Never try anything malicious. The responsibility is absolutely up to you. 本郵報是爲研究目的而寫的。千萬不要嘗試惡意行爲。責任絕對在於本人。 本ポストは研究目的のために作成されました。絶対に悪意のある行為を試みないでください。責任は絶対本人にあります。 1. TheOS 설치 bash -c "$(curl -fsSL https://raw.githubusercontent.com/theos/theos/master/bin/install-theos)" 설치가 완료되면 다른 터.. 2023. 2. 25.
USB터널링을 통한 탈옥 아이폰 SSH 접속하기(with iproxy) 아이폰을 탈옥하게 되면 보통 22번포트 ssh로 접속하게되나 맥 또는 PC와 아이폰 간 네트워크 통신이 되지 않을 때에는 다른 방법을 이용해야 한다. 바로 USB터널링을 통해 맥에 아이폰을 USB로 연결하고 ssh로 접속 하는 것이다. 이 때 사용하게 되는 프로그램이 iproxy라는 프로그램인데 iproxy는 localhost의 특정 포트를 USB에 연결된 아이폰의 특정 포트로 터널링 해주는 기능을 수행한다. 사용 방법과 설정 방법은 매우 간단하다. 1. usbmuxd 설치 우선 usbmuxd를 homebrew로 설치해 준다. brew install usbmuxd 정상적으로 설치가 완료되면 terminal에서 iproxy명령어를 입력하면 다음과 같이 출력된다. 2. USB로 아이폰 맥과 연결하기 다음은 .. 2023. 2. 25.
iOS 탈옥 탐지 대응 방안 ptrace ptrace함수를 사용해 프로세스에 디버거를 attach하는 것을 방지 할 수 있음. iOS는 XNU 커널 기반으로 ptrace 시스템 콜 구현 ptrace는 공개 API가 아니기 때문에 App Store에서 등록을 거부 할 수 있음 dlsym을 통해 동적로드 호출 #import #import #import typedef int (*ptrace_ptr_t)(int _req, pid_t _pid, caddr_t _addr, int_ data); void anti_debug() { ptrace_ptr_t ptrace_ptr = (ptrace_ptr_t)dlsym(RTLD_SELF, "ptrace"); ptrace_ptr(31,0,0,0); // PTRACE_DENY_ATTACH = 31 } sy.. 2022. 12. 18.
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.