Tshark 포스팅에 이어, 이제 나머지 몇몇 Wireshark 유틸을 소개하고 Wireshark 가이드를 마치려고 합니다. 패킷 수집과 별개로, pcap 파일을 다룰 때 미리 알아두면 쓸데없이 고생하지 않게 도와주는 유용한 부가 기능들을 알려드리겠습니다.
Wireshark를 설치하면 같이 따라오는 요녀석들인데요. 각각의 기능을 살펴보면,
- capinfos: 덤프 파일의 각종 통계(ex., 패킷 수, 전체 데이터 크기, duration, bytes/sec 등)를 산출
- mergecap: 여러 개의
pcap/pcapng
파일을 하나의 덤프 파일로 통합해주는 도구 - dumpcap: 명령 인터페이스 기반 패킷 수집기
- editcap: 패킷 덤프 파일의 일부 영역을 추출하는 도구
- reordercap:
pcap/pcapng
파일에 기록된 패킷을 시간(timestamp)순으로 재정렬하는 도구
제가 실무 과정에서 정말 유용하게 사용했던 3가지, capinfos, mergecap, editcap의 사용법을 간단히 정리해보았습니다.
Capinfos
덤프 파일의 각종 통계(ex., 패킷 수, 전체 데이터 크기, duration, bytes/sec 등)를 산출
사용법은 간단합니다. 기본 옵션 없이 capinfos
를 수행할 경우 pcap 파일에 대한 갖가지 정보를 나열합니다.
$ capinfos sample.pcap
-M
옵션을 사용하면 수치를 표현할 때 k
, kB
, kbps
등과 같은 단위를 안 쓰고 원래 값을 그대로 표시해줍니다.
$ capinfos -M sample.pcap
단지 패킷 총 개수라던지, 데이터 전송 속도, 평균 패킷 크기 정도의 정보만을 알고 싶다면 아래와 같은 옵션 플래그를 사용하세요.
# 총 패킷 개수
$ capinfos -c sample.pcap
# 패킷 유동량 (bps)
$ capinfos -y sample.pcap
# 패킷 평균 크기
$ capinfos -z sample.pcap
Mergecap
여러 개의 `pcap/pcapng` 파일을 하나의 덤프 파일로 통합해주는 도구
과도한 트래픽 수집량에 의한 시스템 과부하를 막기 위해 pcap 파일을 일정 시간 단위로 분할하여 저장할 때도 있는데요. 나중에 이들을 하나의 trace로 합쳐줘야한다거나 할때 mergecap이 매우 유용합니다.
# mergecap -w [병합된 pcap 파일명] [합칠 pcap 파일1] [합필 pcap 파일2] ...
$ mergecap -w out.pcap part1.pcap part2.pcap part3.pcap
mergecap은 pcap 파일을 병합하는 와중에 패킷들을 발생 시간 순으로 재정렬합니다. 만일 이러한 방식이 마음에 안 들고, 입력한 파일 순서대로 패킷이 나열되기를 바란다면 -a
옵션을 사용하세요.
Editcap
패킷 덤프 파일의 일부 영역을 추출하는 도구
pcap 파일을 다채롭게 변환할수 있는 도구지만, 사실 대부분의 상황에서 덤프 파일의 일부를 도려내는 정도로만 사용했던 기억이 납니다.
# 일정 패킷 개수마다 분할
# editcap -c [파일 당 패킷 수] [원본 pcap 파일] [분할된 파일명]
$ editcap -c 2000 sample.pcap split.pcap
# 일정 시간(초 단위)마다 분할
# editcap -i [파일 당 패킷 수] [원본 pcap 파일] [분할된 파일명]
$ editcap -i 60 sample.pcap split.pcap
# n번째 패킷 제거
# editcap [원본 pcap 파일] [최종 pcap 파일] [제거할 패킷 번호]
$ editcap sample.pcap out.pcap 500
# 또는 특정 범위를 통으로 지울 수 있습니다.
$ editcap sample.pcap out.pcap 1-500 # 1~500번째 패킷 제거
반대로 특정 영역의 패킷만을 추출하려면,
# editcap [원본 pcap 파일] [최종 pcap 파일] -r [추출할 패킷 범위]
$ editcap sample.pcap out.pcap -r 501-1000