2010년 1월 19일 화요일

pcap-util 을 이용한 또 다른 패킷 분할 방법

패킷파일이 큰 경우 Editcap 과 tcpslice 를 이용하여 패킷을 분할하는 방법에 대해서 알아보았는데, 추가로 다른 유용한 툴 한가지를 더 소개하고자 한다. 펄(Perl)로 만들어진 것으로, 사용법도 간단하고 오히려 쉽게 사용할 수 있는 부분이 있는거 같아 유용할 것이다.

파일은 다음의 경로에서 받을 수 있다.


일단, pcap-util 을 실행해 보면 옵션은 크게 split, time, filter 로 나뉘어져 있다.

tmp# ./pcap-util

This utility will take a pcap file from a packet capture program like tcpdump
and split it into smaller parts to aid analysis. There are three options.

 1. You can split the file into several smaller ones of x bytes in length
 2. You can extract packets that fall within a specified time period
 3. You can extract packets that match a libpcap filter string.

Split into smaller files
------------------------
./pcap-util split <infile> <outfile prefix> <size in MB>

Extract packets from time period
--------------------------------
./pcap-util time <infile> <outfile> <Start time> <End time>

Extract packets using libpcap filter language
---------------------------------------------
./pcap-util filter <infile> <outfile> "libpcap filter string"

** Time format should be YYYY-MM-DD:hh:mm:ss **

자, 그럼 일단면 옵션은 크게 split, time, filter 로 나뉘어져 있다. split 는 말 그대로 파일을 분할 하는 것인데 MB 단위로 분할하게 된다. 아래 예 같이 1을 넣게 되면 1 메가 단위로 output.pcap 으로 생성하는 것이다.
/tmp# ./pcap-util split rigel.pcap output.pcap 1
Writing file output.pcap.0.tcpdump
Writing file output.pcap.1.tcpdump
Writing file output.pcap.2.tcpdump
Writing file output.pcap.3.tcpdump
Writing file output.pcap.4.tcpdump
Writing file output.pcap.5.tcpdump
Writing file output.pcap.6.tcpdump
Writing file output.pcap.7.tcpdump
Writing file output.pcap.8.tcpdump

====> Done <====
/tmp# ls -l
total 93368

-rw-r--r-- 1 root    root     1023460 2010-01-19 08:54 output.pcap.0.tcpdump
-rw-r--r-- 1 root    root     1023472 2010-01-19 08:54 output.pcap.1.tcpdump
-rw-r--r-- 1 root    root     1023490 2010-01-19 08:54 output.pcap.2.tcpdump
-rw-r--r-- 1 root    root     1023466 2010-01-19 08:54 output.pcap.3.tcpdump
-rw-r--r-- 1 root    root     1023498 2010-01-19 08:54 output.pcap.4.tcpdump
-rw-r--r-- 1 root    root     1023676 2010-01-19 08:54 output.pcap.5.tcpdump
-rw-r--r-- 1 root    root     1023570 2010-01-19 08:54 output.pcap.6.tcpdump
-rw-r--r-- 1 root    root     1023559 2010-01-19 08:54 output.pcap.7.tcpdump
-rw-r--r-- 1 root    root       83061 2010-01-19 08:54 output.pcap.8.tcpdump
-rwxr-xr-x 1 root    root        8736 2009-08-30 18:16 pcap-util
-rw-r--r-- 1 root    root     8271060 2010-01-18 09:25 rigel.pcap
타임은 "YYYY-MM-DD:hh:mm:ss" 와 같은 포맷으로 시간을 지정하여 사용하면 된다. filter 는 걸러진 파일에 대해서만 추출하여 저장한다. 아래 예제는 cl.exe.pcap 에서 TCP 이며 목적지 포트가 80 번 인것을 대상으로 output.pcap 에 저장하고 있다.
/tmp# ./pcap-util filter cl.exe.pcap output.pcap "tcp and dst port 80"
Writing packets matching "tcp and dst port 80" to output.pcap

====> Done <====
/tmp# ls -l
total 88948
-rw-r--r-- 1 root    root     2334504 2010-01-19 09:01 cl.exe.pcap
-rw-r--r-- 1 root    root     1442126 2010-01-19 09:02 output.pcap

cl.exe.pcap 이 2.3 메가 정도 였는데, 80 번포트로 걸러낸 것은 1.4 메가 정도 나온다. 이 외에 유용한 것이 있으면 알려주세요.

댓글 없음:

댓글 쓰기