이전에 몇번 안드로이드 패킷과 관련한 글을 포스팅 하였다. 오늘은, 그간 직접 패킷덤프를 하지 못한 아쉬움이 있었는데, 직접 패킷 덤프를 한 사례를 소개한다. 패킷덤프 프로그램은 *NIX 환경에서 많이 사용하는
tcpdump 이다. 바로 이 tcpdump 를 안드로이드에서 동작시켜 보는 것이다.

와이어샤크 같은 GUI 환경은 아니지만, 그래도 충분하다. 동작시키기 위해서는 다음 2가지 요건이
갖춰져야 한다.

- 루트 권한
권한이 없는 상태에서 실행하면
You don't have permission to capture on that device 메시지를
- 안드로이드 환경에서 동작 가능한 tcpdump
다음 URL 에서 다운로드:
또는 첨부파일 다운




위 환경이 준비되었다면, 간단하다. tcpdump 파일을 휴대폰에 넣어주고 루트권한으로 실행만 해주면 된다.
필자가 사용하는 안드로이드 스마트폰은 국내에 처음으로 소개된 모토로이이다. 그간 루트권한을 얻을 수 있는 방법이 없어, 사용하지 못했는데. 이제야 가능해 졌다. 자 실행전에 'netcfg' 를 사용해 인터페이스 현황을 살펴보자.

usb0 는 휴대폰과 컴퓨터간 연결되어 할당된 주소이고, rmnet0 라고 하는 부분이 3G 사용할때 할당되는 인터페이스 이다. 10.163.36.86 IP 가 할당되어 있고, 서브넷은 255.0.0.0 이다. 자, 10.x.x.x/8 주소는 인터넷에서 라우팅되지 않는 Private Address 이다. 그러면 추측이 가능하다. rmnet0 에 할당되는 것이 Private 주소 이므로, 결국 통신이 될때는 NAT 를 거쳐서 통신이 될 것이다. 다음 프로그램은 Network Info II 라는 프로그램을 실행한 것인데, External IP 로 공인 IP 주소가 보인다. 실제 외부와의 통신은 이 IP 를 가지고 하게 되는 것이다.
네트워크 구성을 잠깐 살펴보았고, 이제 tcpdump 를 실행해 보자. 실행 해보니 *NIX 환경에서 실행되는 것과 같다. 그렇다면 원하는 대로 자유롭게 사용가능하다는 점!.









자 그럼 tcpdump 를 실행해 보면 아래 그림과 같이 통신 내용을 볼 수가 있다. 내부 IP 주소인 10.163.36.86 이 보인다. 그리고 외부 IP 주소도 보인다.

왠지 새로운 세상이 열리는 것 같다. 앞으로 해 볼수 있는 것이 많을것 같기 때문이다. 앞으로 차차 다뤄보기로 하고 마지막 이미지는 -c 카운터 옵션을 주고 20개의 패킷만 덤프하여 -w 옵션으로 /sdcard/moto.pcap 으로 저장하라는 것이다. 사실 계속 보여지는 덤프 화면을 볼 수는 없고, 저장하여 살펴보는 것이 가장 적절한 방법이다. 화면도 작고, 명령어 하나 타이핑 치는게 불편하다.
그래도 이동중에도 어디서든 패킷 분석을 할 수 있으니 이것은 장점이다. 3G 뿐만 아니라 WiFi 도 당연히 가능하다. 이것으로 할 수 있는 것은 여러분의 상상으로 맡긴다. 언제나 휴대하고 가지고 다닐 수 있는 ' 작은 패킷 분석기'를 몸에 하나 지니고 다닌다 라고 생각하면 된다.

참고로 캡쳐된 패킷파일은 이전에 소개한 클라우드 기반 형태의 웹 패킷 분석기를 이용하면 그래픽 환경으로
조금은 더 낳은 분석 환경을 제공할지도 모른다.

앞으로 저와 함께 모바일 패킷 세계로 GoGo 해요~
단, 악의적인 사용은 안됩니다.

P.S Capture Size 가 제한되므로 -s 옵션을 통해 덤프할 패킷의 길이를 지정해주세요. -s 1514 와 같이.
  1. 나그네 2010/07/29 19:36 답글수정삭제

    휴대폰만 있으면 못하는게 없군요.
    패킷덤프도 쉽게하구.
    좋은정보 감사합니다

    • Rigel 2010/08/01 22:47 수정삭제

      이제는 스마트폰 하나만 있으면 안되는게 없을정도로 빠르게 변화하고 있네요. 과연 이것이 좋은 용도로 사용될 수 있을지, 아니면 의도하지 않게 다르게 이용될지는 앞으로 지켜보죠 ^^

  2. 2010/09/03 11:45 답글수정삭제

    비밀댓글 입니다

    • Rigel 2010/09/05 16:58 수정삭제

      네, 단말기에서 직접 실행한 것입니다. 링크걸린 tcpdump 를 복사해 넣으시고 실행하시면 됩니다. Permission dined 메시지도 나오지 않을 것입니다. su 로해서 루트권한을 얻으신 다음에 실행하셨나요? 일반 리눅스에서 사용하시는 것 같이 사용하실 수 있는 것이라 실행에 큰 문제는 없습니다.

  3. 굴희 2010/09/03 13:46 답글수정삭제

    ./tcpdummp: permission dined => 이 오류에 대해서 아시나요?^^
    루팅도 했고 파일 권한도 변경했는데용..

트랙백 주소 :: http://packetinside.com/164/trackback/
옵션
댓글 달기