이전 글 참고 : 11.3.1 탈옥 (by electra) https://eveaboutcom.tistory.com/14

 

 

이전 글에서는 최신 iOS가 11.4.1이었는데...

 

어느덧 iOS 13베타가 나오다니..

 

어느순간 iOS 11의 탈옥이 electra에서 unc0ver로 수정되었다.

 

탈옥 방법 알아보자.

 

 

[그림 1] unc0ver(출처 : ipsw.me)

 

(다른것들은 세미탈옥이라고 알려주면서 얘는 왜 문구가 사라졌을까...? 똑같이 세미탈옥인데...)

 

 

해당 사이트(unc0ver)에 접속하면 설치방법에 대해 자세히 나온다. 

 

설치에 필요한 도구는 똑같고 탈옥에 쓰이는 소프트웨어만 변경되었다.

 

 

cydia impactor로 다운로드 받은 unc0ver파일을 넣어준다.

앱스토에서 받은것이 아니므로 설정-일반-기기관리 에서 "앱 확인"을 눌러준다.

(네트워크가 되지 않으면 확인이 불가)

 

 

 

[그림2] 기기관리 앱 신뢰

 

확인 후, unc0ver앱을 실행하여 jailbreak를 클릭 해준다.

[그림3] jailbreak 진행

 

팁 : 네트워크(LTE,Wi-Fi), 시리를 끄고 비행기 모드를 한뒤에 실행해야 잘된다.

 

[그림4] jailbreak 진행 중

jailbreak 진행중에 38단계 진행중에 2~3번의 리부팅이 발생한다.

(리부팅을 안할때도 있긴하지만 할때가 훠ㅓㅓㅓㅓㅓㅓ얼씬 많음)

 

[그림5] jailbreak 완료
[그림6] jailbreak 완료

 

 

그림5, 6과 같이 완료 비슷한 문구가 뜨면 탈옥 성공.

 

 

 

-----미립자 팁-----

 

jailbreak를 실행하는데 성공이 너무 안된다 싶으면,

 

Settings에서 kernel Exploit을 변경해서 진행해보자.

(무슨 뜻하는지는 잘 모르겠으나, 뭐 다른 부분으로 커널해킹하는듯?)

 

[그림7] unc0ver Settings

 

 

11.3.1 탈옥의 경우, 반탈옥이라서 재부팅 할 경우 다시 재탈옥을 해주어야 하는데


ios 12 정식 업데이트 된 시점 이후에 재탈옥 하려고 electra 앱을 누르니 앱이 꺼지고 홈화면으로 나와졌다.


앱을 삭제하고 cydia impactor로 설치를 해보니, 처음 보는 cpp 오류가 발생했다.


cydia impactor cpp 160 certificate에 대한 이미지 검색결과

이런 오류라던지,


이런 오류가 발생한다



[ 해결방법 ]


1. 최신 버전 impactor 설치 ( 10/08 기준 9.47)




2. impactor 실행 후 메뉴 中 Impactor - Insecure SSL 체크 (http-win cpp 에러 해결)




3. Xcode - Revoke Certificates를 선택하여 certificates 제거 (Apple 계정 로그인 필요)





이후 정상적으로 cydia impactor로 electra 설치가 된다. 






iOS 진단시 앱을 정적진단 하려고 할때, 앱은 암호화 되어있다.


그래서 복호화 할때 사용하는 툴이 Clutch.


근데 iOS 11 에는 Clutch가 동작하지 않는다.


iOS 10에 Clutch2를 사용할수 있었는데 11은 지원을 하지 않는것 같다.


억지로 실행해보면 bad CPU 어쩌구 저쩌구...



그러면 복호화된 앱을 추출할수 없는건인가?


찾아보니 bfinject라는 툴이 있었다. 


긴가민가 하면서 설치를 해보았다.


당연히 준비물은 iOS11 버전의 탈옥된 아이폰이다


[그림 1] bfinject github


파일은 https://github.com/BishopFox/bfinject 에서 다운받아주고



압축을 풀어보면 아래와 같은 파일들이 보인다


[그림 2] bfinject.zip


