2010년 2월 10일 수요일

아이폰(iPhone)에서도 패킷 캡쳐를 할 수 있다고!

모바일 장치인 아이폰에서도 패킷을 덤프해 보자. 아이폰에서 네트워크 패킷 데이터를 캡쳐할 수 있는 도구를 하나 소개하고자 한다. Pirni 라고 패킷 데이터를 덤프하여 파일로 저장해 주는 역할을 해 준다. 이 저장한 패킷은 와이어샤크나 tcpdump 를 통해 분석을 똑 같이 할 수 있다. Pirni 는 아이폰과 아이팟터치 에서만 사용이 가능하며, 아이폰의 첫 번째 패킷 스니퍼로 알려져 있다. 이걸 사용하기 위해서는 OS 버전이 3.0 이상되어야 하며, 탈옥된 아이폰을 사용하고 있어야 한다. 일단, 와이어샤크같이 편한 GUI 환경을 갖고 있지 않으며, 터미널을 통해 수행하게 된다.


옆 화면은 목적지 포트가 80 번인 패킷에 대해 log.pcap 으로 저장하는 것이다. 초기 실행되는 로그를 보면 패킷 포워딩이라는 것이 보인다. Promiscious 모드를 사용할 수 없어, ARP 스푸핑을 통해 라우팅을 다른쪽으로 우회시켜 포워딩 하는 형태로 패킷 데이터를 덤프뜬다.

아직은 많은 기능을 가지고 있지 않고, 몇 가지 사용예제를 소개하면 아래와 같다. 굳이 설명을 하지 않더라도 아래 예제를 보면 어떤 의미인지 추측이 될 것이다.

        pirni -s 192.168.0.1 -o log.pcap
        pirni -s 192.168.0.1 -d 192.168.0.128 -f "tcp dst port 80" -o log.pcap
        pirni -i en1 -s 192.168.0.1 -d 255.255.255.0 -o log.pcap

앞서 말한것과 같이 pirni 는 단순히 패킷 덤프를 하는 기능만을 가지고 있어, 분석형태로 사용하기는 힘들다. 그래서 사용하는 것이 derv 라는 것이 있다. 이것은 패킷 캡쳐된 패킷 파일을 파싱하는 스크립트를 포함하고 있는 것이다. derv.sh 는 실시간으로 패킷을 읽어 정보를 보여주므로 tcpdump 와 비슷할 수도 있겠다. 하지만, 기능은 많이 제한되어 있다는 점.

나에겐 아직 아이폰이 없어, 주변에 설치한 분의 아이폰 화면을 소개한다. :-)


아이폰에서 패킷 캡쳐에 관심있는 분들이라면 다음 페이지를 참고해 설치해 보면 된다.

1) Pirni 사용 가이드
2) Derv 설치방법
3) Script add-on for Pirni, a native iPhone/iPodTouch network packet sniffer.

댓글 3개:

  1. 안녕하세요 저는 정보통신 공학과에 재학중인 4학년인데 이번에 네트워크 보안 관련 주제로 졸업 논문을 쓰게 되었습니다. 주제가 스마트폰 트래픽 분석에 관련된 것입니다. 이것에 대해서 좀 배우고 싶습니다.

    -성능지표

    per-flow traffic rate(average rate and std)

    distribution of packet inter-arrival time

    autocorrelation(?)

    per-application traffic rate(e.g. traffic rate for web browser, streaming application)

    -comparison with other WLAN traffic

    -investigation of the maximum nunber of smartphone accomodated for a given AP through experiment using multiple smartphone or emulation using multiple PCs.

    이런 내용 입니다. 관련 지식을 얻고 싶어서 이렇게 글 남기게 되었습니다.

    이메일로 보내주시면 감사하겠습니다.

    rnrdud1210@nate.com

    답글삭제
  2. 안녕하세요~ 아이폰 tcpdump에 관한 글이 작성해 주신 이글 밖에 없네요^^;;

    cydia에서 다운 받아보려 하는데 아예 검색이 안되더군요..

    혹시 소스를 추가해야 한다면 주소가 어떻게 되는지 여쭤보고 싶습니다^^

    제 이메일은 naduya17@paran.com 입니다.

    좋은 일은 아니지만 SBS 어플이 어디로 접속하는지 알고 싶어서 한번 해볼까 합니다^^;

    잘되면 좋은 정보(?) 알려드릴께요^^;;

    답글삭제
  3. @유수열 - 2010/06/03 20:47
    지금 가서 다시 살펴보니, 일단 SVN 으로 체크아웃 받으시면 됩니다. 다음과 같이 받을 수 있습니다.



    $ svn checkout http://n1mda-dev.googlecode.com/svn/trunk/ n1mda-dev-read-only

    A n1mda-dev-read-only/pirni

    A n1mda-dev-read-only/pirni/pirni.c

    A n1mda-dev-read-only/pirni/pirni.h

    A n1mda-dev-read-only/pirni/COPYING



    Pirni 가 찾으시려던 것이고요, IMD 는 iPhone 뮤지 데몬이라고 합니다. gps 폴더는 GPS Daemon 이네요. 그리고 굳이 아이폰에 설치를 하지 않더라도, 집에서 사용하시는 무선 AP 가 있다면 아이폰에서 그쪽으로 접속하고 다른 윈도우 기반의 PC를 통해 패킷 덤프를 하셔도 될거 같습니다. 물론, 패킷덤프를 할 수 있느냐 하는 상황에 따르겠지만 참고하세요 ^^

    답글삭제