IT정보공유

와이어샤크 다운로드 및 기본 필터링 사용방법

알지오™ 2023. 4. 6.

소트프웨어 개발을 하다보면 TCP 통신이나 UDP 통신을 하는 프로그램을 만들어야 하는 경우가 있는데, 이때 정상적으로 패킷이 전달되는지 확인하거나 분석을 해야 할 경우가 생기기도 합니다. 이럴때에는 와이어샤크(Wireshark)같은 네트워크 패킷 분석 도구를 사용할 수 있습니다.

 

와이어샤크 (Wireshark) 사용방법

실제 가장 오랜기간 많이 사용된 네트워크 패킷 분석 전문툴인 와이어샤크 기본 사용방법을 알려드리도록 하겠습니다.

와이어샤크를 설치 실행하면, 덩그러니 아래와 같은 화면이 나옵니다. 무엇을 어떻게 시작하는지 기본적인 사용방법에 대해서 하나하나 알려드리도록 하겠습니다.

 

Wireshark 네크워크 패킷 분석

 

화면 하단의 Capture 부분이 네트워크를 통해 송수신되는 패킷을 캡쳐하고자 하는 이더넷카드(랜카드)를 선택하는 부분입니다. 예를 들어 랜카드가 여러개 있을 경우, 특정 랜카드를 통해서 주고받는 패킷 분석만 하고 싶을 때 해당하는 장치를 선택하면 되고,

 

오늘 제가 여러분께 소개해 드리는 부분은 하나의 PC에서 프로그램과 프로그램사이의 데이터 송수신 패킷을 캡쳐해 볼 예정이기 때문에 "Adapter for loopback traffic capture" 선택하면 되겠습니다.

 

와이어샤크 패킷 캡쳐 시작 방법

루프백 트래픽 캡쳐를 선택 후, 메인 화면 보다 더 횡환 화면이 나올겁니다. 아직 패킷캡쳐를 하기 전이기 때문에 그렇고 아래의 상어지느러미 모양 아이콘을 누르면 실제 패킷캡쳐가 시작됩니다.

 

와이어샤크 패킷 캡쳐

 

이제 부터는 네트워크에서 송수신되는 패킷들이 캡쳐되기 시작하기 때문에 데이터가 들어오고, 나가고 하는 패킷들이 캡쳐되기 시작합니다. 정신없이 계속 스크롤이 될거에요.

 

네크워크 패킷 분석

 

와이어샤크 패킷 필터

이렇게 수많은 패킷들이 계속 오고 가는 상황에서 내가 찾고자 하는 패킷을 찾는 것은 매우 어려운일입니다.

그래서 와이어샤크에는 패킷 필터링 기능이 있습니다. 필터를 통해 내가 찾고자 하는 패킷만 찾을 수 있습니다. 와이어샤크를 잘 활용하려면 이 필터 사용방법에 꼭 익숙해 지셔야됩니다.

 

와이어샤크 필터 설정

 

tcp.port == 10000 으로 현재 필터가 설정되어 있는 상태고, 이 부분은 직접 타이핑해서 입력하거나 지우시면 됩니다.

(tcp 포트 10000으로 송수신 되는 패킷만 필터링해서 보겠다는 의미, 즉 udp 같은 tcp가 아닌 패킷은 안보입니다.)

 

캡쳐된 패킷 보는 방법

필터링된 패킷을 선택하면 하단부에 패킷에 대한 상세한 정보들이 표기됩니다.

하단 왼쪽에는 패킷의 길이, 윈도우사이즈, 페이로드 등이 표시가 되고, 우측에는 패킷의 데이터 부분을 Hex code와 아스키코드로 표기가 됩니다.

제가 캡쳐한 패킷의 데이터가 XML 이라는걸 바로 알수가 있습니다.

 

 

와이어샤크 필터 종류와 필터 사용법

일반적으로 많이 사용되는 필터들에 대해서 알아보겠습니다.

Filter Description
ip.addr 주어진 IP 주소로부터 보낸 또는 받은 모든 패킷을 필터링
tcp.port 주어진 포트 번호로부터 보낸 또는 받은 모든 TCP 패킷을 필터링
udp.port 주어진 포트 번호로부터 보낸 또는 받은 모든 UDP 패킷을 필터링
http HTTP 프로토콜 필터링
ssl SSL 프로토콜 필터링
dns DNS 프로토콜 필터링
icmp ICMP 프로토콜 패킷 필터링
arp ARP 프로토콜 패킷 필터링
frame.len 패킷의 길이 기준으로 필터링
tcp.analysis.flags TCP 패킷의 플래그 값(ACK, SYN, FIN 등) 필터링

 

여러가지 조건을 동시에 필터링 하고 싶을 때는 "and"를 이용합니다. 프로그래밍을 해보신분들은 이해가 더 빠르실텐데 단어 그대로 "필터링1 and 필터링2" 2가지 조건에 해당하는 패킷만 필터링 하겠다는 의미입니다.

 

tcp.port == 10000 and not tcp.len == 1 and not tcp.len == 0

위의 조건을 잘 분석해 보면 이해가 완벽히 될텐데요.

1) tcp.port는 10000번만

2) not tcp.len == 1 //tcp 패킷의 길이가 1이 아닌것 (앞에 not 이 없으면 길이가 1인것만. not이 있기 때문에 1이 아닌것만) 

3) not tcp.len == 0 //패킷길이가 0도 아닌것.

 

위 필터링은 패킷 길이 필터링 2가지 조건은 다음과 같이 변경할 수 있습니다.

tcp.port == 10000 and tcp.len > 1

 

Wireshark 다운로드

와이어샤크는 오픈 소스 기반의 무료 패킷 분석툴이며 강력한 기능을 제공하는 프로그램입니다. 아래의 경로에서 다운받아서 사용하시면 됩니다.

 

https://www.wireshark.org/download.html

 

 

설치방법은 "그냥" 다음 다음 넘겨서 설치해도 무리가 없으니 디폴트 옵션 그대로 사용하셔도 무방합니다.

댓글

💲 추천 글