네트워크/CISOCO

와이어샤크(Wireshark) 활용

Dr.Ratel 2020. 6. 25. 23:45
반응형

와이어샤크(Wireshark)

-자유 및 오픈 소스 패킷 분석 프로그램이다. 네트워크의 문제, 분석, 소프트웨어 및 통신 프로토콜 개발, 교육에 쓰임

 

[참고] 와이어샤크 필터  

  

- &&  :  AND 

- ||  :  OR 

- !  :  NOT 

- ==  :   eq 

  

ip.addr == 172.16.5.254  :  출발지 IP 주소 or 목적지 IP 주소  

ip.src  == 172.16.5.254 or ip.dst  == 172.16.5.254 

tcp.port == 80  :  출발지 TCP 포트 번호 or 목적지 TCP 포트 번호 

tcp.srcport == 80 or tcp.dstport == 80 

udp.port == 53   :  출발지 UDP 포트 번호 or 목적지 UDP 포트 번호 

udp.srcport == 53 or udp.dtcport == 53 

  

  

ip.addr == 172.16.5.254  

ip.src == 172.16.5.254 : Source: 172.16.5.254 (172.16.5.254) 

ip.dst == 172.16.5.254 : Destination: 172.16.5.254 (172.16.5.254) 

ip.addr == 172.16.5.254 && tcp 

 ip.src == 172.16.5.254 && tcp : Source Port: 1320 (1320) 

 ip.dst == 172.16.5.254 && tcp : Destination Port: 1320 (1320) 

ip.addr == 172.16.5.254 && tcp.port eq 80 

 ip.src == 172.16.5.254 && tcp.srcport == 80 

 ip.src == 172.16.5.254 && tcp.dstport == 80 : Source: 172.16.5.254 (172.16.5.254) | Destination Port: 80 (80) 

 ip.dst == 172.16.5.254 && tcp.srcport == 80 : Destination: 172.16.5.254 (172.16.5.254) | Destination Port: 1980 (1980) 

 ip.dst == 172.16.5.254 && tcp.dstport == 80  

ip.addr == 172.16.5.254 && tcp.flags eq 0x02  

 ip.src == 172.16.5.254 && tcp.flags == 0x02 : Source: 172.16.5.254 (172.16.5.254) | .... 0000 0000 0010 = Flags: 0x002 (SYN) 

 ip.dst == 172.16.5.254 && tcp.flags == 0x02  

ip.addr == 172.16.5.254 && tcp.flags eq 0x12 

 ip.src == 172.16.5.254 && tcp.flags == 0x10 : Source: 172.16.5.254 (172.16.5.254) | .... 0000 0001 0000 = Flags: 0x010 (ACK) 

 ip.dst == 172.16.5.254 && tcp.flags == 0x10 : Destination: 172.16.5.254 (172.16.5.254) | .... 0000 0001 0000 = Flags: 0x010 (ACK) 

ip.addr == 172.16.5.254 && tcp.flags eq 0x10 

 ip.src == 172.16.5.254 && tcp.flags == 0x10 : Source: 172.16.5.254 (172.16.5.254) | .... 0000 0001 0000 = Flags: 0x010 (ACK) 

 ip.dst == 172.16.5.254 && tcp.flags == 0x10 : Destination: 172.16.5.254 (172.16.5.254) | .... 0000 0001 0000 = Flags: 0x010 (ACK) 

ip.addr == 172.16.5.254 || tcp.port eq 80 

 ip.src == 172.16.5.254 || tcp.srcport == 80 : Source: 172.16.5.254 (172.16.5.254) | Source Port: 1980 (1980) 

→ip.dst == 172.16.5.254 || tcp.srcport == 80

ip.src == 172.16.5.254 || tcp.dstport == 80

ip.dst == 172.16.5.254 || tcp.dstport == 80 

ip.src == 172.16.5.254 

ip.dst == 172.16.5.254 

 

ip.src == 172.16.5.254 && udp 

ip.src == 172.16.5.254 && udp.port eq 53 

 

ip.src == 168.126.63.1 && udp.srcport eq 53 

ip.src == 172.16.5.254 && udp.dstport eq 53 

  

  

  

!arp 

ip.addr == 172.16.5.254 && ip && !arp && !tcp && !udp  

  

  

icmp 

icmp[0] == 8     

icmp.type eq 8 

  

icmp[0] == 0  

icmp.type eq 0 

  

  

eth.dst eq ff:ff:ff:ff:ff:ff 

eth.src eq 00:e0:4c:14:62:ba 

arp.src.hw_mac == 00:07:70:a1:3c:02 

arp.dst.hw_mac == 00:e0:4c:14:62:ba 

  

http.host eq lm3.cafe.naver.com && tcp 

  

  

  

[예제] 와이어샤크 

  

PC---------------------------------------------서버 

192.168.1.17            192.168.1.201 

