아이폰 네트워크 패킷 캡쳐 ( Burp, Wireshark )
포스팅 시간 기준 아래 버전들로 테스트 하였습니다.
( macOS Catalina( 10.15.3 ) )
$ frida --version
12.8.14
( iPhone8 11.4.1 )
root# /usr/sbin/frida-server --version
12.8.11
아이폰 네트워크 패킷을 분석하기위한 방법 2가지를 소개하려고 합니다.
먼저 네트워크 패킷을 보기위해서는 탈옥된 iPhone이 필요합니다.
아이폰에서 버프 사용
Burp 실행
Burp Suite 를 실행하여 Proxy 탭에 Listener를 설정합니다. 사용하지 않는 Port로 Listener를 실행합니다.
아이폰 설정
아이폰으로 돌아와 WIFI 설정에 아래와 같이 내 PC IP와 Burp Port로 프록시를 설정해줍니다.
인증서 설치
아이폰의 사파리 크롬 등에서 http://burp를 입력하여 인증서 다운로드 페이지에 접근합니다.
인증서 다운로드후에 프로파일 설치를 진행합니다.
여기까지는 아이폰내에 외부 인증서 burp에 대한 프로파일을 등록하였으며
실제 기기에 인증서를 등록하기 위해서는 iphone 설정에서 인증서를 등록해야 합니다.
HTTPS 사이트 접속
위 순서대로 진행하여 인증서를 설치하게 되면 정상적으로 HTTP / HTTPS 패킷을 확인 할 수 있습니다.
google, daum, naver 등 HTTPS 사이트에 접속하여 인증서가 잘 설치 되었는지 확인합니다.
wireshark로 아이폰 네트워크 패킷 캡쳐 (맥 PC 필요)
아이폰에서 wirshark를 통해 tcp, udp등 다양한 네트워크 패킷을 분석하기 위해서는 wireshark라는 툴을 사용하여 분석할 수 있습니다.
다만 인증서가 없으면 SSL 통신은 복호화 불가능합니다.
Wireshark 설치
Xcode 설치
먼저 맥에서 아이폰의 패킷을 분석하기 위해서는 Remote Virtual Interface를 사용해야 합니다.
애플에서 제공하는 iOS 패킷 캡쳐 툴로 경로는 /Library/Apple/usr/bin/rvictl 며 Xcode를 설치해야 설치가 됩니다.
Xcode 설치후에 아이폰과 맥을 USB로 연결한 후 맥의 rvi에 아이폰을 등록합니다.
rvictl -h
Remote Virtual Interface Tool starts and stops a remote packet capture instance
for any set of attached mobile devices. It can also provide feedback on any attached
devices that are currently relaying packets back to this host.
Options:
-l, -L List currently active devices
-s, -S Start a device or set of devices
-x, -X Stop a device or set of devices
아이폰 UDID 확인
아이폰 UDID는 여러가지 방법으로 확인 할 수 있으나, 저는 itunes로 확인하는 방법을 알려드립니다.
USB 연결 -> macOS Finder 실행 -> 연결된 아이폰 클릭
Remote Virtual Interface에 등록
UDID를 복사하여 interface에 등록합니다.
$ rvictl -s UDID
Starting device UDID [SUCCEEDED] with interface rvi0
$ rvictl -l | grep UDID
[1] UDID with interface rvi0
$ ifconfig rvi0
rvi0: flags=3005<UP,DEBUG,LINK0,LINK1> mtu 0
rvi 캡쳐 시작
Wireshark 인터페이스 목록에서 rvi0를 선택하여 패킷 캡쳐를 시작합니다.
패킷 분석을 원하는 사이트에 접속하여 캡쳐 내용을 확인합니다. (m.naver.com 에 접속)
Leave a comment