그중 bfinject.tar 파일을 따로 압축해제 하자



[그림 3] bfinject.tar


압축해제한 파일들이다.

이중 bfinject파일은 수정해야한다.

bfinject가 11.3.1 electra에 호환되지 않기때문에

호환되는 코드로 변경해주어야 한다.


https://gist.github.com/svedm/93bb792ddb22fedf5ab487b1dbf2e897

여기에 나오는 코드로 싹 변경해준다.



이제 위 폴더에 있는 파일들을 탈옥된 아이폰에 전송해준다

파일 전송하는 법은 여러가지가 있는데

그중 winscp를 이용하여 전송한다.


https://winscp.net/eng/docs/lang:ko

여기서 알맞는 파일 다운로드 받으시고 설치하면 된다.


설치다하고 실행해서 PC와 탈옥된 아이폰과 연결을 해보자.


[그림 4] winscp 접속 시도


연결할때 주의점은...

PC와 아이폰이 같은 망에 있어야 합니다. 

집일경우 공유기에서 나오는 유선이 PC에 연결 / 탈옥된 아이폰으론 wi-fi연결

(PC도 아이폰과 같은 wi-fi여도 무방)



호스트이름엔 아이폰에서 연결한 wi-fi ip를 입력

(설정 - wi-fi - 연결된 wifi 오른쪽에 i 모양 클릭)


기본 ID/PW는 root/alpine


로그인 버튼 누르면 경고창뜨는데 그냥  합시다.


[그림 5] winscp 연결


왼쪽은 PC / 오른쪽은 아이폰 폴더


[그림 6] iphone 루트 폴더


최상위 폴더로 올라가서 폴더 하나 생성.

 글쓴이는 jb라고 생성. 생성하고 더블클릭!



[그림 7] bfinject 폴더 생성


jb안에 bfinject라고 폴더 생성. 더블클릭


이 bfinject 폴더안에 아까 다운받은 bfinject 파일을 드래그 해준다.


[그림 8] bfinject 파일 아이폰으로 복사



이제 putty를 통해 ssh 연결을 하여 bfinject를 사용해본다.


https://www.putty.org/ 에서 알아서 다운받으시고 실행 한다음 


winscp연결할 때와 같이 아이폰 ip를 입력해준다.


[그림 9] putty 연결 시도


Open 클릭


[그림 10] ssh 로그인


login as 는 ID = root

password = alpine

처음로그인하면 아마 winscp와 같이 경고창하나 뜰텐데 상관말고 예 누릅시다.

패스워드 입력하는데 아무런 반응 안뜬다고 당황하지말고 입력제대로 했으면 엔터치자.



위와같은 화면이 나오면 로그인 성공.



정상적으로 작동하는지 확인해봅시다.


테스트로 starbucks 앱을 해봅니다.


1
2
3
cd /jb/bfinject
 
bash bfinject -P Starbucks -L decrypt
cs
1. bfinject 폴더로 경로 이동

2. bfinject 실행.

-P : appname

-L : features(cycript, decrypt, test, ispy)

[ 옵션궁금하면 bash bfinject로 확인)


 

[그림 11] bfinject decrypt 명령어 실행


Success 나온거 보니 

정상적으로 잘 작동된거같다.


[그림 12] Decrytption Complete!


앱에서도 완료했다고 팝업이 뜬다. Yes를 눌러주자


이제 복호화 된 ipa파일을 PC로 가져오자


위에 연결된 winscp 에서 아이폰경로를 /var/mobile/Containers/Data/Application/로 변경한다.


[그림 13] decrypted-app.ipa


이상한 코드로 된 폴더중 날짜를 최신으로해서 제일 최근폴더에 접근후

Documents 폴더를 클릭하면 안에 decrypted-app.ipa가 있다.


IDA로 확인해보자

[그림 14] 암호화 된 app


[그림 15] 복호화 된 app


function이 잘나오고 암호화된 app에서는 오류가 발생하나 

복호화된 app 에서는 오류가 안나는걸로 봐서는 복호화가 잘된거같다.


아마 조금더 시간지나면 clutch 같은 편리하게 설치할수있겠지 않을까 싶다.


