소개
이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 네트워크 패킷 캡처를 분석하는 방법을 배우게 됩니다. 샘플 PCAP 파일을 사용하여 캡처 파일을 읽기 위한 -r, 상세 출력을 위한 -V, 패킷 수 제한을 위한 -c와 같은 필수 명령어를 실습합니다.
실습을 통해 패킷 헤더를 검사하고, IP 주소 및 프로토콜을 포함한 주요 네트워크 세부 정보를 식별하며, 다양한 출력 형식을 해석합니다. 이 랩은 효과적인 네트워크 트래픽 분석을 위한 tshark 의 핵심 기능에 대한 실질적인 경험을 제공합니다.
-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의 기본 출력은 통신에 대한 중요한 정보를 각각 알려주는 열로 네트워크 트래픽을 표시합니다.
- 패킷 번호: 캡처에서 각 패킷의 순차적 식별자
- 타임스탬프 (Timestamp): 첫 번째 패킷을 기준으로 패킷이 캡처된 시간
- Source 주소: 패킷의 출발지 (IP 주소)
- Destination 주소: 패킷의 목적지 (IP 주소)
- 프로토콜 (Protocol): 사용 중인 네트워크 프로토콜 (TCP, UDP 등)
- 길이 (Length): 패킷의 크기 (바이트)
- 정보 (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 플래그를 사용하여 출력 볼륨을 제어하는 연습을 했습니다. 이러한 기술은 저장된 캡처 파일을 사용하여 효율적인 네트워크 트래픽 분석 및 프로토콜 조사를 위한 견고한 기반을 제공합니다.


