Luv{Flag}
article thumbnail

 

본격적으로 앱 취약점 진단을 하기 위해 세팅하는 과정이다.

삽질도 많이 했고, 답답하기도 했기에 정리해 두려 한다.

해당 과정은 AVD + Android 13 Tiramisu (x86) + google api 시스템으로 진행되었다.


 

BurpSuite 인증서 설치

port는 8081로 해주었고, All interfaces로 설정했다.

 

 

 

설정이 되었다면, 본인의 ip(ipconfig 으로 확인)와 설정한 포트 (본인은 8081)로 프록시 세팅을 해줄 수 있다.

 

avd에서 직접 http://burp 로 접속하여 인증서를 다운로드 받아 줄 수 있다.

.cer 파일로 저장해 준다.

 

 

 

설정에서 "인증서 설치" 로 다운로드한 인증서를 설치해 줄 수 있다. 

이렇게만 해도 프록시 세팅은 완료되어 버그바운티를 진행해 줄수 있다.

그러나, 특정 앱에서 시스템 인증서로 설정되어있어야 프록시를 잡을 수 있는 것을 확인했다.

 

 


 

CA 시스템 인증서로 설치

mount -o rw,remount /system

기존의 정보들에서는, /system 디렉토리를 마운트하여 설치된 사용자 인증서를 시스템 인증서 경로로 옮겨주는 작업을 했었는데 다음과 같은 오류로 불가능하였다.

 

mount: '/system' not in /proc/mounts

 

/system이 마운트 포인트가 아니라서 나는 에러이다. 

즉, 지금 쓰는 에뮬레이터는 /system을 직접 리마운트할 수 없고, verity를 끌 수도 없는 상태라 해결하려면 “writable-system” 옵션을 켜고 AVD를 실행해야 한다.

 

따라서 아래와 같이 진행해 주었다.

 

 

emulator.exe -avd <AVD이름> -writable-system -no-snapshot-load -no-snapshot-save

에뮬레이터가 설치된 디렉토리에서 cli 환경으로 에뮬레이터를 실행해 준다.

에뮬레이터를 스냅샷 없이, write 할 수 있게 옵션으로 지정해 준다.

 

adb wait-for-device
adb root
adb remount

에뮬레이터가 실행되면, 리마운트 해준다.

이제 루트 경로에서 읽기/쓰기가 가능해진 것이다.

 

Disabling verity for /system 
Using overlayfs for /system 
Using overlayfs for /vendor 
Using overlayfs for /product 
Using overlayfs for /system_dlkm 
Using overlayfs for /system_ext 
Now reboot your device for settings to take effect

위와 같은 메시지가 출력되면,

adb remount가 /system, /vendor 등 파티션을 overlayfs 기반으로 RW 마운트 준비했고,

적용하려면 재부팅해야 한다는 안내까지 나온 상태이다.

 

adb reboot
adb root
adb remount

따라서 reboot 해준 후 다시 진행해 주면,

remount succeeded 과 같은 메시지가 출력될 것이다.

 

 

mv /data/misc/user/0/cacerts-added/9a5ba575.0 /system/etc/security/cacerts/

이제 사용자에 설치된 인증서를 시스템인증서 경로로 옮겨주기만 하면 된다.

 

 

 

이후에 부팅할때는 항상 다음과 같이 -writable-system 옵션을 사용해서 실행해야 한다.

emulator.exe -avd <AVD이름> -writable-system

 

반응형

검색 태그

loading