[TIL 2/4] Wireshark를 이용한 간단 패킷 분석

Song-YunMin·2021년 2월 4일
5

TIL

목록 보기
16/29

오늘의 회고

오늘은 WireShark 라는 Tool을 이용하여 패킷을 분석해보는 과정을 진행했습니다.
해킹 툴로 많이 이용 된다지만,, 저 같은 주니어에게는 그저 네트워크 프로그래밍 공부 중 하나일 뿐이죠.. ㅎㅎ..
요즘에는 재택근무를 주로 하는데, 답답합니다.. 정말 답답합니다... 그래서 웬만하면 출근하려고 하지만 요즘 늘어나는 서울 확진자가 너무 무섭네요.. 어쨌든 그래서 오늘은 WireShark를 이용하여 간단하게 패킷 분석하는 과정을 알아 보겠습니다.

오늘 학습한 것

  • WireShark를 이용한 간단 패킷 분석

WireShark

WireShark는 쉽게 말해 패킷을 캡쳐하고 분석하는 오픈소스 프로그램입니다.
강력하고 쉬운 사용법 덕분에 해킹뿐만 아니라 보안 취약점 분석, 보안 컨설팅, 개인정보 영향평가 등 여러 분야에서 폭 넓게 사용됩니다.
설치 방법 및 필터링 사용법은 여기에 잘 정리 되어있으니 참고하시면 좋을 것 같습니다.

Analyze Packets

와이어 샤크를 구동하면 정신없는 패킷들을 볼 수 있습니다. 이 패킷 중에 내가 원하는 페이지의 패킷을 보고싶다면 먼저 원하는 페이지의 IP주소를 알아야 합니다. 만약 www.google.com 으로 요청을 보내고 싶다면 터미널에 아래와 같이 입력합니다. (MAC OS 기준)

$ nslookup www.google.com

이렇게 IP를 알아내었으니 WireShark 에 진입 해 봅시다.

위와 같이 캡쳐할 대상을 선택할 수 있습니다. Wi-Fi로 통신하고 있으니 제일 상단 Wi-Fi: en0을 선택합니다.

그러면 위와 같은 화면을 볼 수 있습니다...!
여기서 저는 알아낸 www.google.com 의 IP 172.217.26.132의 요청만 보고싶은 것이기 때문에 필터링을 해줘야 합니다.
상단 필터링 Form에 아래와 같이 입력합니다. (ip주소는 달라집니다 꼭 직접 nslookup을 통해 확인하고 진행하세요.)

그러면 아래 처럼 해당 ip주소와 관련있는 패킷만 보여지게 됩니다.

Three Way Hand Shake


아래는 3 Way Hand Shake 과정입니다. 위 패킷에서 Three Way Hand Shake 과정에 해당하는 패킷을 찾아보시기 바랍니다.

  • 먼저 3-Way Hand Shake 과정을 수행합니다.
    • Client(Source Port) 에서 Server(Destination Port)로 통신을 원한다는 신호를 보냅니다. [SYN] Seq = 0
    • Server에서 SYN을 정상적으로 받았다는 신호를 보냅니다. [SYN, ACK] Seq=0 Ack=1
    • Client에서 SYN-ACK를 잘 받았다고 신호를 보냅니다. [ACK] Seq=1 Ack=1
  • Client 에서 HTTP 요청을 보냅니다. [GET / HTTP/1.1]
  • Server 측에서 확인 신호를 보냅니다.

TCP 패킷 정보

또한 패킷들을 클릭하면 패킷의 정보도 볼 수 있습니다.

  • Source Port (발신지 포트 필드) : 발신지 포트 필드는 발신지에서 오픈된 포트입니다. 위 포트를 보면 50572 포트인 것을 확인할 수 있습니다.
  • Destination Port (목적지 포트 필드) : 목적지 포트 필드는 수신지에서 오픈된 포트입니다. 위의 패킷을 보면 51462 포트인 것을 확인할 수 있습니다.
  • Squence Number (순차 번호 필드) : 순차번호필드는 고유한 번호를 가지며, 이 값으로 TCP 세그먼트에 대한 식별값을 제공하며, 통신 스트림일부가 분실되면 확인을 위해 수신자를 사용가능하게 합니다. 이 순차번호는 패킷에 포함되어 있는 데이터 만큼 증가하게 됩니다.
  • Acknowledgement Number (확인 응답 번호 필드) : 확인 응답 번호 필드는 다음번에 기대되는 순차번호를 표시합니다. ack number에 관련하여 530의 값을 가지게 됩니다.
  • Header Length (데이터 오프셋 필드) : 데이터 오프셋필드는 TCP헤더의 길이를 정의합니다. 길이는 4byte씩 증가되고, 이 필드의 값이 20이면 80바이트 길이를 갖는다는 것입니다.

Reference

Wireshark(와이어샤크) 설치 및 사용법 + 필터링 사용법

profile
고독한 서버 개발 3년차

0개의 댓글