경고 : 이 글은 정보제공 목적으로만 작성되었으며 탈옥(jailbreak)은 기기의 보안, 안정성, 보증에 심각한 영향을 미치고, 법적 문제를 야기할 수 있습니다. 탈옥으로 인해 발생하는 모든 결과에 대한 책임은 사용자에게 전적으로 있습니다.
일단 내용에 앞써 글의 내용에 성공했던 내용과 실패했던 내용을 담을 예정이다. 이유는 나같은 실수를 해서 삽질을 안 하길 바라기 때문이다. 그러니 잘 보고 하시길 바란다.(그리고 경고도 확인 부탁바란다.) 그리고 제목을 아이폰 탈옥 대신 IOS 앱 진단 환경 세팅이라고 적은 이유는 이 글을 앱 진단 세팅 목적으로만 읽었으면 좋을 거 같아서 그렇게 적었다. 그리고 이건 한 가지 세팅방법에 불과하다. 그래서 다른 글들도 참고해서 세팅하길 바란다.
일단 환경을 세팅하기 전에 진단 기기가 필요하다. 그렇기 때문에 진단 기기를 구매를 해야 한다. 기기를 구매하기 전에 주의해야 할 사항이 있으면 기기를 구매 전 탈옥이 가능한 아이폰 기종 및 IOS 버전 등을 확인하고 구매하는 것이 좋다.(최신기기는 탈옥이 불가능할 수도 있기 때문에 굳이 비싼 돈 들여서 살 이유가 없다.)
나는 중고로 탈옥이 가장 무난하다고 알려진 아이폰7을 구매했다. 구매하기 직전에 확인해 본 건 기기 초기화, 기기의 하자 유무, 사용기간, 특이사항 등을 물어본 거 같다.
이 black-black한 게 bling-bling해 보인다.
손가락이 작은 게 아니라 아이폰이 작아서 손가락을 구부려서 잡아서 그렇게 보인다.
이제 IOS 앱 진단 환경을 세팅할 기기를 구했으면 탈옥을 해야 한다.
여기서 탈옥(jailbreak)이란 기기 IOS의 제한을 임의로 푸는 행위를 말한다.
탈옥 전에 기기초기화가 되어 있기 때문에 내 계정으로 로그인했다.
구글링을 통해 탈옥하는 법들을 찾아보고 이제 시도를 했다. 일단 나는 checkra1n이라는 탈옥 툴을 사용했다. 내 맥북에 해당 탈옥툴을 설치하고 맥북과 탈옥할 기기를 연결한 뒤 탈옥을 시도하면 된다. 그렇게 간단하게 탈옥이 될 줄 알았지만.....
대충 뜻 : 아이폰7 지원함, 하지만 IOS 15.8.3은 지원 안함. 우리는 12.0 ~ 14.5.1까지만 지원함. 미안
탈옥이 간단하게 될 줄 알았는데 이렇게 안 되니 조금 충격 먹었다. 어쩔 수 없다 다른 방법을 찾을 수 밖에
다시 구글링을 했고 다른 탈옥 툴을 찾을 수 있었다.
이번에는 palera1n 이란 탈옥 툴을 설치했다.(https://palera.in/)
주소에 들어가 보면 IOS 15 이후 버전도 탈옥이 가능하다고 나와 있다.
palera1n과 checkra1n의 차이점은 checkra1n은 gui환경으로 탈옥을 하지만 palera1n은 cli환경에서 탈옥해야 한다.
나는 맥북으로 설치할 것이기 때문에 터미널창에 아래 명령어를 사용해서 탈옥 툴을 설치했다.
sudo /bin/sh -c "$(curl -fsSL https://static.palera.in/scripts/install.sh)"
(https://docs.website-msw.pages.dev/docs/intro/) 이건 palera1n 공식 문서이다. 참고 바란다.
palera1n으로 탈옥을 할 때 USB-A포트가 필요하다.(그게 아니면 아마 DFU모드로 안 넘어갈 것이다.)
일단 나는 root로도 접근할 것이기 때문에 rootful로 설치할 것이다. rootful로 설치할려면 두 가지 작업을 해야 한다. 일단 볼륨을 만드는 작업을 해야 하는데 정확하게 나도 모른다.(공식문서에서 확인해라)
일단 탈옥할 기기랑 맥북이랑 연결시킨다.
그리고 나서 터미널 창에 아래 명령어를 친다.
기기의 용량이 10기가 이상 넉넉하게 자리가 있으면 이 명령어를 친다.
palera1n -f -c
용량이 넉넉하지 않으면 이 명령어를 친다.
palera1n -f -B
명령어를 치면 알아서 recovery 모드로 들어가 준다. 그 상태에서 DFU 모드로 변경해 줘야 한다.
DFU 모드 접근 방법은 기기마다 다르니 찾아봐야 한다.
아이폰7의 경우 왼쪽 볼륨 다운 버튼과 오른쪽 전원 버튼을 동시에 10초 누르다가 오른쪽 전원 버튼을 떼고 왼쪽 볼륨 다운 버튼만 누른 채로 10초 정도 누른다.(왼쪽 볼륨 다운 버튼을 계속 누르고 있을 때 터미널 창을 확인해보면 DFU 모드로 접근했다는 글자가 나올 것이다. 그 때 떼 주면 된다.)
그러면 아이폰에 이런 화면이 뜰 것이다.
볼륨을 만드는 작업이기 때문에 저런 상태로 10분 정도 작업을 한다.
작업이 끝나면 다시 아이폰 화면으로 돌아오는데 그 때 탈옥을 해 준다.
탈옥은 터미널 창에 아래 명령어를 친다.
palera1n -f
그리고 아까랑 동일하게 recovery 모드로 들어가면 DFU 모드로 변경해 주면 다시 위 사진같이 저런 화면이 뜨고 작업을 할 것이다.(이건 빨리 끝난다.)
작업이 끝나면 아이폰 화면으로 돌아가는데 앱에 보면 palera1n 앱이 깔려 있을 것이다. 앱에 들어가서 Sileo 앱과 Zebra앱을 깔아주면 된다.(사실 Zebra는 쓸 일이 없는 거 같다.)
이렇게 탈옥이 끝이 났다. (아 그리고 전원끄기로 아이폰을 껐다가 다시 키면 탈옥이 풀린다. 요즘은 완전 탈옥하는 건 없다고 한다.)
탈옥은 했지만 이제 뭘 해야 할지 모르겠다. 아이폰 탈옥 관련 글은 다 여기서 끝이 나기 때문이다. 그래서 그 다음 무엇을 해야 하는지 찾아봤다. 일단은 노트북에서 아이폰 터미널에 접근하기 위해 윈도우 노트북에 PuTTY랑 3utools를 설치했다.
putty는 기기를 shell에 접근할 때 사용하는 툴이다.
3utools는 IOS 기기를 쉽게 관리하는 툴이다.
그리고 Sileo앱에서 로컬 컴퓨터에서 아이폰 내부 폴더로 접근할 수 있게 해 주는 Apple File Conduit "2" (iOS 11+, arm64) 트윅이랑 ssh 터미널 접근을 도와주는 openssh 트윅을 설치했다.(트윅설치법은 나중 트윅설치부분에서 설명하겠다.)
그리고 나서 윈도우 PC랑 탈옥기기랑 연결한 뒤에 3utools의 Toolbox로 들어가서 SSH Tunnel를 누르면 된다. 그러면 알림이 뜰 건데 SSH client를 누르면 putty를 사용해서 아이폰 shell에 접근하려고 할 것이다. 하지만 패스워드 때문에 접근을 하지 못한다.
구글링을 해 보니 기본 패스워드는 alpine
이라고 한다. 그래서 그렇게 쳐서 넣었는데 접근이 안 된다.
다시 구글링을 해 보니 그렇게 접근이 안 될 때는 Sileo앱에서 파일 탐색을 도와주는 Filza File Manager를 설치 후 passwd 파일에서 root 비밀번호를 alpine 암호화된 비밀번호로 변경해주면 putty로 접속할 수 있다고 나왔다. 그렇게 해서 접속하려고 했지만 실패했다. 그것 외에도 다른 것들을 손 댔다가 시스템자체에 문제가 생겼는지 root가 알 수 없는 사용자라는 에러가 뜨고 나중에는 잘못만져서 아이폰 자체가 벽돌로 되어버릴 뻔한 상태까지 이르렀다. 그래서 결국 DFU모드로 다 초기화시키고 iOS를 다시 설치한 뒤에 다시 탈옥을 진행했다.
이번에는 다른 방법을 사용하기로 했다.
일단 Sileo앱에서 로컬 컴퓨터에서 아이폰 내부 폴더로 접근할 수 있게 해 주는 Apple File Conduit "2" (iOS 11+, arm64) 트윅이랑 ssh 터미널 접근을 도와주는 openssh 트윅, 모바일에서 터미널을 접근을 가능하게 해 주는 NewTerm 2 트윅을 설치했다.
NewTerm 2를 설치하면 NewTerm이라는 앱이 생기는 그 앱에 들어간다.
그러면 터미널창이 뜰 것이다. 거기서 아래 명령어를 사용한다.
sudo passwd root
그러면 경고 내용이 나오고, 현재 비밀번호(mobile
)를 치라고 나온다. 현재 비밀번호는 아마 sileo 설치할 때 작성한 비밀번호일 것이다. 현재 비밀번호를 치면 root 비밀번호를 설정할 수 있다.
그리고 동일하게 윈도우 PC랑 탈옥기기랑 연결한 뒤에 3utools의 Toolbox로 들어가서 SSH Tunnel를 누르고
알림에서 SSH client를 누르고
putty로 접근하는데 아까 설정한 root 비밀번호를 치면 shell에 접속할 수 있다.
그 다음은 frida 접속을 해 볼 것이다. 일단 Sileo 앱에서 https://build.frida.re
리포를 추가한 다음 Frida 트윅을 설치해 준다.
그리고 나서 cmd에서 frida가 접속이 가능한지 확인한다. 코드 아무거나 하나 골라서 돌렸을 때 잘 되면 된다.
혹시 input/output error가 뜰 경우 frida 버전을 확인해 본다.
frida 버전이 16.5.3 이상일 경우 그런 에러가 뜰 수 있기 때문에 버전을 16.5.2로 낮추어야 한다.
패킷 분석을 위해 burp suite와 접속을 할 것이다. 일단 burp의 설정에서 Proxy listeners에 Add를 누른다.
그리고 포트번호를 설정하고, Specific address를 상황에 맞게 설정한다.
그리고 나서 탈옥기기랑 윈도우 노트북이랑 연결한 뒤에 탈옥기기에서 설정 > Wi-Fi > 현재 사용중인 WiFi의 설정 > 프록시 구성에 접근한다.
프록시 구성은 수동에 서버와 포트는 아까 burp suite에서 설정한 값으로 설정한다.
그리고 나서 safari 앱으로 들어가서 http://burp
에 접속해서 CA Certificate를 다운로드한다.
그런 뒤에 설정에 가서 다운로드한 인증서를 설치한 뒤에 인증서 신뢰 설정에서 해당 인증서를 켜 주면 burp suite로 패킷을 잡을 수 있다.
이번에는 트윅 설치하는 법과 설치하면 좋은 트윅 몇 가지만 소개한다.
트윅은 일단 sileo 앱에서 설치가 가능하다.(트윅 설치 시 프록시가 켜져 있으면 설치가 안 되니 프록시를 꺼 주길 바란다.)
리포가 없는 경우에 1번에서 추가하면 되고 트윅은 2번 검색을 통해 설치하거나 해당 리포에 접근해서 설치하면 된다.
이런 식으로 검색해서 1번 받기를 하고 2번 대기열을 누른 뒤에
확인을 눌러 설치하고
다시 확인을 누른다. 경우에 따라 재부팅이 있을 수 있다.
깔면 괜찮은 트윅들
이름 | URL | 설명 |
---|---|---|
Apple File Conduit "2" (iOS 11+, arm64) | https://apt.thebigboss.org/repofiles/cydia/ | 로컬컴퓨터에서 아이폰 내부 폴더로 접근 가능 |
Filza File Manager | https://apt.thebigboss.org/repofiles/cydia/ | 파일 탐색 |
NewTerm 2 | https://repo.palera.in/ | 모바일에서 터미널 접속 가능 |
openssh | https://strap.palera.in/ | ssh 터미널 접근 가능 |
frida | https://build.frida.re/ | 프리다 서버 설치 |
A-Bypass | https://repo.co.kr/ | 탈옥 탐지 우회 가능 |
트윅 중에 AppSync Unified라는 트윅이 있는데 이 트윅은 서명되지 않은 IPA 패키지를 설치하게 해 주는 트윅이다. 근데 현재 해당 트윅 리포인 https://cydia.akemi.ai/ 가 몇 달 전부터 서버다운으로 설치하지 못한다. 현재 저 트윅 대체제는 존재하지 않고, 비공식적인 방법으로 설치는 가능하다(비공식적인 방법이기 때문에 바이러스 또는 해킹 위험이 있다.)
저 트윅 비공식 설치 방법은 아래 유튜브에서 확인해 보길 바란다.
https://www.youtube.com/watch?v=Ze-X26-zAJs
현재 탈옥은 반탈옥상태라서 전원을 완전 꺼다가 다시 켜면 탈옥이 풀리게 된다. 그렇기 때문에 전원을 켜기 전에 탈옥을 다시 돌아오게 해야 한다.
palera1n --boot --tweaks -f
이것도 명령어를 사용한 뒤에 다시 DFU 모드로 들어가면 알아서 돌아올 것이다.
만약 shell에서 DFU 모드에 접근했다가 안 되고 에러가 뜬다면 베터리가 없어서 그런 거이니 10분정도 동안 충전될 떄까지 기다려준다.