Tshark 에서 패킷 데이터 읽기

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 네트워크 패킷 캡처를 분석하는 방법을 배우게 됩니다. 샘플 PCAP 파일을 사용하여 캡처 파일을 읽기 위한 -r, 상세 출력을 위한 -V, 패킷 수 제한을 위한 -c와 같은 필수 명령어를 실습합니다.

실습을 통해 패킷 헤더를 검사하고, IP 주소 및 프로토콜을 포함한 주요 네트워크 세부 정보를 식별하며, 다양한 출력 형식을 해석합니다. 이 랩은 효과적인 네트워크 트래픽 분석을 위한 tshark 의 핵심 기능에 대한 실질적인 경험을 제공합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 83%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

-r capture.pcap 으로 파일 열기

이 단계에서는 Wireshark 의 강력한 명령줄 도구인 tshark를 사용하여 미리 기록된 네트워크 트래픽을 분석하는 방법을 살펴보겠습니다. 네트워크 분석 작업을 할 때, 실시간 트래픽을 캡처하는 대신 이전에 캡처한 데이터를 검사해야 하는 경우가 많습니다. -r 플래그 ( "read"를 의미) 를 사용하면 분석할 패킷 캡처 파일을 지정하여 정확히 그렇게 할 수 있습니다.

시작하기 전에, 올바른 위치에서 작업하고 있는지 확인해 보겠습니다. 터미널 기반 작업에서는 파일이 저장된 올바른 디렉토리에 있는 것이 중요합니다.

cd ~/project

LabEx 환경에는 Wireshark 의 명령줄 버전인 tshark가 사전 설치되어 있습니다. 사용 가능한지 확인하고 어떤 버전을 사용하고 있는지 확인하려면 (어떤 도구로 작업할 때든 좋은 습관입니다) 다음을 실행합니다.

tshark --version

tshark가 제대로 설치되어 사용할 준비가 되었음을 확인하는 자세한 버전 정보가 표시됩니다.

이 데모에서는 샘플 네트워크 캡처 파일을 사용합니다. 이미 /home/labex/project/capture.pcap에 다운로드되어 있습니다.

이제 캡처된 네트워크 트래픽을 검사할 준비가 되었습니다. 캡처 파일의 내용을 읽고 표시하는 기본 명령은 다음과 같습니다.

tshark -r capture.pcap

이 명령은 파일을 처리하고 캡처된 모든 패킷의 요약 보기를 표시합니다. 출력의 각 줄은 하나의 네트워크 패킷을 나타내며 네트워크 활동을 이해하는 데 도움이 되는 몇 가지 중요한 정보가 포함되어 있습니다.

  • 패킷 번호: 각 패킷의 순차적 식별자
  • 타임스탬프 (Timestamp): 패킷이 캡처된 시간 (캡처 시작 시간 기준)
  • Source IP: 패킷의 출발지
  • Destination IP: 패킷의 목적지
  • 프로토콜 (Protocol): 사용 중인 네트워크 프로토콜 (TCP, UDP 등)
  • 길이 (Length): 바이트 단위의 패킷 크기
  • 정보 (Info): 패킷의 목적 또는 내용에 대한 간략한 설명

다음은 TCP 연결이 설정되는 전형적인 출력의 예입니다.

1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 66 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0

이 초기 보기는 캡처 파일에 포함된 네트워크 통신에 대한 개략적인 개요를 제공하며, 이후 단계에서 이를 기반으로 구축할 것입니다.

기본 출력으로 패킷 요약 표시

이 단계에서는 tshark가 기본적으로 표시하는 기본 패킷 요약을 읽고 이해하는 방법을 살펴보겠습니다. 이는 네트워크 트래픽 분석의 시작점으로, 각 패킷에 대한 필수 정보를 구조화된 형식으로 보여줍니다.

시작하기 전에, 캡처 파일이 저장된 올바른 작업 디렉토리에 있는지 확인해 보겠습니다.

cd ~/project

tshark의 기본 출력은 통신에 대한 중요한 정보를 각각 알려주는 열로 네트워크 트래픽을 표시합니다.

  1. 패킷 번호: 캡처에서 각 패킷의 순차적 식별자
  2. 타임스탬프 (Timestamp): 첫 번째 패킷을 기준으로 패킷이 캡처된 시간
  3. Source 주소: 패킷의 출발지 (IP 주소)
  4. Destination 주소: 패킷의 목적지 (IP 주소)
  5. 프로토콜 (Protocol): 사용 중인 네트워크 프로토콜 (TCP, UDP 등)
  6. 길이 (Length): 패킷의 크기 (바이트)
  7. 정보 (Info): 프로토콜별 추가 세부 정보

이것을 실제로 확인하기 위해 처음 5 개의 패킷을 살펴보겠습니다.

tshark -r capture.pcap -c 5

예시 출력:

    1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
    2 0.000123 192.168.1.2 → 192.168.1.1 TCP 66 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
    3 0.000145 192.168.1.1 → 192.168.1.2 TCP 54 443 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
    4 0.000567 192.168.1.1 → 192.168.1.2 TLSv1 583 Client Hello
    5 0.000789 192.168.1.2 → 192.168.1.1 TCP 54 49234 → 443 [ACK] Seq=1 Ack=530 Win=65535 Len=0

