요약.
1. 패킷 잡을때
/data/local/tcpdump -X -n -s 0 -w /sdcard/capture.pcap (저장될 위치)
adb pull /sdcard/capture.pcap
2. Wireshark 실행
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모드로 확인
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5