Android 7.0 부터는 시스템적으로 사용자가 설치한 루트 인증서를 신뢰하지 않도록 하는 옵션(SSL-Pinning)이 디폴트로 설정되어 있다. (* 링크 참고)
이 설정 때문에 Burpsuite로 프록시를 구성해도 앱의 패킷이 잡히지 않게된다. 따라서 Frida를 이용해 앱의 인증서 검증 과정을 후킹하도록 한다.
<Frida-server 구동>
ㅇ Android 운영체제 버전 확인
$ adb shell getprop ro.product.cpu.abi
ㅇ frida-server 다운로드
ㅇ frida-server 삽입 및 실행
$ adb push [frida-server 경로] /data/local/tmp/frida-server
//adb shell
/data/local/tmp # chmod 755 frida-server
/data/local/tmp # ./frida-server &
<Hooking을 통한 SSL Pinning 우회>
ㅇ Hooking 코드 작성 (ssl-bypass.js)
/*
Universal Android SSL Pinning Bypass
by Mattia Vinci and Maurizio Agazzini
*/
Java.perform(function() {
var array_list = Java.use("java.util.ArrayList");
var ApiClient = Java.use('com.android.org.conscrypt.TrustManagerImpl');
ApiClient.checkTrustedRecursive.implementation = function(a1, a2, a3, a4, a5, a6) {
// console.log('Bypassing SSL Pinning');
var k = array_list.$new();
return k;
}
}, 0);
ㅇ Frida를 통해 Hooking 파일 실행
$ frida -U -f [대상 앱 패키지명] -l ssl-bypass.js --no-paus
<결과>
'보안 > AOS' 카테고리의 다른 글
[AOS] 자주쓰는 명령어 정리 (작성중) (0) | 2021.10.01 |
---|---|
[AOS] Nox (Android 9) ADB connection error 해결 (0) | 2021.06.23 |
댓글