본문 바로가기

분류 전체보기

(43)
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을 클릭 시 앱이 종료되면서 기능 ..
7. Runtime Manpulation(3) 1. 실습 4자리 숫자를 입력 후 Validate code 버튼을 클릭 시 입력한 숫자를 담은 에러 메시지가 출력 에러메시지 문자열 검색 분기점에서 성공했을 때 출력되는 문자열 발견 기드라에서 확인한 인증번호(8848) 입력 시 성공 확인 분기가 발생하는 주소 및 분기에 영향을 미치는 cmp 명령어 확인 레지스터 값을 확인하는 실행 코드 위의 코드를 실행시키면 x8에는 16진수 2290이 x9에는 16진수 457이라는 값이 들어가 있는 것을 확인 인증코드 1111을 입력했을 때 x9 레지스터에 1111이 16진수로 변환된 값이 저장된 것으로 보아 x9 레지스터에는 사용자 입력값이 저장되고, x8 레지스터에는 정확한 인증번호가 저장되어 있는 것을 알 수 있음 브루트포스 공격을 시도하기 위한 코드 공격코드 ..
6. Runtime Manpulation(2) 1. 실습 Login Method 2 클릭 시 계정정보가 불일치한다는 메시지 출력 로그인 시도시 나온 경고창 문자열 검색 후 해당 문자열을 참조하는 주소 확인 해당 주소로 이동 우회에 실패했을 때의 주소 우회에 성공했을 때의 주소 분기되는 주소 분기가 일어나는 주소 확인 바이너리 변조 코드 레지스터 값이 변조되었음을 확인 레지스터 값 변조 후 Login Method 2 버튼을 클릭 시 인증 우회 성공 메시지 출력 [도움 및 출처] 보안프로젝트 김태영 팀장 해커를 위한 iOS 앱 모의 해킹 전문 과정
5. Runtime Manpulation(1) 1. Runtime Manpulation 개요 - 런타임 조작은 앱이 실행될 때 흐름 조작, 정보 유출 등이 가능한 취약점 - 런타임 조작을 사용해 인스턴스 변수를 수정하고, 로컬 로그인 검사를 우회하고, 무차별 강제 핀 코드를 사용 가능 2. Login Method 1 실습 아무것도 입력하지 않고 Login Method 1 을 클릭 시 Error 메시지가 출력되고, 입력한 계정이 올바르지 않으면 Oops 메시지가 출력 실행여부 확인 Login 문자열이 포함된 클래스 찾기 해당 자바스크립트 코드 실행 시 LoginValidate 클래스에서 사용중인 메소드명을 확인 가능 반환값 확인 반환값 변조 코드 작성 리턴값변조 확인 인증 우회 성공 메시지 확인 [도움 및 출처] 보안프로젝트 김태영 팀장 해커를 위한 ..
4. Excessive Perimssions 1. Excessive Permissions 개요 - 앱 권한을 잘못 사용하는 방법에 대한 취약점 - 앱이 블루투스 인터페이스, 위치 정보 또는 사용자 사진과 같은 특정 보호된 자원에 접근하기 전에 시스템에서 앱 대신 권한을 요청 - 앱에 접근 권한이 필요하단 것을 알리기 위해 UsageDescription 키를 앱의 Info.plist 파일에 저장 - 키와 관련하여 앱에 접근해야 하는 이유를 설명하는 문자열에 설정함 2. 실습 권한 승인 확인 해당 앱이 접근할 수 있는 앱을 확인 해당 앱의 info.plist 파일에서 카메라 접근 권한을 가지고 있음을 확인 3. 대응방안 - 주어진 권한이 앱에 필요한 것인지 확인이 필요 - 앱에 필요 이상의 권한이 있을 경우 권한 삭제 권고 [도움 및 출처] 보안프로젝..
OSCP 시험대비 BOX 리스트 Linux Windows High grade Lame Legacy Jeeves [Windows] Brainfuck Blue Bart [Windows] Shocker Devel Tally [Windows] Bashed Optimum Kotarak [Linux] Nibbles Bastard Falafel [Linux] Beep Granny Devops [Linux] Cronos Arctic Hawk [Linux] Nineveh Grandpa Netmon [Windows] Sense Silo Lightweight [Linux] Solidstate Bounty La Casa De Papel [Linux] Node Jerry Jail [Linux] Valenine Conceal Safe [Linux] Poisio..
3. Jailbreak Detection (2) 1. 실습 Jailbreak Test 2번 클릭시 탈옥 탐지 문자열 출력 확인 현재 연결된 기기에서 실행중인 앱의 프로세스 아이디, 앱이름, 식별자 확인 가능 탈옥을 탐지하는 클래스를 찾기 위한 코드 클래스명을 문자열로 검색(방법1) 검색된 클래스명들을 리다이렉션을 통해 txt 파일에 저장 후 메모장에서 문자열 검색(방법2) JailbreakDetection 클래스에서 사용하는 메소드를 확인하는 코드 JailbreakDetection 클래스가 사용하는 메소드는 isJailbroken 찾은 메소드 반환값 확인 코드 js코드를 실행 후 앱에서 Jailbreak Test 2 를 클릭 시 정보가 출력되며 리턴 값을 0으로 변조하면 탈옥 탐지 우회가 가능(현재 리턴 값은 1) 리턴 값 변조 코드 변조한 리턴 값 ..