본문 바로가기

IOS 모의해킹

(15)
15. Sensitive Information in Memory 1. Sensitive Information in Memory 개요 - 메모리에 존재하는 중요한 데이터를 덤프하여 확인 - 일부 애플리케이션은 필요하지 않더라도 중요한 정보를 애플리케이션 메모리에 저장 개발자가 중요한 정보를 포함할 수 있는 속성 또는 인스턴스 변수를 사용 후 제거하지 않아 발생 2. 실습 아이디는 tester, 패스워드는 test12345로 로그인 시도 Fridump 실행 프리다덤프의 옵션 -u : usb에 연결된 디바이스를 지정 -r : 메모리의 읽기 전용 부분을 덤프 -s : 입력한 문자열만 뽑아서 따로 저장 dump 폴더에 있는 string 파일에 입력한 아이디, 패스워드 발견 3. 대응방안 - 종단간 암호화(End-to-End) 적용 가상 키패드 사용(키보드 보안 모듈) - 메모..
14. Aplication Patching(4) - Kill Application 1. 실습 Kill Application 버튼 클릭 시 앱이 강제 종료 특정 문자열이 출력되지 않기 때문에 추측 문자열 검색 시도 kill 문자열이 포함된 함수로 이동 특정 작업을 수행 후 앱을 종료하는 명령어로 추측 exit 해당 주소로 이동하면 해당 함수의 경우 앱을 종료하는 코드인 것으로 보임 해당 코드가 작동하지 않으면 되는 것이므로 bl 명령어는 지정한 곳으로 분기를 시키는 명령어 앱 종료와 관련된 코드들 변조 Kill Application 버튼을 클릭해도 앱이 종료되지 않음 2. Aplication Patching 대응방안 - 애플리케이션 바이너리 해시 값 검증 (코드 무결성 검증) - 악성코드 삽입 및 실행, 보안 솔루션 우회, 인증 절차 우회 등 [도움 및 출처] 보안프로젝트 김태영 팀장 ..
13. Aplication Patching(3) - Show Alert 1. 실습 Show Alert 버튼 클릭 시 해당 문자열 출력 확인 HxD 프로그램으로 DVIA 바이너리 확인 및 변조하려는 문자열 검색 문자열 변조 문자열 변조 확인 [도움 및 출처] 보안프로젝트 김태영 팀장 해커를 위한 iOS 앱 모의 해킹 전문 과정
12. Aplication Patching(2) - Check For Jailbreak 1. Check For Jailbreak 실습 - 디바이스가 Jailbreak되지 않음을 항상 반환하도록 Jailbreak된 디바이스 검사에 대해 패치 Check For Jailbreak 버튼 클릭 시 탈옥된 디바이스라는 문자열 출력 에러메시지에 출력된 문자열 검색 참조되는 위치 확인 에러 메시지 확인 탈옥 탐지 우회 문구 발견 여기선 현재 어셈블리 코드를 패칭하는 것으로는 탐지 우회가 불가능하다(w0 레지스터 값과 0x0 값을 비교할 때 해당 주소로 분기되지 않기 때문) icbdd0 주소 입력 코드 확인 x0 값이 1인 것을 확인 w0 값은 1이지만 비교하는 값은 0이라 값이 달라서 해당 주소로 분기되지 못하기 때문에 값을 1로 패치 패칭한 바이너리 파일을 기존 파일에서 덮어쓰기 후 실행시키면 탈옥 탐..
11. Aplication Patching(1) - Login Method 1. Application Patching 개요 - 애플리케이션 패칭은 애플리케이션의 바이너리 파일이 영구적으로 변경되는 것 - 애플리케이션 패칭으로 로그인 메소드, 탈옥 탐지 메소드 및 앱에서 사용되는 특정 명령어 패치 가능 2. Login Method 실습 - 사용자 입력에 상관없이 항상 로그인할 수 있도록 Login Method 1을 패치 Login Method 1 버튼을 클릭시 나오는 오류메시지 확인 에러메시지 문구를 검색 후 해당 주소로 이동 해당 위치 이동해서 찾는 문자열을 사용하고 있는 주소로 이동 해당 문자열이 위치한 주소 확인 분기점 및 SUCCESS 문자열 확인 실패 분기점 주소 확인 주소 패칭 패칭한 파일 export 파일이름 변경 패칭한 바이너리 파일을 덮어쓰기 앱을 재실행 한 후 ..
10. Network Layer Security 1. Network Layer Security 개요 - 네트워크를 통해 데이터를 전송할 때 세가지 방법과 ATS 설정 확인 - HTTP, HTTPS, SSL/Cert PINNING, ATS 2. 실습 2-1. HTTP 현재 IP 주소 확인 BurpSuite에서 프록시 설정 변경 아이폰에서 프록시 설정 SEND OVER HTTP 버튼 클릭 요청한 패킷이 잡히는 것을 확인 2-2. HTTPS 프록시 설정이 되어 있는 상태에서 주소창에 burp 입력 해당 사이트 우측에 인증서 클릭 설정,일반,프로파일로 들어가서 해당 파일 설치 설정,일반,정보,인증서 신뢰 설정에서 PortSwigger CA 활성화 https 패킷 전송 시 https 통신을 하고 있는 것을 확인 2-3. SSL Pinning - SSL Pinn..
9. IPC Issues 1. IPC 개요 - IPC는 Inter Process Communication의 약자로 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 방법이나 경로 - 앱이 신뢰할 수 없는 출처의 URL Schemes를 통해 요청을 수신하고 있으며, 이를 제대로 검증하지 않을 때 발생할 수 있음 - 다른 앱에서 들어오는 요청을 제대로 처리하지 못하면 보안 취약점으로 이어질 수 있음 - URL Schemes는 URL을 통해 정의한 프로토콜로 다른 앱과 통신할 수 있도록 해주는 통로 http:// https:// ftp:// telnet:// ssh:// 등의 형태를 가짐 - IOS는 샌드박스 정책에 의해 다른 앱들과 정보를 주고받기 힘들기 때문에 URL Schemes를 이용 - Built-in URL Schemes..
8. Side Channel Data Leakage 1. Side Channel Data Leakage 개요 - 사이드 채널 데이터 유출 취약점은 애플리케이션이 중요한 데이터를 실수로 유출할 때 발생 - 디바이스 로그, Pasteboard, 앱 스크린샷, Keystroke 로깅, HTTP 쿠키에 사용되는 보안되지 않은 API 등과 같은 다양한 종류가 존재 Keystroke : 입력 키를 누르는 행위로, 키보드 또는 이와 유사한 입력 장치 키를 누르는 것 Pasteboard : 애플리케이션 내에서 또는 애플리케이션 간에 데이터를 교환하기 위한 표준화된 메커니즘 2. 실습 2-1. Device Logs - 개발자는 애플리케이션 디버깅동안 로그를 추가하지만, 배포할 때 로그를 제거하는 것을 잊어서 발생하는 취약점 Sign Up을 클릭 시 앱이 종료되면서 기능 ..