본문 바로가기
보안 및 개발/MOBILE

[Android] Integrity Bypass

by CH@3M 2020. 3. 11.

1. base.apk를 open하여 확인하는 경우

일반적인 무결성 우회방법은 open할때 base.apk를 바꿔치기하면된다.

Interceptor.attach(Module.findExportByName(null, "open" ), {
    onEnter: function(args) {
        this.hooked = Boolean(0);
        this.a = Memory.readCString(ptr(args[0])).toLowerCase();  
        console.log("[+] args[0] : " + this.a);

        if (this.a.indexOf("/data/app/kr.co.samsung") !== -1 || this.a.indexOf("/data/app/com.android.chrome") !== -1) {
            var base_path = this.a.split("/");
            var prev = "/data/app/" + base_path[3] + "/base.apk";
            if(this.a == prev) {
                const file = "/data/local/tmp/samsung/base.apk"; 
                Memory.writeUtf8String(args[0], file); 
                console.log("[+] args[0] : " + this.a);
                console.log("integrity bypass") 
            }            
        }
    
    },
    onLeave: function(retval) {
        console.log("retval : " + retval)
        return retval;
    }
});

이렇게 하고 탐지하는 부분 후킹해주면(return 값 변조 혹은 탐지 로직 건너뛰고 실행하도록) 대부분 우회 가능

 

2. installer ID check

2020/02/10 - [Mobile/Android] - [Android] apktool을 이용한 디컴파일 및 리패키징

이전 글에서도 언급한 적 있지만, 앱스토어에서 다운받는 경우 부여되는 ID를 확인할 수도있다.

설치 시, 다음과 같은 명령어를 사용하면 우회 가능

adb install -i "com.android.vending" resigned.apk

 

3. signature check

앱이 설치된 디렉토리를 보면, 패키지명 뒤에 -해시값이 존재한다. 이 해시값을 확인하여 비교한다?

 

4. unzip해서 manifest에 있는 signature와 확인?

 

참고링크

https://www.airpair.com/android/posts/adding-tampering-detection-to-your-android-app

http://dktfrmaster.blogspot.com/2017/02/apk.html

 

반응형

'보안 및 개발 > MOBILE' 카테고리의 다른 글

[Android] Burp Suite CA인증서 관련 정리  (0) 2020.03.17
[Android] SELinux chcon  (0) 2020.03.16
[Android] Frida detection bypass  (0) 2020.03.11
[Android] galaxy s9 루팅하기  (0) 2020.02.20
[Android] How to Rooting Detection  (0) 2020.02.12