본문 바로가기

IOS 모의해킹

2. Jailbreak Detection (1)

1. 실습

'Jailbreak Test 1' 버튼 클릭 시 'Device is Jailbroken' 메시지 출력

 

해당 경로에서 바이너리 파일 export

 

기드라를 실행 후 DVIA-v2 파일 import

 

파일을 import 하면 해당 프로그램을 자동으로 분석

 

탈옥을 탐지했다고 알리는 문자열 찾기

 

오른쪽에 해당 문자열을 참조하고 있는 위치 확인 가능하며 더블클릭으로 해당 위치로 이동

 

Window > Function Graph로 IDA Pro처럼 어셈블리를 그래프로 보여주는 기능을 이용 가능

 

마지막 어셈블리 명령어 실행 시 조건이 참인 경우 1001cc17 번지로 이동

 

Device is Not Jailbroken 문자열이 있는 이곳으로 분기되도록 해야함

 

조건이 거짓인 경우 탈옥이 탐지되었다는 문자열이 있는 100cbdd4번지로 이동

 

otool 명령어를 통해 ASLR 설정 여부 확인

 

분기점을 클릭하면 해당주소가 하이라이트됨

 

코드 작성

 

첫번째 주소는 DVIA-v2 바이너리가 메모리에 할당된 주소, 두번째주소는 수정할 주소

앱을 재실행할 때마다 ASLR 정책으로 인해 주소가 바뀐다

 

Jailbreak Test1을 실행 시 레지스터 값 확인

 

"x0":"0x1" 은 x0 레지스터의 값이 1임을 확인

기드라에서 분기점을 보면 w0과 0x0을 비교했을 때 w0이 0인 경우에 참이되므로 0x1cbdd0 주소로 이동해서 정상적으로 앱을 이용할 수 있다

 

공격코드 수정 후 Jailbreak_Test1을 클릭하면 0x 레지스터 값이 1에서 0으로 변경되어 출력

위는 변조 전의 x0 레지스터 값, 아래는 변조 후의 x0 레지스터 값

 

탈옥 탐지 우회 성공


[도움 및 출처]
보안프로젝트 김태영 팀장 해커를 위한 iOS 앱 모의 해킹 전문 과정

'IOS 모의해킹' 카테고리의 다른 글

6. Runtime Manpulation(2)  (0) 2023.03.13
5. Runtime Manpulation(1)  (0) 2023.03.12
4. Excessive Perimssions  (0) 2023.03.11
3. Jailbreak Detection (2)  (0) 2023.03.09
1. Local Data Storage  (0) 2023.03.06