Burp Suite를 통한 Android SSL Packet 분석(Android Proxy + SSL Certificate)

Android 분석 중 발생하는 패킷에 대해 분석할 때 대부분 tcpdump + wireshark 조합을 많이 사용하게 됩니다. 그 중 http 패킷에 대해서는 wireshark 보다 익숙한 burp가 좋기 때문에 프록시를 burp로 걸고 보는 경우가 많았지요.

그 중 burp에서 SSL 관련 패킷에 대해 확인이 안되어 좀 찾아본 결과 쉬운 방법으로 burp에서 Android SSL이 적용된 요청을 확인할 수 있었습니다.

Download Certificate

PC나 Android Device에서 burp 페이지(burp 서버 페이지 / ex: 127.0.0.1:8080) 접근 후 우측 상단의 “CA Certificate” 메뉴를 클릭하여 인증서를 다운로드 받습니다.

테스트에서는 PC웹을 통해 다운로드 후 ADB or 파일 관리자를 통해 안드로이드 기기에 인증서를 설치하였습니다. 앱에서 직접 접근해서 받은 후 설치하셔도 됩니다.

다운로드 받은 인증서의 파일 확장자를 der에서 cer로 변환합니다.

cacert.der -> cacert.cer

Change LISTEN Address

처음 세팅만하고 접근 시 제대로 동작 안하는데 이 경우 대부분 Proxy 설정이 localhost만 허용되어 발생하는 문제입니다. Burp Proxy 설정에서 접근할 PC/Device IP나 *로 설정하여 접근이 가능하도록 바꿔주세요.

Install Certificate

변환 후 Android 설정 메뉴 중 보안 메뉴에서 저장소에서 인증서를 가져와 설치합니다. 설정 -> 보안 -> 디바이스 저장공간에서 가져와 설치 -> cacert.cer 탭하여 설치해주세요.

설치 후 Android에서 Proxy를 설정하여 Burp Suite 에서 확인할 수 있습니다.

Set Proxy

디바이스의 Proxy 설정을 사용하거나 ProxyDroid 같은 Toolkit을 이용하여 프록시를 Burp가 실행되는 PC로 지정해줍니다. 안드로이드 요청이 Burp PC로 프록시를 타고 나가게 되며 Burp단의 인증서가 설치되었기 때문에 Burp에서 SSL 패킷에 대해서도 잡을 수 있습니다.

Reference

  • https://support.portswigger.net/customer/portal/articles/1841102-Mobile%20Set-up_Android%20Device%20-%20Installing%20CA%20Certificate.html