[안드로이드 모의해킹] HTTP/S 패킷 스니핑, 변조하기

직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다.
공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항)

개요

안드로이드는 SSL 통신을 지원하며, 단대단 암호화 적용 후 패킷을 주고 받는다.

앱이 서버와 정상 통신을 하기 위해서는 상호간의 신뢰할 수 있는 인증서를 가진 상태에서 공개키를 이용한 암호화를 적용한 패킷을 전송한다.

하지만 암호화된 패킷은 분석가가 패킷의 내용을 살피기 어렵기 때문에 복호화하는 과정이 필요하다.

- 단말기 입장에서는 분석가의 Proxy 도구(Burp 등)가 서버가 되어 인증서를 대체한다.

- 앱 서버 입장에서는 분석가의 Proxy 도구가 단말기가 되어 인증서를 대체한다.

이렇게 통신 주체의 중간에서 암,복호화를 수행하는 공격 기법을 중간자 공격(MITM; Man in the Middle)이라 한다.

MITM Attack

안드로이드에서 중간자 공격의 특징에는 어떤 것들이 있는지 살펴보자.

  • 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)

방법 1. 루팅된 기기에서 시스템 인증서 경로로 Proxy 인증서 설치

인증서 설치가 완료되었다면, Proxy 도구에서 패킷을 분석하면서 서버에서 모바일 환경을 구분하는 방법으로는 어떤 것들이 있는지 알아보자. PC의 웹 브라우저 패킷과 비교해서 어떤 차이가 있는지 살펴본다.

 

출처

https://gomguk.tistory.com/99 

 

[Nox] 안드로이드 버프 인증서 설치(Android 7.0+)

1. Nox 안드로이드 모의해킹에서 녹스는 앱의 에뮬레이팅을 통한 동적 분석, 루트(Root)권한 설정 및 해제가 용이하여 자주 활용한다. 다만 에뮬레이터 환경에서 동작하는 만큼 에뮬레이터 탐지가

gomguk.tistory.com

 

 

반응형