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 와 같이.
tcpdump


