https://ryanking13.github.io/2020/07/01/capturing-https-android-without-frida.html
https://omespino.com/tutorial-universal-android-ssl-pinning-in-10-minutes-with-frida/
https://codeshare.frida.re/@pcipolloni/universal-android-ssl-pinning-bypass-with-frida/
해당 블로그 내용을 그대로 가져왔습니다.
앱이 HTTPS를 사용하여 패킷을 암호화하고 있다면 가짜 루트 인증서를 설치해서 암호화된 패킷을 중간에서 MITM 방식으로 가로채서 복호화하여야 합니다.
문제는, 안드로이드 7.0인 Nougat부터는 시스템적으로 사용자가 설치한 루트 인증서를 신뢰하지 않도록 하는 옵션(SSL-Pinning)이 디폴트로 설정되어 있습니다.
이 때문에 안드로이드 7.0 이상에서 가짜 루트 인증서를 디바이스에 설치하고 패킷 스니핑을 시도하면, 인증서 검증에 문제가 생겨서 앱이 제대로 동작하지 않습니다.
✔️ Frida를 이용한 우회
이러한 SSL-Pinning 옵션을 우회하는 방법으로 잘 알려진 것은 Frida를 이용해서, 앱의 인증서 검증 과정을 후킹하는 방법입니다.
해당 방법에 대해서는 아래 포스트에 자세히 설명되어 있습니다.
Frida는,
- 👍 SSL-Pinning 우회 외에도 다양한 용도로 사용할 수 있고,
- 👍 안드로이드 뿐만 아니라 iOS 등의 환경에서도 사용할 수 있다는 장점이 있습니다.
그렇지만 한편으로는,
- 👎 매번 adb에서 Frida 서버를 실행하고 컴퓨터와 통신해야 한다는 점과,
- 👎 루팅된 디바이스가 필요해서 에뮬레이터를 사용하지 않으면 번거롭다는 단점이 있습니다.
'모바일' 카테고리의 다른 글
frida 추가 (0) | 2020.08.10 |
---|---|
iOS (SSL Pinning) (0) | 2020.08.09 |
iOS 무결성 검증 건 (0) | 2020.08.07 |
ro.debuggable 동적디버깅 (0) | 2020.08.06 |
ADB shell /data/data 추출 (0) | 2020.08.06 |