괜찮은_프리웨어2023. 9. 12. 16:30

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/633717 (2019.12.19)

tshark에서 패킷 관련 정보를 출력할 때 보고 싶은 특정 정보만 표시하도록 할 수 있다. 예를 들어 my_data.pcap 파일에서 다른 정보는 다 필요 없고 패킷 출현시간, 송신자 IP주소, 수신자 IP주소, 이렇게 세가지 항목만 출력하고 싶을 수 있다. 이런 경우 "-T fields" 옵션을 사용하고 -e 옵션으로 항목을 지정한다. 예시를 보면 금방 감이 잡힐 것이다.

# my_data.pcap 파일에서 출현시간, 송신자 IP주소, 수신자 IP주소만 출력
tshark -r my_data.pcap -T fields -e frame.time -e ip.src -e ip.dst

위의 예시를 보면, -r 옵션으로 my_data.pcap 파일을 읽으라고 지정해 주고 -T fields 옵션과 -e 옵션을 이용해서 frame.time, ip.src, ip.dst 이렇게 세가지 항목(field)을 출력하였다. 각 항목은 탭(tab)으로 구분되어 출력된다.

tshark에서 지정할 수 있는 패킷 관련 정보 항목은 엄청나게 많은데, 어떤 항목이 어떤 명칭을 지니고 있는지 어떻게 알 것인가? 우선 해당 pcap 파일을 GUI 기반의 와이어샤크(wireshark)로 연 후에 내가 관심이 있는 항목이 있는 패킷을 보자.  패킷 상세 정보에서 관심 있는 항목을 클릭하면 화면 맨 아래에 해당 항목의 명칭이 표시된다.

 


리눅스 명령어와 조합하면 필요한 정보를 쉽게 얻을 수 있는 경우가 많다. 몇가지 예시를 보자.

# my_data.pcap 파일에서 http 패킷중에 송신자 IP주소가 192.168.0.24인 패킷이 몇개인지 확인
tshark -r my_data.pcap -Y http -T fields -e ip.src | grep "192\.168\.0\.24" | wc -l

# my_data.pcap 파일의 http GET 패킷중에 호스트명에 egloos.com을 포함한 패킷을 골라내고 정렬하여 각 호스트별 개수 확인
tshark -r my_data.pcap -Y "http.request.method==GET" -T fields -e http.host | grep "\.egloos\.com" | sort | uniq -c

위의 예시에서 sort | uniq -c 관련 내용은 이전 게시물을 참고하자. 여기로

728x90
Posted by 반달가면