인증서 제작
Burp 인증서 추출
Burp Suite에서 Proxy → Options로 이동한 후 다음과 같은 순서로 인증서 추출을 진행한다.
- Import / export CA certificate 선택
- Certificate in DER format 선택 후 진행
- Select file을 눌러 저장할 위치를 선택 후 다음으로 넘어가면 정상적으로 추출을 할 수 있다.
OpenSSL을 이용한 인증서 변환
추출한 burp 인증서를 변환하기 위해 먼저 현재 환경에 맞는 OpenSSL을 설치한다.
설치가 완료되었다면, 설치된 경로 내부 bin 폴더 안에 이전에 추출한 burp 인증서를 넣어준다.
이후 다음 명령어를 통해 burp 인증서를 pem으로 변환해준다. (이때 관리자 권한이 필요하다)
- openssl x509 -inform DER -in ./burp.der -out burp.pem
변환이 성공적으로 끝났다면 다음 명령어를 이용하여 변환된 파일을 통해 해쉬값을 추출한다.
- openssl x509 -inform PEM -subject_hash_old -in burp.pem
마지막으로 변환한 pem 파일의 이름을 이전에 추출한 해시값으로, 확장자를 ". 0"으로 변경해주면 된다.
인증서 등록
Nox
현재는 Nox를 이용하여 진행하지만 루팅된 기기가 있다면 동일하게 진행하면 된다.
가장 먼저 Nox의 시스템설정 → 기본 설정 → ROOT 켜기를 통해 루팅을 활성화한다.
이후 adb_nox의 push 명령어를 사용하여 이전에 제작한 인증서를 "/data/local/tmp"에 저장한다.
- adb_nox push 9a5ba575.0 /data/local/tmp
저장이 되었다면 "/system/etc/security/cacerts/"에 인증서 파일을 옮길 수 있도록 mount명령어를 이용하여 해당 영역에 쓰기 권한을 추가해준 후 인증서 파일을 옮겨준다.
- mount -o rw,remount /system
- cp ./9a5ba575.0 /system/etc/security/cacerts/
프록시 설정
Nox
정상적으로 인증서 추가를 마쳤다면 다음으로 녹스에서 네트워크 설정을 통해 프록시를 등록해준다.
녹스에서 설정 → Wi-Fi → WiredSSID(연결된 Wi-Fi)에서 네트워크 수정을 눌러준 후 다음과 같이 호스트와 포트를 입력한다.
이때 프록시 호스트는 현재 호스트의 IPv4를 입력해주고 포트는 8080으로 설정한다.
Burp Suite
Burp Suite에서 Proxy → Options로 이동한 후 Proxy Listeners의 Add를 눌러 리스너를 추가한다.
만약 포트를 다른 값으로 변경하고 싶다면 이전 녹스에서 프록시 포트도 변경해주면 된다.
추가해주었다면 다음과 같이 리스너가 추가된 것을 확인할 수 있다.
모든 과정이 정상적으로 끝났다면 다음과 같이 녹스에서 통신한 네트워크가 Burp Suite에서 잡히는 것을 확인할 수 있다.
Reference
- 안드로이드 버프 인증서 설치
https://itinformation.tistory.com/259 - OpenSSL
http://slproweb.com/products/Win32OpenSSL.html