안드로이드 7.0 이상부터는 기존에 http://burp 혹은 인증서를 sdcard에 넣어서 설치하는 식으로는 인증서 설치가 불가능합니다.


가장 큰 이유는 사용자 인증서와 시스템 인증서의 권한 차이인데요. 7.0으로 업데이트 되면서 기존에 사용하는 방법은 사용자 인증서로 인증서 설치가 되기 때문에 시스템에 넣어줘야합니다.


테스트는 녹스플레이어에서 진행했습니다. 현재 7.1.2 버전까지 지원하네요 :)




일단 기존에 버프에서 인증서를 추출한 뒤, openssl을 이용해서 시스템폴더에 알맞은 형식으로 변환해 주어야 합니다.


다음 명령어를 입력하여 인증서 변환 및 해쉬값을 추출합니다.

openssl x509 -inform DER -in <추출한 인증서> -out cacert.pem 
openssl x509 -inform PEM -subject_hash_old -in cacert.pem




제 버프 인증서의 해쉬값은 9a5ba575인데요 해당 <해쉬값>.0으로 파일이름을 변환합니다.



후에 에뮬레이터에 인증서를 넣어줘야 하는데 위치는 /system/etc/security/cacerts/입니다.


다만 system폴더에 접근하려면 권한이 필요한데 mount명령을 이용해 권한을 넣어준 후 인증서 파일을 넣어줍니다.


adb root


adb mount


adb push 9a5ba575.0 /system/etc/security/cacerts/



adb에 접속하여 확인한 결과 인증서가 들어간 것을 확인할 수 있습니다.


인증서를 넣어준후 에물레이터 리부팅하면 시스템폴더에 버프 인증서가 들어간 것을 확인할 수 있습니다 :)




버프로 ssl통신도 확인이 가능합니다 :)



출처 : https://blog.ropnop.com/configuring-burp-suite-with-android-nougat/



-----------------------------------------------------------19.08.19 추가--------------------------------------------------------------

위의 방법 외에도 frida를 이용하여 후킹 후에 진행하는 방법이 있음.


위 방법도 결국엔 루팅이 기본조건이므로 프리다로 우회하던 위 방법고 같이 인증서를 넣어주던 선택해서 진행.


[후킹코드]


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);


처 : https://j-a-l.tistory.com/143?category=809384

 


'Mobile' 카테고리의 다른 글

Uncrackable3-2  (1) 2019.05.08
Ghidra Installation  (0) 2019.04.10
Objection(with. iOS SSL Pinning)  (0) 2019.03.11
Cydia 에러(Could not connect to the server)  (0) 2019.02.25
Android Method Trace(With.Frida)  (2) 2019.01.29

Android에서 Proxy를 잡을 경우 인증서 설치를 해줘야 HTTPS통신을 확인할 수 있습니다.


일단 [Proxy] - [Options] - [Proxy Listeners] - [Import/export CA certificate] 에서 인증서를 추출하여 파일로 저장합니다.





파일로 추출한 후에는 adb를 이용해 안드로이드 단말기에 넣어주면 되는데, 경로는 어디에 하든 굳이 상관없습니다. 





안드로이드 단말기에서 [설정] - [잠금화면 및 보안] 화면에서 [기타 보안 설정]으로 들어갑니다.



디바이스에 저장된 인증서 설치 클릭



아까 넣어주었던 cacert.der 파일이 보입니다. 클릭해서 완료 하면 설치됩니다.


인증서 설치 후 burp에서 정상적으로 https통신도 확인이 가능합니다 :)




'Mobile' 카테고리의 다른 글

Android Socket 통신 확인(with.Frida)  (2) 2019.01.18
apktool first type is not attr  (0) 2018.10.04
Uncrackable3-1  (2) 2018.06.14
APK IDA로 동적디버깅  (0) 2018.02.22
welcome to droid (codegate2018)  (2) 2018.02.11

+ Recent posts