MAC D0:50:99:A8:32:73 

  

Ex1) '192.168.1.201' ARP 요청 및 응답 캡처 

  

PC>arp -d 

PC>ping 192.168.1.201 

  

 ip.addr == 192.168.1.201 && arp 

  

arp.src.hw_mac == D0:50:99:A8:32:73 && arp.dst.proto_ipv4 == 192.168.1.201 

arp.src.proto_ipv4 == 192.168.1.201 && arp.dst.proto_ipv4 == 192.168.1.17 

  

(arp.src.hw_mac == D0:50:99:A8:32:73 && arp.dst.proto_ipv4 == 192.168.1.201) or (arp.src.proto_ipv4 == 192.168.1.201 && arp.dst.proto_ipv4 == 192.168.1.17) 

  

  

Ex2) '192.168.1.201' HTTP 및 TCP 3-Way 핸드 쉐이킹 캡처 

  

웹-브라우저 -> http://192.168.1.201 

  

 ip.addr == 192.168.1.201 && http 

 ip.addr == 192.168.1.201 && tcp.port == 80 

  

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.dstport == 80 

ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.srcport == 80 

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.dstport == 80 && tcp.seq == 1 && tcp.ack == 1 →→→→→→→→→→→→→→→→→→→ HTTP 전 통신연결 할 때 ACK를 찾기 위해서 

  

(ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.dstport == 80 

ip.src == 192.168.1.201 && ip) or (ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.srcport == 80) or (ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.dstport == 80 && tcp.seq == 1 && tcp.ack == 1) 

  

  

Ex3) '192.168.1.201' FTP 및 TCP 3-Way 핸드 쉐이킹 캡처 

  

PC>ftp 192.168.1.201    ID/PW -> user01/user01        종료 -> quit 

  

 ip.addr == 192.168.1.201 && ftp 

 ip.addr == 192.168.1.201 && tcp.port == 21 

  

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.dstport == 21 

ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.srcport == 21 

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.dstport eq 21 && tcp.seq eq 1 && tcp.ack eq 1 

  

(ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.dstport == 21) or (ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.srcport == 21) or (ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.dstport eq 21 && tcp.seq eq 1 && tcp.ack eq 1) 

  

Ex4) '192.168.1.201' Telnet 및 TCP 3-Way 핸드 쉐이킹 캡처 

  

PC>telnet 192.168.1.201    ID/PW -> user01/user01        종료 -> exit 

  

 ip.addr == 192.168.1.201 && telnet 

 ip.addr == 192.168.1.201 && tcp.port == 23 

  

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.port == 23 

ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.port == 23 

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.port == 23 && tcp.seq == 1 && tcp.ack == 1 

  

(ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x02 && tcp.port == 23) or (ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && tcp.flags eq 0x12 && tcp.port == 23) or (ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && tcp.flags eq 0x10 && tcp.port == 23 && tcp.seq == 1 && tcp.ack == 1) 

  

Ex5) '192.168.1.201' ICMP Echo-Request, ICMP Echo-Reply 캡처 

  

PC>ping 192.168.1.201 

  

 ip.addr == 192.168.1.201 && icmp[0] == 8 

 ip.addr == 192.168.1.201 && icmp[0] == 0 

  

ip.addr == 192.168.1.201 && icmp 

ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && icmp.type == 8 

ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && icmp.type == 0 

  

(ip.src == 192.168.1.17 && ip.dst == 192.168.1.201 && icmp.type == 8) or (ip.src == 192.168.1.201 && ip.dst == 192.168.1.17 && icmp.type == 0) 

  

  

Ex6) '168.126.63.1' DNS 요청 및 응답 캡처 

  

PC>nslookup www.naver.com 

  

ip.addr == 192.168.1.17 && dns 

ip.addr == 192.168.1.17 && udp.port == 53 

  

ip.addr == 192.168.1.17 && dns 

ip.addr == 168.126.63.1 && dns 

  

(ip.addr == 192.168.1.17 && dns) or (ip.addr == 168.126.63.1 && dns) 

  

ip.src == 192.168.1.17 && ip.dst == 168.126.63.1 && dns.qry.name == www.naver.com 

ip.src == 168.126.63.1 && ip.dst == 192.168.1.17 && dns.qry.name == www.naver.com 

  

(ip.src == 192.168.1.17 && ip.dst == 168.126.63.1 && dns.qry.name == www.naver.com) or (ip.src == 168.126.63.1 && ip.dst == 192.168.1.17 && dns.qry.name == www.naver.com) 

  

  

@ 패켓 분석-1 문제 

  

- 사용자 시스템 : 192.168.20.202 

- 사용자가 접근한 시스템 : www.naver.com(210.89.160.88), 211.216.46.15, 192.168.20.200 

  

1) 네이버로 HTTP 서비스 요청 이전에 실시한 TCP 3-Way 핸드 쉐이킹 과정을 분석한다. 

  

