와이어샤크(Wireshark) 사용법 #3 [필터링]

 

패킷 필터링 기능

Wireshark에서 제공하는 Display filter를 이용하여 캡처된 패킷을 목적에 따라 분류할 수 있습니다. 필터링 바는 Wireshark 상단 빨간색 박스로 표시된 영역에 위치합니다. 이번 글에서는 몇 가지 대표적인 필터링 명령어를 소개하도록 하겠습니다.

 

 

 

예시1:  프로토콜 별 분리

 

아래는 TCP, UDP 그리고 ARP 프로토콜을 선별해내는 예시에 해당합니다.

 

 

다른 예시:

  1. dns: DNS (Domain Name System), 도메인 이름을 조회하는 패킷
  2. dhcp: DHCP (Dynamic Host Configuration Protocol), 동적 IP 주소 할당 요청을 위해 발생하는 패킷
  3. icmp: ICMP (Internet Control Message Protocol), 송수신측의 전송 과정을 진단하는 패킷
  4. wlan: 무선랜

 

예시2:  필드 기반 필터링

 

필터링 명령어로 특정 프로토콜의 필드 종류를 입력하면 해당 필드를 포함하고 있는 패킷을 화면에 나타납니다. 예를 들어 HTTP 패킷 중에서 'host' 라는 필드를 가진 패킷을 조회하고자 한다면 다음과 같이 하시면 됩니다.

 

 

한 가지 알아두면 유익한 것은, Wireshark는 raw 패킷의 정보에서 더 나아가 독자적으로 각 네트워크 플로우의 상태를 진단하고 유용한 분석 내용을 제공한다는 점입니다. 필드 정보 탭에 간혹 보이는 "Expert Info"가 이에 해당합니다.

 

예를 들어 TCP 재전송과 같은 현상의 유무는 해당 패킷 하나만으로는 알 수 없고, 전체 TCP stream을 파헤쳐야만 확인할 수 있는데요. Wireshark는 친절하게도 TCP, TLS, HTTP 등의 상위 계층 프로토콜에 대해 여러 고급 정보들을 보여주고 있습니다.

 

 

 

다른 예시:

  1. eth.padding: 패킷 마지막 부분에 Zero-padding이 존재하는 Ethernet 패킷
  2. tcp.analysis.lost_segment: 이전 TCP 세그먼트가 수신부에 도착하지 않았음을 나타냅니다.
  3. tcp.options: TCP 헤더 이후에 옵션 필드가 있는 패킷을 추려냅니다.
  4. tls.handshake.extensions_server_name: SNI (Server Name Indication), TLS 통신에서 클라이언트가 어떤 호스트명에 접근하려는지 알리는 필드

 

필터링 연산자

 

비교 연산

 

필드값을 비교하여 조건에 일치하는 패킷을 조회할 수 있습니다. Display 필터에서 사용할 수 있는 비교 연산자는 다음과 같습니다.

같다 다르다 크다 크거나 같다 작다 작거나 같다
eq 또는 == ne 또는 != gt 또는 > ge 또는 >= lt 또는 < le 또는 <=

 

 

① IP 주소 (양방향) 

② Source IP 주소

③ Destination IP 주소

④ TCP port 번호 (note: TLS 프로토콜의 default port 번호는 443입니다.)

 

⑤ 1~100번째 패킷

 

⑥ TCP 바이트 영역

 

 

다른 예시:

  1. icmp.code eq 3: ICMP "Destination unreachable" 메시지
  2. frame.len gt 1500: 크기가 1500보다 큰 패킷
  3. frame.time_relative gt 0.5: 캡처가 시작한 시점으로부터 0.5초 이후에 수집된 패킷
  4. tcp.stream eq 2: 2번째 TCP stream에 속하는 패킷

 

논리 연산

 

비교 연산 외에도 논리 연산 역시 가능합니다.

논리곱 논리합 배타적 논리합 논리부정
and 또는 && or 또는 || xor 또는 ^^ not 또는 !

 

 

① TCP port 80번을 쓰지 않는 패킷 

 

② 길이가 60보다 크고 500보다 작은 패킷

 

 

기타 표현식

 

그 외, 알아두면 좋은 필터링 명령어들입니다.

 

① 필드값에서 특정 문자열 검색

 

② TCP SYN 패킷

③ HTTP GET 메시지

 

sample.pcap
2.43MB

반응형