직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.
공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항)
개요
안드로이드는 SSL 통신을 지원하며, 단대단 암호화 적용 후 패킷을 주고 받는다.
앱이 서버와 정상 통신을 하기 위해서는 상호간의 신뢰할 수 있는 인증서를 가진 상태에서 공개키를 이용한 암호화를 적용한 패킷을 전송한다.
하지만 암호화된 패킷은 분석가가 패킷의 내용을 살피기 어렵기 때문에 복호화하는 과정이 필요하다.
- 단말기 입장에서는 분석가의 Proxy 도구(Burp 등)가 서버가 되어 인증서를 대체한다.
- 앱 서버 입장에서는 분석가의 Proxy 도구가 단말기가 되어 인증서를 대체한다.
이렇게 통신 주체의 중간에서 암,복호화를 수행하는 공격 기법을 중간자 공격(MITM; Man in the Middle)이라 한다.
안드로이드에서 중간자 공격의 특징에는 어떤 것들이 있는지 살펴보자.
- Android 7(API 24) 이전 버전은 Proxy 도구의 인증서를 단말기에 설치만 하면 인증서 신뢰가 된 반면,
- Android 7 이후부터는 OS 정책 변경으로 사용자가 설치한 RootCA 인증서는 신뢰하지 않는다.
- 방법 1. 루팅된 기기에서 시스템 인증서 경로로 Proxy 인증서 강제로 설치
- 방법 2. APP을 리패키징하여 사용자 인증서를 신뢰하도록하는 옵션을 추가하여 설치
- 방법 3. SSL-Pinning(with. frida) 적용
안드로이드에 Burp 인증서 설치
상세한 방법은 다른 post에도 업로드 하였다.(https://gomguk.tistory.com/99)
인증서 설치가 완료되었다면, Proxy 도구에서 패킷을 분석하면서 서버에서 모바일 환경을 구분하는 방법으로는 어떤 것들이 있는지 알아보자. PC의 웹 브라우저 패킷과 비교해서 어떤 차이가 있는지 살펴본다.
출처
반응형
'Security > Mobile' 카테고리의 다른 글
[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part2 (0) | 2023.07.15 |
---|---|
[안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 (0) | 2023.07.08 |
[Rooting] 갤럭시 노트 10 루팅 / Galaxy Note 10 rooting (1) | 2023.05.23 |
[안드로이드] UberSigner로 apk 서명하기 (0) | 2023.04.26 |
[안드로이드 모의해킹] apk파일 코드패치와 무결성 검사 (0) | 2023.04.19 |