본문 바로가기

IOS 모의해킹

7. Runtime Manpulation(3)

1. 실습

4자리 숫자를 입력 후 Validate code 버튼을 클릭 시 입력한 숫자를 담은 에러 메시지가 출력

 

에러메시지 문자열 검색

 

분기점에서 성공했을 때 출력되는 문자열 발견

 

기드라에서 확인한 인증번호(8848) 입력 시 성공 확인

 

분기가 발생하는 주소 및 분기에 영향을 미치는 cmp 명령어 확인

 

레지스터 값을 확인하는 실행 코드

 

위의 코드를 실행시키면 x8에는 16진수 2290이 x9에는 16진수 457이라는 값이 들어가 있는 것을 확인

인증코드 1111을 입력했을 때 x9 레지스터에 1111이 16진수로 변환된 값이 저장된 것으로 보아 x9 레지스터에는 사용자 입력값이 저장되고, x8 레지스터에는 정확한 인증번호가 저장되어 있는 것을 알 수 있음

 

브루트포스 공격을 시도하기 위한 코드

 

공격코드 실행 시 공격 성공 확인

 

2. 대응방안

- 디버깅 방지 기술
1. 예방 기술 : 디버거가 애플리케이션에 연결되는 것을 방지
2. 반응 기술 : 디버거의 존재를 확인하고 애플리케이션 종료

- 디버깅 탐지 방법
1. ptrace 사용 : 프로세스 디버거 연결 방지(예방 기술)
2. sysctl 사용 : 연결된 디버거 탐지(반응 기술)
3. 프리다 아티팩트(Artefacts) 탐지


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

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

9. IPC Issues  (0) 2023.03.14
8. Side Channel Data Leakage  (0) 2023.03.14
6. Runtime Manpulation(2)  (0) 2023.03.13
5. Runtime Manpulation(1)  (0) 2023.03.12
4. Excessive Perimssions  (0) 2023.03.11