1. 개요
어플의 통신을 프락시로 잡아 변조할 수 있는 것은 어플의 통신상 정보를 변조하거나 조작할 수 있으므로 방어해야 하는 부분 중 하나이다. 하지만 어플의 패킷이 Burpsuit나 Fiddler로 잡히는 것을 대수롭지 않게 처리하는 곳이 많다. 오늘은 SSL Pinning의 방법 중 가장 간단한 인증서 설치를 이용한 SSL Pinning우회를 알아보도록 하겠습니다.
2. 준비
Fiddler 혹은 Burpsuit, Nox player
3. 방법
Fiddler와 Burpsuit 인터넷을 통해서 쉽게 다운로드할 수 있습니다. 그럼 순차적으로 Burpsuit, Fiddler의 프락시 설정을 순차적으로 설명하겠습니다.
1) Burpsuit
Burpsuit실행 후 프락시를 설정할 IP주소를 설정하여 줍니다. Proxy>Options에서 설정 값 클릭 후 왼쪽의 edit를 클릭하여 변경할 수 있습니다.
Specific address를 선택하여 프락시로 사용할 IP를 선택하여 줍니다. 여기에서 사용되는 특정 주소는 본인의 IP를 사용하는 경우가 대부분입니다.
여기까지가 PC에서 설정해 주어야 할 부분입니다.
SSL Pinning을 위해서는 WIFI환경을 필요로 하는데 이유는 디바이스의 프락시를 디바이스 내의 WIFI에서 직접 설정할 수 있으며 PC에 연결된 공유기를 통해 프락시 설정이 가능하기 때문입니다. 이는 iPhone에서도 과정이 흡사하니 참고 바랍니다..
단말기 내의 설정>WIFI>네트워크 수정에 보면 고급 옵션이 존재합니다.
프락시를 수동으로 선택하면 위와 비슷한 화면이 나타나게 됩니다.
이곳에 호스트와 포트를 Burpsuit에 설정해 주신 값과 동일하게 설정하여 주시면 됩니다.
여기까지 하면 프락시가 잡히는 것을 확인할 수 있지만 SSL/TLS연결의 경우는 잡더라도 해석이 불가능한 경우가 있습니다. 이를 위해 인증서를 설치하여 주는 과정을 거칩니다.
인터넷을 이용해 https://burp로 이동하면 위와 같은 화면이 나타나는데 오른쪽 위의 CA Certificate를 누르면 인증서를 다운로드하게 됩니다.
다운이 안 될 경우는 컴퓨터를 프락시에 연결하여 동일한 주소로 이동하면 같은 창을 확인할 수 있습니다.
처음 다운로드할 경우 위와 같이 확장자 명이 .der로 되어 있습니다. 이것을 .cer로 고쳐주어 디바이스에 넣거나 디바이스에서 다운로드하였을 경우는 파일 관리자에서 확장자를 바꾸어 주면 됩니다.
설정>보안>자격증명 저장소>SD카드에서 설치를 선택합니다.
인증서를 넣어둔 폴더에 가서 인증서를 선택하여 줍니다.(이미 확장자는 .cer로 바꾼 후입니다.)
인증서 이름을 입력한 후 확인을 누르면 인증서 설치가 끝납니다. 주의할 점은 만약 디바이스 잠금(비밀번호 잠금, 패턴 잠금 등)이 설정되어 있지 않으면 인증서 설치가 불가합니다.
2) Fiddler
Fiddler는 Burpsuit와 방법이 대부분 동일하지만 프락시 설정과 인증서 다운로드하는 방법이 다르므로 두 가지만 알려주도록 하겠습니다.
Tools>Options>HTTPS를 선택하면 Capture HTTPS CONNECTs와 Decrypt HTTPS traffic을 체크해 줍니다.
Connections탭에서 Fiddler listens on port를 설정해 줍니다. 대부분 8888을 많이 해줍니다.
이렇게 하면 모든 준비가 끝나지만 여기에서 단말기에 설정해주는 IP값이 다릅니다.
Fiddler 앱 내의 우측 상단에 보면 사진과 같은 게 보일 텐데 위에 마우스 포인터를 올려주면 설정할 IP값이 보입니다. 또한 PC 내부에서 CMD에 ipconfig명령어를 통해 IP값을 알아내는 방법도 있습니다.
이후 WIFI를 설정해주는 방법은 동일합니다. 후에 인증서를 다운로드하는 것이 다릅니다.
http://www.telerik.com/fiddler/add-ons
이 페이지에서 Certificate Maker plugin(CertMaker for iOS and Android)를 다운로드하여서 설치해 줍니다. 후 Fiddler를 재시작해주고 디바이스의 프락시 설정을 모두 마친 뒤에 http://ipv4.fiddler:8888에 접속하여 FiddlerRoot certificate를 다운로드하여 줍니다.
이후의 인증서 설치 과정은Burpsuit와 같습니다.
'Android' 카테고리의 다른 글
frida-gadget 설치 및 사용방법 (0) | 2019.12.26 |
---|---|
XposedInstaller/Just trust me를 활용한 SSL Pinning 우회 (0) | 2019.12.24 |
frida와 frida-server 진단환경 구성 (0) | 2019.11.05 |
Smali 파일 변조 (루팅 탐지코드 변조) (0) | 2019.10.19 |
Smali 파일 변조 (SU 탐지 우회) (0) | 2019.10.14 |