네트워크 캡처에서 무슨 일이 일어나고 있는지 더 광범위하게 이해하기 위해, 각 프로토콜 유형에 속하는 패킷 수를 계산할 수 있습니다. 이는 네트워크 트래픽에서 어떤 프로토콜이 가장 활발한지 식별하는 데 도움이 됩니다.

tshark -r capture.pcap -qz io,phs

이 명령은 프로토콜 계층 구조 테이블을 생성하여 캡처 파일에서 서로 다른 프로토콜의 분포를 보여줍니다. 이는 복잡한 네트워크 트래픽 패턴을 분석할 때 특히 유용합니다.

-V 옵션으로 상세 필드 표시

이 단계에서는 Wireshark 의 -V (verbose) 플래그를 사용하여 포괄적인 패킷 세부 정보를 보는 방법을 살펴보겠습니다. 이는 네트워크 패킷 내의 모든 프로토콜 계층과 해당 필드를 검사해야 할 때 특히 유용합니다.

시작하기 전에, 패킷 캡처 파일이 저장된 올바른 작업 디렉토리에 있는지 확인해 보겠습니다.

cd ~/project

-V 플래그는 각 패킷의 완전한 구조를 보여주며, 물리적 프레임에서 애플리케이션 데이터까지 모든 프로토콜 계층을 표시합니다. 이 계층적 보기는 서로 다른 프로토콜이 네트워크 통신에서 어떻게 함께 작동하는지 이해하는 데 도움이 됩니다. 캡처 파일의 첫 번째 패킷을 살펴보겠습니다.

tshark -r capture.pcap -V -c 1

출력은 각 프로토콜 계층에 대한 자세한 정보를 표시합니다. 다음은 표시될 수 있는 내용의 예입니다 (명확성을 위해 축약됨).

Frame 1: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)
    Encapsulation type: Ethernet (1)
    Arrival Time: Jun  8, 2023 10:15:32.000000000 UTC
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1686219332.000000000 seconds
    [Time delta from previous captured frame: 0.000000000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 0.000000000 seconds]
    Frame Number: 1
    Frame Length: 66 bytes (528 bits)
    Capture Length: 66 bytes (528 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:tcp]
Ethernet II, Src: 00:11:22:33:44:55, Dst: aa:bb:cc:dd:ee:ff
    Destination: aa:bb:cc:dd:ee:ff
    Source: 00:11:22:33:44:55
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2
    Version: 4
    Header length: 20 bytes
    ...

특정 프로토콜 (예: TCP) 을 포함하는 패킷에 대한 세부 정보만 보려면 -V-Y 표시 필터와 결합할 수 있습니다. 이는 특정 네트워크 트래픽에 대한 분석에 집중하는 데 도움이 됩니다.

tshark -r capture.pcap -V -Y "tcp" -c 1

-c 100 으로 패킷 수 세기

이 단계에서는 -c 플래그를 사용하여 Tshark 에서 패킷 표시를 제어하는 방법을 살펴보겠습니다. 이는 패킷 샘플만 분석해야 하는 대용량 캡처 파일로 작업할 때 특히 유용합니다.

먼저, 패킷 캡처 파일이 저장된 작업 디렉토리로 이동해 보겠습니다. 이렇게 하면 모든 명령이 올바른 파일로 작동합니다.

cd ~/project

-c 플래그 ( "count"의 약자) 는 Tshark 가 처리하고 표시할 패킷 수를 제한합니다. 예를 들어, 캡처 파일에서 처음 100 개의 패킷만 검사하려면 다음과 같이 합니다.

tshark -r capture.pcap -c 100

특정 유형의 트래픽을 분석할 때, -c 플래그를 -Y를 사용하여 표시 필터와 결합할 수 있습니다. 이 명령은 처음 100 개의 HTTP 패킷을 표시합니다.

tshark -r capture.pcap -Y "http" -c 100

파일의 총 패킷 수를 알아야 하는 경우 (처음 100 개뿐만 아니라), 이 파이프라인은 출력의 모든 줄을 계산합니다.

tshark -r capture.pcap | wc -l

캡처에서 프로토콜에 대한 보다 자세한 분석을 위해, 이 명령은 각 프로토콜 유형에 대한 카운트를 보여주는 프로토콜 계층 구조 요약을 제공합니다.

tshark -r capture.pcap -qz io,phs

요약

이 랩에서는 네트워크 패킷 캡처를 분석하기 위해 Wireshark 의 명령줄 도구인 tshark를 사용하는 방법을 배웠습니다. 연습에서는 -r 플래그를 사용하여 PCAP 파일을 열고, --version을 통해 설치를 확인하고, 패킷 메타데이터 및 프로토콜 정보를 포함한 기본 출력 필드를 검사했습니다.

또한 구조화된 패킷 요약 형식을 해석하고 -c 플래그를 사용하여 출력 볼륨을 제어하는 연습을 했습니다. 이러한 기술은 저장된 캡처 파일을 사용하여 효율적인 네트워크 트래픽 분석 및 프로토콜 조사를 위한 견고한 기반을 제공합니다.