본문 바로가기

IT-도서 정리/와이어샤크 개론

필터 문법 사용

ARP
 - 프로토콜
 - 불필요한 ARP, ARP요청, ARP응답을 포함한 모든 ARP트래픽을 디스플레이

IP
 - 프로토콜
 - IPv4 헤더가 내장된 패킷을 포함하는 모든 IPv4 트래픽(ICMP 헤더 다음에 들어오는 IPv4 헤더를 리턴하는 ICMP 목적지 도달 불가 패킷 같은)을 디스플레이함

IPv6
 - 프로토콜 
 - 6to4, Teredo, ISATAP 트래픽 같이 내장된 IPv6 헤더를 갖는 IPv4 패킷을 포함하는 모든 IPv6 트래픽을 디스플레이

TCP
 - 프로토콜
 - TCP 기반의 모든 통신을 디스플레이

BOOTP
 - 어플리케이션  
 - 모든 DHCP트래픽(Bootp 기반의)을 디스플레이

DNS
 - 어플리케이션
 - TCP기반의 영역(Zone) 전달과 표준 UDP 기반의 DNS요청과 응답을 포함하는 모든 DNS트래픽을 디스플레이

TFTP
 - 어플리케이션
 - 모든 TFTP(Trivial File Transfer Protocol) 트래픽을 디스플레이

HTTP
 - 어플리케이션
 - 모든 HTTP 명령어, 응답과 데이터 전달 패킷을 디스플레이하지만, TCP Handshake Packet, TCP ACK Packet, TCP 연결 해제 패킷은 디스플레이 하지 않음

ICMP
 - 어플리케이션
 - 모든 ICMP트래픽을 디스플레이

Field Existence
 - bootp.option.hostname
 - 호스트 이름(DHCP는 Bootp를 기반으로 한다)을 포함하는 모든 DHCP 트래픽을 디스플레이

Field Existence
 - http.host
 - HTTP 호스트 이름 필드를 가진 모든 HTTP 패킷을 디스플레이.
 - 이 패킷은 클라이언트가 웹서버에게 요청을 할 때 보냄.

Field Existence
 - ftp.request.command
 - USER, PASS, RETR 명령어 같은 명령어를 포함하는 모든 FTP 트래픽을 디스플레이

Characteristic
 - tcp.analysis.flags
 - TCP 분석 플래그와 관련이 있는 모든 패킷을 디스플레이
 - 이것은 패킷 손실 표시, 재전송, Zero 윈도우 조건을 포함

Characteristic
 - tcp.analysis_zero_window
 - 송신자가 수신 버퍼 공간이 소진됐다고 플래그된 패킷을 다시 디스플레이

디스플레이 필터와 연산자 비교

 1) ip.src == 10.2.2.2 
  - 10.2.2.2에서의 모든 IPv4 트래픽
 2) tcp.srcport != 80
  - Port 80이 아닌 다른 포트의 모든 TCP트래픽
 3) frame.time_relative > 1
  - 추적 파일에서 이전 패킷 이후에 1초 이상 지나서 도착한 패킷
 4) tcp.window_size < 1460
  - TCP 수신 윈도우 크기가 1460Byte보다 적을 때
 5) dns.count.answers >= 10 
  - 최소한 10개의 응답을 포함하는 DNS 응답패킷 
 6) ip.ttl < 10
  - ip time to live 필드가 10보다 적은 패킷
 7) http contains "GET"
  - HTTP서버에게 보낸 HTTP 클라이언트 GET요청을 모두 디스플레이

주소 범위 트래픽 필터링
 1) ip.addr > 10.3.0.1 && ip.addr < 10.3.0.5 
  - 10.30.0.2~4 의 트래픽 확인
 2) (ip.addr >= 10.3.0.1 && ip.addr <= 10.3.0.6) && !ip.addr == 10.3.0.3
  - 10.3.0.1~5 나 10.3.0.6으로부터 트래픽 학인 10.3.0.3은 배제

서브넷 트래픽 필터링
 1) ip.addr == 10.3.0.0/16
  - 10.3.0.0/16대역 트래픽 확인
 2) ip.addr == 10.3.0.0/16 && !ip.addr == 10.3.1.1
  - 발신지 IP주소 필드나 목적지 IP주소 필드가 10.3.x.x로 시작하지만 10.3.1.1을 제외한 주소에 대해 트래픽 확인
 3) !ip.addr == 10.3.0.0/16 && !ip.addr == 10.2.0.0/16
  - 발신지 IP주소 필드나 목적지 IP주소 필드가 10.3.x.x 와 10.2.x 대역 제외한 모든 트래픽 확인

패킷 안 필드를 이용한 필터링
 1) tcp.request.uri == "/"
 2) (not http.request.uri == "/") && (http.request.method == "GET")
 3) http.request.uri == "/prod/scripts/mbox.js"
 4) http.request.uri contains "jpg"


<Request Method : GET>


Request Method : GET | Select
 - http.request.method == "GET"
 - 현재 필터를 대체하고 GET요청을 포함한 HTTP Packet 모두 출력

Request Method : GET | Not Select
 - !(http.request.method == "GET")
 - 현재 필터를 대체하고 GET 요청을 포함하는 HTTP 패킷을 제외한 패킷을 모두 출력

Request Method : GET | and Selected
 - (tcp.port == 80) && (http.request.method == "GET")
 - HTTP GET request method를 포함하는 포트 80으로부터 모든 패킷을 출력

Request Method : GET | or Select
 - (tcp.port == 80 || (http.request.method == "GET")
 - GET Request Method를 포함하는 HTTP 패킷과 포트 80으로부터 모든 패킷을 출력
 
Request Method : GET | and Not Selected
 - (tcp.port == 80) && !(http.request.method == "GET")
 - Port 80으로부터 모든 트래픽은 볼 수 있지만 GET Request Method를 포함하는 HTTP 트래픽은 출력 제외

IP Source Address 10.2.2.2 | ore Not Selected
 - (tcp.port == 80) || !(ip.src == 10.2.2.2)
 - 포트 80dmfhqnxj ahems xmfovlrrhk 10.2.2.2에서가 아닌 트래픽을 확인

※ ARP트래픽이나 DNS트래픽을 보지 않으려면 or Not Selected 옵션을 사용 => !arp || !dns
  이 필터는 아무것도 하지 않음.

(dns.flags.rcode == 3) || (http.response.cod ==404)


다중 포함/배제 조건으로 디스플레이 확장
1) && --> and
 - ip.src == 10.2.2.2 && tcp.port ==80
 - 10.2.2.2와 Port 80에서 양방향 트래픽 출력

2) || --> or
 - tcp.port ==80 || tcp.port == 443
 - 80과 443에 대한 양방향 tcp 트래픽 확인

3) ! --> not
 - !arp 
 - ARP 를 제외한 모든 값 출력

4) !== --> ne
 - tcp.flags.syn !=1
 - tcp syn 플래그 순서 번호를 일치 시키고 1로 설정된  플래그가 아닌 tcp 프레임 출력