회사앱에서 안드로이드폰에서 패킷 재전송 취약점이 발견되어 검증을 위해 테스트를 하기 위해 오랜만에 버프스위트를 사용해보았다.
안드로이드폰 > 내PC > 어플 이 흐름에서 내PC를 프록시하여 연결 패킷을 수정, 재전송 등 다양한 시도를 할수있다.
1. 사전 준비
- 버프스위트 프로그램(https://portswigger.net/burp/communitydownload)
- 루팅된 안드로이드폰
- 윈도우 openssl(https://slproweb.com/products/Win32OpenSSL.html)
안드로이드 7.0 이상부터는 사용자 인증서를 신뢰하지 않을수 있어 시스템 인증서쪽에 넣어야 정상 작동이 되어 루팅이 필요하다.
2. 버프스위트 설정

프록시설정 > 리스너 수정 > 바인드 주소 All interfaces 설정

CA 인증서 추출 > DER 형식 설정 > 경로지정 후 burp.cer 로 저장
3. 안드로이드 폰 인증서 설치

설치한 openssl을 열고 추출 디렉토리로 이동 후 아래코드를 입력하여 burp.pem 으로 변환 뒤 표시된 해쉬값.0으로 burp.pem 이름 변경한다.(9a5ba575.0)
openssl x509 -inform DER -in burp.cer -out burp.pem
openssl x509 -inform PEM -subject_hash_old -in burp.pem

아래 명령어를 이용하여 버프 인증서를 루팅된 안드로이드 폰으로 삽입해준다.
adb push 9a5ba575.0 /data/local/tmp
adb shell
su
mount -o rw,remount /
cp /data/local/tmp/9a5ba575.0 /system/etc/security/cacerts/
mount -o ro,remount /
chmod 644 /system/etc/security/cacerts/ 9a5ba575.0
4. 안드로이드폰 설정
버프스위트를 사용할 PC와 동일 네트워크에 WIFI 연결 후 아래와 같이 프록시 설정을 한다.
프록시 호스트 이름 : 사용 PC IP
프록시 포트 : 8080
설정 후 인터넷 연결 확인 및 Intercept on 으로 패킷이 정상적으로 PC를 거치는지 확인하면 완료이다.
※당연히 PC는 8080 방화벽을 열어야 작동한다