Android byDreamy postedMay 06, 2015

Android Packet Dump (tcpdump로 실시간 packet 잡기)

?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

+ - Up Down Comment Print

요약.


1. 패킷 잡을때

/data/local/tcpdump -X -n -s 0 -w /sdcard/capture.pcap (저장될 위치)

adb pull /sdcard/capture.pcap


2. Wireshark 실행

  • 목적지 IP 필터링 : ip.dst==목적지 IP주소
  • 발신지 IP 필터링 : ip.src==발신지 IP주소
  • 발신지, 목적지 모두 필터링 : ip.addr==IP주소
  • HTTP만 볼때 : Filter 창에 http 라고 입력





Android에서 packet을 캡쳐하려면 단말에 root 권한이 있어야 합니다.

root 권한을 확인하시려면 windows command에서 adb shell을 입력해 봅니다.

Pound(#)기호가 있다면 root권한이 있다는 의미입니다. 반면 Dollar($)기호가 있다면 root권한이 없다는 의미입니다.

root 권한이 있다면 안드로이드용 tcpdump 프로그램을 아래 경로에서 받습니다.

http://www.mediafire.com/file/njyqyxu3nxm/tcpdump.zip

 

다운로드한  tcpdump를 /data/local 위치로 복사합니다.

(Windows command에서 입력)

 

adb push tcpdump /data/local

 

 

모드를 변경합니다.

adb shell

chmod 777 /data/local/tcpdump

 

 

 

명령어를 입력합니다.

 /data/local/tcpdump -X -n -s 0 -w /sdcard/capture.pcap (저장될 위치)

 

 

패킷 캡쳐를 완료하고자 할때는 ctrl+x 를 눌러 중지합니다.

 

pcap 파일을 pc로 가져옵니다.

 adb pull /sdcard/capture.pcap c:\

 

 

pc에서 WireShark와 같은 프로그램으로 패킷을 분석합니다. 

 

아래는 WireShark에서 IP 주소를 기준으로 필터링 하는 예입니다.


목적지 IP조회 시

ip.dst==목적지 IP주소

 

발신지 IP조회 시

ip.src==발신지 IP주소

 

발신지, 목적지 모두 조회 시

ip.addr==IP주소

 

tcpdump 기본 사용법  

# tcpdump -i eth0                             => 특정 ethernt(eth0) 으로 송수신 되는 데이터 패킷 덤프하여 확인
# tcpdump -i eth0 -w TCPDUMP  => 특정 ethernet으로 송수신 되는 패킷들 파일에 저장 및 확인
# tcpdump -r TCPDUMP                => TCPDUMP에 저장된 패킷헤드들을 확인
# tcpdump -i eth0 -c 10                    => 특정 ethernet에서 지정한 개수만큼의 네트워크 패킷 덤프하여 확인
# tcpdump -w tcpdump.log -s 1500 tcp port 22 and host 192.168.0.1
                  => 서버의 특정포트로 송수신되는 모든 데이터패킷 전체를 확인
                       이 명령의 의미는 현재 로컬서버와  192.168.0.00서버사이의 통신데이터패킷 중 tcp 22번포트의 
                       모든 패킷을 1500길이로 캡쳐하여 tcpdump.log파일에 저장

# tcpdum -Xqnr tcpdump.log      => 캡쳐한 tcpdump.log파일의 내용을 ASCII모드로 확인

# tcpdump -q \( dst net 1.2.3.0/24 or 1.2.4.0/25 \) and dst port 80

; 목적지 주소가 1.2.3.x/24 와 1.2.4.x/25 이고 80번포트인 패킷 캡쳐



- # tcpdump host A

   ; A 호스트로/부터의 모든 도착/출발 패킷 출력
- # tcpdump host A and \( B or C \)

   ; A 호스트와 B 또는 C 사이의 모든 트래픽 출력
- # tcpdump ip host A and not B

   ; A호스트와 B를 제외한 호스트 간의 모든 IP 패킷 출력
- # tcpdump net ucb-ether

   ; 로컬호스트와 Berkeley의 호스트들 간의 모든 트래픽 출력
- # tcpdump 'gateway A and (port ftp or ftp-data)'

   ; 게이트웨이 A를 통한 모든 ftp 트래픽 출력
- # tcpdump ip and not net 

   ; 로컬네트워크로/부터가 아닌 모든 트래픽 출력
- # tcpdump 'tcp[13] & 3 != 0 and not src and dst net '

   ; 로컬네트워크가 아닌 TCP 시작과 마지막 패킷 출력
- # tcpdump 'gateway A and ip[2:2] > 576'

   ; 게이트웨이 A를 통해 보내지는 576 Bytes보다 긴 IP 패킷 출력
- # tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

   ; 이더넷이 아닌 IP 브로드 또는 멀티 캐스트 패킷 출력
- # tcpdump 'icmp[0] != 8 and icmp[0] != 0'

   ; echo 요청/응답이 아닌 모든 ICMP 패킷 출력 (ping 아닌 패킷)
- # tcpdump src net 1.2.3 or 1.2.4 and not dst net 1.2.3 or 1.2.4

   ; 1.2.3 과 1.2.4 IP주소 (내부) 패킷을 제외한 모든 패킷 출력
- # tcpdump -i br1

   ; br1 인터페이스의 모든 패킷 출력

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5