자격증/CCNA

[TCP/IP] - 5. 와이어샤크 필터

arsenic-dev 2025. 7. 29. 23:34

1. 와이어샤크 필터 명령어

1) 필터 명령어

 

항목 필터 명령어
출발지 TCP 포트 tcp.srcport
목적지 TCP 포트 tcp.dstport
출발지 UDP 포트 udp.srcport
목적지 UDP 포트 udp.dstport
출발지 IP 주소 ip.src
목적지 IP 주소 ip.dst
출발지 MAC 주소 eth.src
목적지 MAC 주소 eth.dst
TCP Syn tcp.flags.syn
TCP Ack tcp.flags.ack (ack number는 tcp.ack)

 

Wireshark에서 각각의 헤더를 클릭하면 필터 명령어를 확인 가능하기 때문에, 따로 암기하진 않아도 된다.

 

2) 필터 관련 기호

연산자 내용
&& and
|| or
== eq
! not
() 여러 개의 필터를 묶는 경우
>= 크거나 같은 경우
<= 작거나 같은 경우
> 큰 경우
< 작은 경우

 

※ !ip: ipv4 빼고 보여달라는 의미이다.

 

3) 필터 예제 

http
http.host eq lm3.cafe.naver.com
http.request.method == GET //대소문자를 구분 하기에, get, Get 등은 잡히지 X
http.request.method matches "(?i)get" //matches "(?i)문자" -> 대소문자 구분 없이 검색 가능

▶ HTTP 관련 필터

 

※ HTTP는 TCP 세그먼트로 나뉘기 때문에 http 필터만으로는 모든 패킷이 안 잡힐 수 있고, tcp.port == 80으로 필터링해야 전체 HTTP 관련 트래픽을 볼 수 있다.

 

2. 와이어샤크 필터 예제

1) PC가 서버에 ARP 요청 및 응답 내용 필터

▶ 주어진 정보

 

arp.opcode == 1 && arp.src.proto_ipv4 == 192.168.1.254 && arp.src.hw_mac == 70:85:C2:0A:E8:F6 && arp.dst.proto_ipv4 == 192.168.1.201 //요청 (target mac 정의할 필요 X)
arp.opcode == 2 && arp.src.proto_ipv4 == 192.168.1.201 && arp.dst.proto_ipv4 == 192.168.1.254 && arp.dst.hw_mac == 70:85:C2:0A:E8:F6 //응답

 

opcode 값이 1이면 요청, 2면 응답이다.

 

이때, arp 요청의 target mac address는 존재하지 않기에 필터하지 않아도 된다.

굳이 한다면, arp.dst.hw_mac == 00:00:00:00:00:00 이다. (아직 모른다는 의미)

 

 
 

ff:ff:ff:ff:ff:ff vs 00:00:00:00:00:00

 

1. ff:ff:ff:ff:ff:ff

이더넷 프레임의 목적지 MAC 주소로, 패킷이 네트워크 전체로 브로드캐스트된다.

ex) eth.dst eq ff:ff:ff:ff:ff:ff

 

2. 00:00:00:00:00:00

ARP 패킷 내부의 Target MAC 주소로, 아직 모르는 MAC 주소를 나타낸다.

ex) arp.dst.hw_mac == 00:00:00:00:00:00

 

즉, 두 개는 서로 다른 헤더에 존재하는, 서로 다른 목적의 MAC 주소이다.

 

※ ctrl + h: ctrl + f로 검색하는 것과 비슷한 기능으로, 문자 바꾸기 가능

 

2) TCP 3-Way 핸드 쉐이킹 내용 필터

tcp.flags.syn == 1 //tcp.flags == 0x02
tcp.flags.syn == 1 and tcp.flags.ack == 1 //tcp.flags == 0x12
tcp.flags.ack == 1 //tcp.flags == 0x10

 

※ tcp.flags.syn == 1는 syn를 제외한 5개 control flags에 대해선 값을 설정한 것이 아니지만, tcp.flags == 0x02는 control flags 6개에 대해 전부 값을 설정하는 것이기에 더 정확하게 flags 값을 지정할 수 있다. (tcp.flags == 2, 10진수도 사용 가능)

 

3) ICMP Echo-Request, ICMP Echo-Reply 내용 필터

icmp.type == 8 //request
icmp.type == 0 //reply

 

※ icmp.type == 3 (Destination Unreachable) 에 대해선 icmp.code로 목적지에 도달 못하는 원인 별로 구분한다.

 

4) PC에서 서버로 'www.naver.com'에 대한 DNS Query 및 Response 내용 필터

dns.qry.name == www.naver.com //query
dns.resp.name == www.naver.com //response