iOS 무결성 체크 방법

Captainjack·2023년 2월 16일
0

Mobile hacking

목록 보기
9/15

필요 파일

  • 3u tools

  • HxD

  • ida Pro

  • filezillar

무결성은 파일을 변조하고 넣었을 때 앱 실행시 변조를 탐지하는지 보면 된다.


Easy way

요약 - 파일에 포함되어있는 폴더에 파일을 넣거나 빼고 앱을 실행을 해본다.

  • filezillar로 iphone의 아이피에 접속 한다.

설정방법

호스트 : 아이폰에 연결된 wifi의 ip


windows 환경에서 내부 인터넷망 모바일 접속시..


아이디, 비번: root, alpine
포트 번호 22

  • 아이폰 앱 설치 경로로 이동 /private/var/containers/Bundle/Application/

기본적으로 아이폰의 앱들의 이름은 암호화가 되어있어서

filza(Cydia에서 확인 가능)와 같은 파일로 파일을 유추하거나,

filza 사용법: 앱을 실행 후 위와 같은 경로로 이동하여 앱 이름을 확인한다.
혹은 해당 경로로 filezillar로 접속했다면 시간순으로 정렬을 하여 최근에 받은 파일에 이름으로 추적해서 들어가면 된다.

해당 경로에서 파일을 제거한 후에 앱을 실행.

해당 경로에서 파일을 추가한 후에 앱을 실행.

정상적으로 앱이 실행된다면 무결성 체크를 따로 하지 않는 앱이라고 판단 가능하다.


Hard way

요약 - 바이너리 변조 후 파일을 실행한다.

frida로 앱을 덤프한다.

덤프는 frida-ios-dump로 진행

python dump.py -l //연결된 폰의 덤프 가능 리스트 확인
and
python dump.py <identifier> // 덤프 실행

받은 ipa 파일에 코드 파일을 ida파일로 연후에

코드를 분석하여 TBZ, BLE를 중점적으로 본다.

  • 주의 : 같은 TBZ의 명령어라도 분기를 잘못건드려 앱을 죽이는 곳을 변조했다면 아래 진행 과정을 끝내도 무조건 앱이 꺼져서 실패한다. 앱이 죽지않는 곳에 분기를 잘 edit하는 것이 포인트.

원하는 부분을 찾았다면 해당 명령어를 블록 처리해주고 그림과 같은 경로에 패치에 들어간다.

  • TBZ의 경우 4번째 데이터를 36에서 35로 변경시 TBZ -> TBNZ로 변경가능하다!

ok를 누르고 분기가 제대로 적용 됐는지 확인한다.

저장하고 HxD를 실행 후 방금 value를 검색하여 찾고 값을 직접 수정한다.

36대신 35로 적용 후에 저장 (위 그림과 상관 무)

저장 후에 아까 easy way에서 봤던 곳에 파일을 덮어쓰기 해서 실행하면 무결성 체크를 할 수 있다.


Easy way 2

HxD 로 파일을 열고 마지막 바이너리만 11 11 11 11 ... 로 변경한뒤 실행되는지 확인.

profile
til' CTF WIN

0개의 댓글