본문 바로가기
보안/AOS

[AOS] Andoird 9.0 SSL Pinning 우회

by stephen26 2021. 6. 23.

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

댓글