*내용 추가
Android 7.0 이상부터는 시스템에 인증서를 설치해야합니다. OpenSSL을 이용하여 인증서를 만드는 방법 인터넷에 많이 있습니다! 그 방법 사용하시면 됩니다!
=========================================
테스트 기기 : Galay S9 (android 9.0)
android에서 proxy를 설정해서 패킷을 burpsuite로 보기위해서는 CA인증서를 설치해야한다.
모바일에서 Proxy를 설정하는 건 iOS 할때 글이 있긴하다. (Andoroid 7.0 이전 버전일 경우는 아래 링크대로 진행하면 된다)
2019/10/21 - [Mobile/iOS] - [iOS] BurpSuite를 이용한 Proxy 설정 (response, SSL 포함)
Android에서 이쪽으로 삽질할 일이 좀 있었어서.. 이런저런 내용들을 좀 정리하고자 한다.
일단 안드로이드 Nougat (Android 7.0) 이후로는 자체 SSL Pinning 기능이 생겼다고 한다. 사용자가 사설 인증서를 설치하면 루트인증서가 아니라 사용자 인증서로 인식한다고 한다.
그래서 1) 시스템인증서로 설치하는 방법이 존재한다. (Burp인증서는 기본적으로 20년 이상 짜리가 생성되는데, 구글에서 Android System Root인증서의 경우 최장 39개월로 정했기 때문이라고 한다. or 권한차이? // 시스템 인증서로 설치하는 방법 참고 블로그 : https://hackcatml.tistory.com/m/37 ) 나는 이 방법이 잘 되지 않아서 사용하지 않았다.
2) PC와 모바일에 같은 버프인증서 설치(?) & frida
음.. 일단 나는 폰에만 인증서를 설치해서 진행했던것 같은데, PC에도 동일한 인증서가 설치되어 있어야한다고 한다. (사실 인가요..?) PC의 인증서와 모바일의 인증서가 같은지 확인할 때는 인증서의 Hash 값을 확인하면 된다.
우선 PC에서 인증서를 받는데는, IE에서 받을 수도 있고, Burp Suite에서도 받을 수 있다. 근데 burp에서 받지말고 IE에서 받는걸 더 추천한다고 한다. (왜일까)
IE에서 인증서를 받고 PC에 설치하는건 아래 블로그에 잘 정리해 두신것 같아서 링크 첨부! ㅎㅎ
https://darksoulstory.tistory.com/471
chrome에서는 여기(https://blogger.pe.kr/731) 참고 @.@
아래 사진은 burpsuite 툴에서 받는 방법인데.. 추천하지 않는다고하니.. 알아만 둡시당 구냥..
PC에 설치한 인증서를 모바일에 설치해주는 방법은!!! adb push 인증서이름.cer /sdcard/ 로 넣어주고 내파일 > 내장메모리 > push한 인증서 클릭하여 설치 해주면 설정 > 생체 인식 및 보안 > 기타보안설정 > 인증서 확인 > 사용자 에서 PortSwigger CA 라는 이름의 인증서를 확인할 수 있습니다. 근데 android 7.0부터 사용자 인증서로 인식되면 안된다고들 하는데.. 나는 패킷이 잘 잡혔다. 근데 나중에보니, 시스템 인증서로 인증서가 옮겨갔던데.. frida 코드를 사용했어서 그런건가..?
SSL pinning bypass는 https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/ 이렇게 codeshare에 스크립트들이 잘 공유되어 있다. 이걸로 안되는 앱들도 많지만 ㅠ 이 코드외에도 몇몇 코드들이 있으니 참조하면 된당.
사실 목적은 SSL pinning bypass 인데 네트워크 문제인지도 모르고 이렇게 인증서를 몇번이나 설치했다가 지웠다가~..~
그리고 BurpSuite도 되도록이면 최신으로 업데이트해서 사용합시다 ㅎㅎ
'보안 및 개발 > MOBILE' 카테고리의 다른 글
[Frida] trace (0) | 2020.03.26 |
---|---|
화면캡쳐 우회 (0) | 2020.03.18 |
[Android] SELinux chcon (0) | 2020.03.16 |
[Android] Integrity Bypass (0) | 2020.03.11 |
[Android] Frida detection bypass (0) | 2020.03.11 |