Android 디바이스 ↔ Fiddler ↔ Burpsuite 프록시 환경 구성하기
Android 7 이상 버전에서 Burp Suite 인증서 설치하기
Android 7 환경부터 시스템 인증서 설치를 위해서는 일련의 추가 과정이 필요하다. (이전 처럼 진행 시 인증서 에러가 발생하며 통신이 되지 않는다.) 물론 SSL 피닝을 통해 통신 패킷을 잡을 수도
vardy.tistory.com
앞서 언급 했듯, Android 7 이상 버전에서 https 환경에서 프록시 환경 구성을 위와 같은 방법으로 진행 할 수 있다.
하지만 Nox 등 에뮬레이터가 아닌 실제 기기에서, 디바이스 ↔ Burpsuite 로 환경을 구성하면 통신 및 프록시 설정 자체는 할 수 있지만 속도가 매우 느려 실질적으로 점검을 수행하기 어려운 현상이 발생하곤 한다.
Android 디바이스 ↔ Fiddler ↔ Burpsuite 와 같이 중간에 Fiddler를 추가 활용하여 환경구성을 하면 원활한 점검 환경을 구성 할 수 있어, 이를 소개하고자 한다.
1. Fiddler 인증서 설정 및 추출
피들러 실행 후 하단 콘솔(검은 입력 창) 에 about:config를 입력하면 우측에 여러 설정 값들이 나온다. 거기에 아래 옵션을 지정해준다. 없다면 추가해줘야 한다.
fiddler.certmaker.validdays(인증서 만료 일) : 안드로이드에 적용을 위해서는 365일 이하로 해주어야 한다.
fiddler.certmaker.gracedays(인증서 만료 후 유지 일) : 옵션이 지정되어있지 않다면 적절한 숫자를 기입해준다.
추가하는 방법은 피들러 콘솔에 아래와 같이 입력하면 된다.
PREFS SET fiddler.certmaker.validdays 360
그리고 상단 Tools > Options > HTTPS > Actions > Reset All Certificates > Trust Certificate 처리를 해준다.
위 과정이 마무리 되면, Tools > Options > HTTPS > Actions > Export Root Certificate to Desktop 을 통해 추출을 해준다.
정상적으로 처리가 되면 "FiddlerRoot.cer" 파일이 바탕화면에 생성된다.
아래 명령을 통해 해쉬값을 추출해주고,
openssl x509 -inform DER -in FiddlerRoot.cer -out Fiddler.pem
openssl x509 -inform PEM -subject_hash_old -in Fiddler.pem
Fiddler.pem 파일을 269953fb.0 으로 변경해준다.
** 위 방법으로 안되는 경우 아래 fiddler addon을 사용해보자.
https://www.telerik.com/fiddler/add-ons
Add Ons for Telerik Fiddler Web Debugging Proxy
A wide selection of useful add-ons for Fiddler Classic Web Debugging Proxy.
www.telerik.com
https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe
2. 디바이스에 인증서 설치
설치 자체는 이전에 했던 방법과 동일하다.
[on windows]
adb devices
adb root
adb push 269953fb.0 /mnt/sdcard/Download/
adb shell
[on device adb shell]
mount -o rw,remount /system
mv /mnt/sdcard/Download/269953fb.0 /system/etc/security/cacerts/269953fb.0
chmod 644 /system/etc/security/cacerts/269953fb.0
chown root:root /system/etc/security/cacerts/269953fb.0
reboot
이후에 Fiddler에서 Tools > Options > Gateway 에 Manual Proxy Configuration 을 127.0.0.1의 사용중인 포트 외 다른 포트로 설정해준다.
그리고 Burpsuite 에서 해당 포트로 프록시 설정을 해준다.
여기까지 설정을 완료하면, Android 디바이스 ↔ Fiddler ↔ Burpsuite 프록시 설정이 완료되어 안드로이드 실 기기에서 Burpsuite를 빠른 통신 환경에서 점검 할 수 있는 셋팅이 완성된다.