보안 공부/모바일 보안

iOS 취약점 진단 앱 복호화 및 디렉터리 탐색, 함수 탐색

H.J.World 2021. 10. 19. 10:10
728x90
반응형

개인적으로 공부하려고 올려둔 내용

이쁘게 정리가 잘안되있으니.. 참고 바랍니다.

잘정리해서 사진과 함께 곧 올려보겠습니다.

 

-> 앱 복호화 방법(수동)
 - 바이너리 파일 탐색 
 - /var/bundle/application/내 바이너리값 폴더로 이동
 - app을 진단 PC로 이동
 - Hop을 이용 -> 암호화 되어 있는 것을 확인 가능(복호화가 필요)
 - 바이너리에서 어디부터 어디까지 암호화되어 있는지 확인 필요
 - 단말기에 https://cydia.hbang.ws/ 에서 otool 설치
 - otools -arch all -V1 Instagram | grep -A5 LC_ENCRYP 명령 실행
 - Hex값을 변환하여 암호화 영역을 탐지
 - 실행 시킬때는 복호화되어 메모리에 탑제 
 - 그렇기때문에 메모리 위치를 찾아내야함
 - Frida를 사용해서 메모리 위치를 탐색 
 - Fridump3.py를 사용해서 메모리 덤프
 - "Frida -ps" 명령을 통해 PID값 추출
 - fridump3.py -u -r PID값
 - 생성된 덤프를 덮어씌우기(주소값을 계산해서 메모리 위치 + offset )
 - cryptid 1 -> 0으로 변경
 - 저장하면 복호화된 앱 형태로 확인 가능

-> 앱 복호화 방법(자동/크레커XI)
 - 데비안 페키지 파일로 설치 가능 (.deb파일)
 - "dpkg -i 파일명" 명령어 실행
 - 앱 설치 확인 -> 실행 -> Full IPA 선택하면 경로가 나옴
 - 경로로 접속해서 unzip 파일명
 - payload 폴더 안에 바이너리 파일 꺼내서 확인

-> 특정앱의 디렉터리 탐색
 - 앱 내 라이브러리 디텍터리, 번들 디렉터리 탐색
 - FTP 프로그램, SSH shell을 통해 탐색 가능
 - Bundle : /var/containers/Bundle/Application
 - ls *
 - 앱 디렉터리 명을 보고 찾을수 있음
 - 라이브러리 디렉터리 위치 : /var/mobile/Containers/Data/Application
 - "grep highaltitudehacks */.com.apple.mobile_container_manager.metadata.plist"

-> 특정 함수를 동적 분석하는 방법
 - 후커를 사용해서 분석 수행
 - 앱 실행 -> 추적할 함수를 탐색
 - 후커에서 바이너리파일을 실행
 - 실행되는 문자열에 있는 레퍼런스를 확인
 - 레퍼런스를 통해 해당 함수를 찾아감

 - 사용하는 시스템 함수를 이용하는 방법
 - 함수이름을 추측하는 방법

 ->IDA를 통한 함수 동적 분석 방법
 - IDA를 통해 IDA 실행 -> 바이너리 삽입
 -  view-> string 메뉴에서 문자열을 검색 -> 레퍼런스 검색 -> 문자열을 사용하고 있는 함수 확인

-> ghidra를 통한 함수 추적 방법
 - 프로젝트 생성 후 -> 바이너리 등록 -> 기드라가 파일을 분석 함
 - string 검색 -> 문자열 주소에서 레퍼런스 주소 -> 디검파일 하면 확인가능

728x90
반응형