본문 바로가기

Technical Docs/Android

[AVD] Burp Suite 사용하기

단말기, 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 사이트로 접근할 경우 패킷 잡히는 걸 확인할 수 있다.