단말기, Nox와 다르게 AVD는 WiFi를 설정할 수 없다.
AVD에서 Burp를 사용하기 위해 기록한다.
AVD의 가장 큰 장점은 시스템 이미지를 사용할 수 있다는거다.
burp 인증서를 시스템 디렉터리에 넣는 작업부터 수행한다.
1. burp 인증서 추출
1-1. Proxy -> Options -> Proxy Listeners -> Import / export CA certificate > Next
1-2. 인증서 추출할 경로 및 파일 명 작성
2. 루트 인증 기관 인증서 변환
openssl x509 -inform DER -in ca.cer -out cacert.pem
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
첫줄에 나온 "9a5ba575" 확인 후 cacert.pem 파일명 변경
- 확장자는 0으로 설정, 추후 시스템 인증서 디렉토리에 접근하면 확장자가 0 임
mv .\cacert.pem 9a5ba575.0
ls 9a5ba575.0
3. 변환 인증서 AVD에 넣기
3-1 실행할 AVD 리스트 확인
emulator.exe -list-avds
3-2 AVD 실행
emulator.exe -avd BURP_TEST -http-proxy 127.0.0.1:8080 -writable-system
옵션 | 설명 |
-avd [avd_name]
|
avd 실행 |
-http-proxy [proxy:port]
|
프록시 지정 설정 |
-writable-system
|
시스템 이미지 쓰기 권한 설정 |
3-3 dm-verity 검사 비활성화 및 remount 설정
adb devices
adb root
adb disable-verity
disable-verity 할 경우 재부팅이 필요하다.
adb reboot
adb root
adb remount
3-4 루트 인증 기관 인증서 등록
system 디렉터리 쓰기 권한 부여를 위해, 정보 확인
adb shell 'cat /proc/mounts' | findstr system
변환된 인증서가 있는지 확인 후 루트 인증 기관에 인증서 복사
ls 9a5ba575.0
adb shell 'mount -o rw,remount -t ext4 /dev/block/dm-1 /system_ext'
adb push "9a5ba575.0" /data/local/tmp
adb shell "chmod 644 /data/local/tmp/9a5ba575.0"
adb shell "mv /data/local/tmp/9a5ba575.0 /system/etc/security/cacerts/"
adb shell "ls -al /system/etc/security/cacerts/9a5ba575.0"
4. Burp 확인
4-1 프록시 설정 확인
우리는 AVD를 실행할때 "-http-proxy 127.0.0.1:8080" 옵션을 주고 실행했다.
burp의 Proxy Listeners 설정된 정보와 같은지 확인한다
4-2 AVD 프록시 설정
아래와 같이 설정 함
burp 사이트로 접근할 경우 패킷 잡히는 걸 확인할 수 있다.
'Technical Docs > Android' 카테고리의 다른 글
VPN 또는 내부망에서 프록시 잡기 (reverse proxy) (1) | 2024.02.13 |
---|---|
[AVD] Play Store? (0) | 2022.07.21 |
[분석] UnCrackable-Level1.apk - 2 (Secret String) (0) | 2022.06.28 |
[분석] UnCrackable-Level1.apk - 1 (Rooted) (0) | 2022.06.28 |
[Frida] Root Check : getpid (0) | 2022.06.22 |