ip.addr == 192.168.20.202 && http 

ip.addr == 192.168.20.202 && tcp.port == 80 

  

ip.src == 192.168.20.202 && ip.dst == 210.89.160.88 && tcp.flags eq 0x02 && tcp.dstport eq 80 

ip.src == 210.89.160.88 && ip.dst == 192.168.20.202 && tcp.flags eq 0x12 && tcp.srcport eq 80 

ip.src == 192.168.20.202 && ip.dst == 210.89.160.88 && tcp.flags eq 0x10 && tcp.dstport eq 80 && tcp.seq == 1 && tcp.ack == 1 

  

(ip.src == 192.168.20.202 && ip.dst == 210.89.160.88 && tcp.flags eq 0x02 && tcp.dstport eq 80) or (ip.src == 210.89.160.88 && ip.dst == 192.168.20.202 && tcp.flags eq 0x12 && tcp.srcport eq 80) or (ip.src == 192.168.20.202 && ip.dst == 210.89.160.88 && tcp.flags eq 0x10 && tcp.dstport eq 80 && tcp.seq == 1 && tcp.ack == 1) 

  

  

2) Naver에서 검색한 문자열은 무엇인가? 

  

- 네이버에서 직접 검색을 실시하여 URL 정보를 확인한 한다. 

- 와이어샤크 -> 파일 -> Export Objects -> HTTP에 가서 네이버 검색 내용을 확인한다. 

- 3883 패켓 클릭 -> 와이어샤크 -> 마우스우클릭 -> Follow TCP Stream -> URL 인코딩 복사 

- URL 디코딩 사이트에가서 디코딩 실시 

  

3) '211.216.46.15'와 실시한 SSL 3-Way 핸드 쉐이킹 및 SSL 패켓을 분석한다. 

  

ip.addr == 192.168.20.202 && ssl 

ip.addr == 192.168.20.202 && tcp.port eq 443 

  

ip.src == 192.168.20.202 && ip.dst == 211.216.46.15 && tcp.dstport eq 443 && tcp.flags eq 0x02 

ip.src == 211.216.46.15 && ip.dst == 192.168.20.202 && tcp.srcport eq 443 && tcp.flags eq 0x12 

ip.src == 192.168.20.202 && ip.dst == 211.216.46.15 && tcp.dstport eq 443 && tcp.flags eq 0x10 && tcp.seq eq 1 && tcp.ack eq 1 

  

(ip.src == 192.168.20.202 && ip.dst == 211.216.46.15 && tcp.dstport eq 443 && tcp.flags eq 0x02) or (ip.src == 211.216.46.15 && ip.dst == 192.168.20.202 && tcp.srcport eq 443 && tcp.flags eq 0x12) or (ip.src == 192.168.20.202 && ip.dst == 211.216.46.15 && tcp.dstport eq 443 && tcp.flags eq 0x10 && tcp.seq eq 1 && tcp.ack eq 1) 

  

(ip.src == 192.168.20.202 && ip.dst == 211.216.46.15 && ssl) or (ip.src == 211.216.46.15 && ip.dst == 192.168.20.202 && ssl)  

  

4) '192.168.20.200'으로 Telnet 접속시 아이디/패스워드는 무엇이며, 실행했던 명령어 및 내용은 무엇인가? 

  

ip.addr == 192.168.20.202 && telnet 

ip.addr == 192.168.20.202 && tcp.port eq 23 

  

(ip.src == 192.168.20.202 && ip.dst == 192.168.20.200 && telnet) or (ip.src == 192.168.20.200 && ip.dst == 192.168.20.202 && telnet) 

  

 

빨간색: 클라이언트 → 서버 

파란색: 서버 → 클라이언트 (서버가 응답을 줬음) 

 

5) '192.168.20.200'으로 SSH 접속시 교환된 패켓들을 분석한다. 

  

(ip.src == 192.168.20.202 && ip.dst == 192.168.20.200 && ssh) or (ip.src == 192.168.20.200 && ip.dst == 192.168.20.202 && ssh) 

  

6) '192.168.20.200'으로 FTP 접속시 아이디/패스워드는 무엇이며, 업로드 또는 다운로드한 파일/내용은 무엇인가? 

  

(ip.src == 192.168.20.202 && ip.dst == 192.168.20.200 && ftp) or (ip.src == 192.168.20.200 && ip.dst == 192.168.20.202 && ftp) 

ID: user01 PWD: user01 

 

port 21 사용: ftp+ssl 로 보안적용되서 클라이언트→서버만 진행되어 빨간색만 보임.

키보드를 통해서 입력하였으나, 서버에서 응답하지않아 화면에서 확인되지 않음.

 

(ip.src == 192.168.20.202 && ip.dst == 192.168.20.200 && ftp-data) or (ip.src == 192.168.20.200 && ip.dst == 192.168.20.202 && ftp-data) 

 

 

반응형