출처 : https://ivrodriguez.com/reverse-engineer-ios-apps-ios-11-edition-part1/





----------

오류

-----------


잘 됐다!!! 라고 생각하는순간



[그림 1] Failed-Tweaks


이런 오류가 뜨는건 Electra로 탈옥할때 Tweaks 토글을 켜놔서 그렇다는거같다.



[그림 2] Tweaks 해제


위와 같이 Tweaks를 해제한 다음 탈옥을 해야 bfinject를 정상적으로 실행할 수 있다.





ios 11.3.1 탈옥이 공개 됐다.


[그림 1] Can I Jailbreak


출처 : https://canijailbreak.com/


위 그림에서 볼수 있듯이, 11.2~11.3.1 버전에서 반탈옥이 가능하다.(반탈옥 : 재부팅하면 탈옥이 사라짐)



지금사용하는 iphone X 는 11.3.1 이지만, 괜히 탈옥했다가 핸드폰 벽돌되면 포맷해야되는 불상사가 생길수 있으니...

은행어플 못쓰는것도 불편하고..


그런데 마침 집에 놀고있는 전핸드폰인 iphone 6도 11.3.1이라서 이를 가지고 탈옥을 시도



주의 : 탈옥이 버튼 한번 누른다고 되지 않고 재부팅이나 스프링보드가 리셋되기 때문에 실패했다고 당황하지않고 계속 시도한다.



일단. https://coolstar.org/electra/ 에서 탈옥에 필요한 파일을 다운받는다.


이번 탈옥에서는, 애플 ID가 개발자인지 아닌지를 구분해서 파일이 나뉘는데


글쓴이는 개발자 ID가 없으므로 아닌 파일을 다운받도록 한다.


[그림 2] Electra 홈페이지


위의 Non Dev Account를 다운받도록 하자. (개발자로 다운로드 받으면 뒤에 단계에서 오류난다)


다운받은 파일을 아이폰에 넣기 위해선 Cydia Impactor가 필요하다


www.cydiaimpactor.com에 접속해서 다운로드 한다.


[그림3] Cydia impactor 홈페이지


알아서 PC운영체제에 맞게 다운받도록 하자.



[그림 4] cydia impactor로 electra 삽입


다운받고 실행해서 pc에 휴대폰 연결하고 Electra1131-1.0.3-vfs.ipa 파일을 드래그해서 cydia impactor에 올려 놓는다.


[그림 5] Apple ID 입력


[그림 6] Apple PW 입력



올려놓으면 애플 계정을 입력하라고 뜨는데, 기존에 있는사람은 있는거 넣어도 상관없다.(글쓴이는 그냥 탈옥용으로 만듦)




[그림 7] Electra 어플 삽입 성공


Electra 라고 어플이 하나 생겼다. 실행해보자. 실행하면 안된다고 뜰거다.


설정 - 일반 - 기기관리로 들어가서 신뢰하기를 눌러줘야한다. 


[그림 8] Electra 앱에 대한 개발자 신뢰


신뢰를 누르자


[그림 9] Electra 앱 신뢰 완료


확인 완료가 되었으니 다시 실행해보자

[그림 10] Electra 앱 실행


다시 실행하면 위와 같이 뜬다.

jailbreak를 누르기 전에

"비행기모드" 해제(글쓴이는 비행기모드 해야 잘됐음)

"시리" 해제 (설정 -siri 및 검색)

"나의 아이폰 찾기" 해제 ( 설정 - icloud - 하단부분)


[그림 11] Electra 탈옥 시도 중


please wait 1/3, 2/3 이 정상적으로 잘 지나가면

위와 같이 "installing cydia"가 뜨고 아니면 계속 재부팅하면서 시도 해봐야 한다.

(이미 탈옥 성공 후, 재부팅시 다시 탈옥할때도 한 3번해야 성공함)


[그림 12] 탈옥 완료


정상적으로 설치 되었다면 위와 같이 cydia 어플이 생성된것을 볼수있다.






    

출처 및 참고 

http://ryueyes11.tistory.com/12292

http://ryueyes11.tistory.com/12295


+ Recent posts