이 글에서는 네트워크 패킷 분석 툴인 와이어샤크(wireshark) 4.0 최신버전을 설치하고 사용하는 법에 대해서 설명합니다.
- 와이어샤크(wireshark) 란?
- 와이어샤크(wireshark) 설치
- 와이어샤크(wireshark)로 패킷 캡처
- 와이어샤크(wireshark)로 패킷 분석
와이어샤크(wireshark) 란?
와이어샤크(Wireshark)는 네트워크 프로토콜 분석 도구입니다. 이 도구는 네트워크에서 전송되는 데이터를 캡처하고, 분석하며, 디버깅하는 데 사용됩니다.
와이어샤크는 다양한 네트워크 프로토콜 및 데이터 포맷을 지원하며, 이를 통해 사용자는 네트워크에서 전송되는 모든 데이터를 분석할 수 있습니다. 또한, 다양한 필터링 기능과 통계 기능을 제공하여, 사용자는 특정 데이터에 대한 정보를 더욱 쉽게 추출하고 분석할 수 있습니다.
와이어샤크는 오픈 소스 소프트웨어로, 다양한 운영 체제에서 사용할 수 있습니다. 이를 통해 사용자는 다양한 네트워크 환경에서 동작하는 기능적인 네트워크 프로토콜 분석 도구를 사용할 수 있습니다.
와이어샤크(wireshark) 설치
와 https://www.wireshark.org/download.html
다운받는 중에 윈도우에서 exe파일이라고 컴퓨터에 해로울 수 있다는 경고 메시지가 나타납니다. 계속 다운 받기를 눌러주셔야 완료됩니다. 약 75M 정도 됩니다.
다운받은 파일을 실행하여 와이어샤크를 설치해 줍니다.
몇 가지 선택하는 항목들이 있는데, 저는 모두 next를 눌러서 기본으로 설치하였습니다.
와이어샤크는 오픈소스로 기부도 받고 있다는 내용도 중간에 안내가 나옵니다. 참고하시기 바랍니다.
중간에 npcap 라이브러리에 대한 설치시 설치 옵션이 나오는데, 체크박스에 체크를 하지 않고 수행합니다.
조금 기다리시면 설치가 완료됩니다. 설치가 완료되면 리부트를 요청하는데, 일단 저는 리부트 하지 않고 테스트 진행하였습니다.
설치가 완료되면 와이어샤크 프로그램을 실행하실 수 있습니다.
와이어샤크(wireshark)로 패킷 캡처하기
와이어샤크를 열면, 첫 화면에 패킷들이 이동하는 인터페이스를 보여줍니다. 그리고, 패킷을 캡처하기 위해서는 와이어샤크의 첫 화면에서 인터페이스를 선택하여 마우스 오른쪽클릭으로 캡처를 실행할 수 있습니다.
위의 이미지와 같이 인터페이스를 선택한 후 start capture를 누르면 라이브 패킷들이 이동하는 모습이 보여집니다. 아래는 라이브 패킷 이동 과정에서 스크린 캡처한 화면입니다.
여기서 save as를 눌러서 다양한 형태로 패킷을 저장할 수 있습니다.
와이어샤크로 패킷을 캡처하여 저장할 수 있는 파일 형식에는 다음과 같은 것들이 있습니다.
1. pcap 파일
pcap 파일은 네트워크 패킷 캡처를 위한 표준 파일 형식입니다. 이 파일 형식은 다양한 네트워크 프로토콜의 패킷을 저장할 수 있으며, 대부분의 네트워크 모니터링 도구에서 이 파일 형식을 지원합니다.
2. pcapng 파일
pcapng 파일은 pcap 파일 형식의 개선된 버전으로, 더 많은 정보와 향상된 확장성을 제공합니다. 이 파일 형식은 다양한 네트워크 프로토콜의 패킷을 저장할 수 있으며, pcap 파일과의 호환성도 보장됩니다.
3. pcap.gz 파일
pcap.gz 파일은 gzip으로 압축된 pcap 파일입니다. 이 파일 형식은 저장 공간을 절약할 수 있어서, 대규모 패킷 캡처를 위해 자주 사용됩니다.
4. pcapng.gz 파일
pcapng.gz 파일은 gzip으로 압축된 pcapng 파일입니다. 이 파일 형식은 저장 공간을 절약하면서, pcapng 파일의 향상된 기능을 활용할 수 있습니다.
5. ERF 파일
ERF 파일은 Endace DAG 데이터 포맷으로, Endace사의 네트워크 모니터링 장비에서 캡처된 패킷을 저장하기 위한 파일 형식입니다.
이러한 파일 형식들은 모두 네트워크 패킷을 저장하기 위한 것으로, 각각의 특징과 용도에 따라 적절한 파일 형식을 선택하여 사용할 수 있습니다.
6. tcpdump
참고로 tcpdump 형식은 tcpdump 도구에서 캡처된 패킷을 저장하기 위해 사용되는 형식으로, 일반적으로 pcap 파일 형식과 호환됩니다.
tcpdump 형식으로 저장된 파일은 네트워크 패킷의 캡처 시각, 패킷의 길이, 패킷의 데이터 등 다양한 정보를 포함합니다. 이 파일은 일반적으로 네트워크 분석 도구에서 사용되며, Wireshark와 같은 네트워크 분석 도구에서 열어서 패킷을 분석할 수 있습니다.
tcpdump 형식은 다른 파일 형식과 호환되므로, tcpdump로 캡처한 패킷을 다른 네트워크 분석 도구에서도 사용할 수 있습니다. 이러한 호환성은 다양한 환경에서 패킷 캡처 및 분석을 수행할 수 있도록 도와줍니다.
예를들어, 리눅스에서 tcpdump로 패킷을 캡처해서 와이어샤크(Wireshark)에서 분석할 수 있습니다.
이제 패킷을 캡처했으니 분석을 하는 법은 간단하게 알아보겠습니다.
와이어샤크(wireshark)로 패킷 분석
위에서 저장한 네트워크 패킷 중에 ssh로 통신한 패킷만 보고 싶은 경우 다음과 같이 필터를 줄 수 있습니다.
tcp.port == 22
화면의 왼쪽 아래와 우측 아래에 추가 창이 나타나는데, 왼쪽아래는 패킷의 헤더에 대한 정보를 보여줍니다. 그리고 해당 항목을 클릭하면 우측 아래에 hex 데이터를 표시해 줍니다. 이것을 통해서 쉽게 패킷을 분석할 수 있도록 도와줍니다.
와이어샤크에서 TCP 패킷을 분석하기 위한 유용한 필터는 다양합니다. 여기서는 몇 가지 예제를 들어 설명해보겠습니다.
1. 특정 포트 번호 필터링
TCP 패킷 중에서 특정 포트 번호에 해당하는 패킷만 분석하고 싶다면, 다음과 같은 필터를 사용할 수 있습니다.
위 필터는 TCP 포트 번호가 80인 패킷만 필터링합니다. 이를 통해 웹 트래픽을 분석할 수 있습니다.
2. 특정 IP 주소 필터링
TCP 패킷 중에서 특정 IP 주소에 해당하는 패킷만 분석하고 싶다면, 다음과 같은 필터를 사용할 수 있습니다.
위 필터는 IP 주소가 192.168.1.1인 패킷만 필터링합니다. 이를 통해 특정 호스트와의 통신을 분석할 수 있습니다.
3. TCP 플래그 필터링
TCP 패킷 중에서 특정 TCP 플래그를 가지는 패킷만 분석하고 싶다면, 다음과 같은 필터를 사용할 수 있습니다.
위 필터는 SYN 플래그를 가지는 TCP 패킷만 필터링합니다. 이를 통해 TCP 연결 설정 과정을 분석할 수 있습니다.
4. 패킷 길이 필터링
TCP 패킷 중에서 특정 길이 이상의 패킷만 분석하고 싶다면, 다음과 같은 필터를 사용할 수 있습니다.
위 필터는 TCP 패킷 길이가 100바이트 이상인 패킷만 필터링합니다. 이를 통해 대용량 데이터 전송과 같은 트래픽을 분석할 수 있습니다.
5. 데이터 전송 지시자를 가지는 패킷 필터링 (PUSH)
위 필터는 TCP 패킷 중에서 PSH 플래그가 1인 패킷만 필터링합니다. 이를 통해 PUSH 데이터가 있는 패킷만 보이도록 필터링할 수 있습니다.
위와 같은 필터들을 사용하여 원하는 TCP 패킷만 필터링하여 분석할 수 있습니다.
TCP 프로토콜에서 PUSH 플래그는 데이터 전송을 지시하는 플래그입니다. TCP는 데이터를 전송할 때, 데이터를 여러 개의 패킷으로 분할하여 전송합니다. 이때, PUSH 플래그가 설정된 패킷은 수신측에서 바로 처리하도록 하며, 대기하지 않고 바로 처리해야 함을 알려줍니다. 즉, PUSH 플래그가 설정된 패킷은 이전 패킷에 이어서 전송되는 데이터가 아니라, 새로운 데이터가 전송되는 것을 의미합니다. 이를테면, 웹 브라우저가 웹 페이지를 요청하는 경우, 서버는 HTML 문서를 여러 개의 TCP 패킷으로 분할하여 전송합니다. 이때, 마지막 패킷에는 PUSH 플래그가 설정되어 수신측에서 바로 처리하도록 하며, 대기하지 않고 바로 표시되도록 하는 역할을 합니다.