Search
Duplicate
📡

WireShark로 패킷을 까보자

간단소개
WireShark를 이용하여 내 컴퓨터가 전송하고 전송받는 네트워크 패킷을 다루어보자
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Network
Scrap
태그
network
9 more properties
Webserv 프로젝트를 하면서 웹서버에 대한 생각을 이어나가다가 아래의 의문점이 들었다.
‘웹서버란 게 클라이언트에서 오는 connect() 요청을 listen() - accept()하면 리턴되는 fd를 이용해 read/write를 하며 데이터를 보내게 되는데, 그럼 실제로 우리가 만든 웹서버는 HTTP 통신을 하게 될 때에는 규약에 맞게 메세지를 fd 에 write를 하면 되는 건가?’ ’만약 그렇다면 실제로 HTTP 통신을 할 때에는 요청/응답의 메세지 내용은 어떻게 생겼을까?
생각이 거기까지 미치니 네트워크의 신호가 실제로 어떠한 지 볼 수 있는 툴이 필요했고, 수소문하다가 상어를 잡았다! 아기상어도 아니고 진짜상어도 아닌, 바로 네트워크 와이어에 사는 Wireshark 와 터미널에 사는 Termshark 다!

0. Wireshark? 이게 뭐야!?

상어는 상어인데 네트워크 연결망에 사는 상어이다. 물론 진짜 상어는 아니지만, 패킷 하나라도 생기면 바로바로 탐지할 수 있는 막강한 기능을 제공한다. 모의해킹이나 모니터링, 포렌식에서도 활동되는 등 패킷 분석 툴로는 가장 많이 쓰이는 툴 중 하나라고 할 수 있다.

1. 설치를 해보자!

설치는 간단하게 아래의 링크에서 진행할 수 있다. Wireshark는 Linux 환경 뿐만 아니라 Window와 MacOS 등 다양한 환경에서 지원한다.
https://www.wireshark.org/#download
Plain Text
복사
Wireshark 를 설치하게 되면 다양한 툴이 같이 설치되게 되고, 이를 또 개별적으로 사용할 수 있다. 대표적으로는 지정된 조건에 만족하면서 네트워크 인터페이스를 거치는 패킷을 가로채서 조회할 수 있는 tcpdump , 텍스트파일을 패킷파일로 변환해주는 text2pcap , GUI 환경이 아닌 터미널에서 wireshark의 일부기능을 지원해주는 tshark 가 있다.

2. 실행을 해보자!

실행을 하면 아래와 같은 화면이 반겨줄 것이다.
대표적으로 네 가지의 레이아웃을 볼 수 있다. 위에서부터 차례대로 보면...
1.
툴바 - 자주 쓰이는 기능을 쓸 수 있는 단축 아이콘이 모여있다. 패킷 캡쳐 기능, 패킷 파일, 폰트, 개별 패킷에 대해 자주 쓰이는 동작들이 아이콘으로 들어와 있다.
2.
패킷 리스트 - 캡쳐한 패킷을 리스트로 띄워 올리는 부분. 각각의 라인은 캡쳐한 패킷 1개를 의미하며, 클릭을 하면 밑의 ‘패킷 바이트’ 항목과 ‘패킷 디테일’ 항목에서 그 세부내역을 볼 수 있다. 위에 있는 ‘패킷 필터’를 통해서 조건절을 적어서 해당 조건절을 만족하는 패킷만 조회할 수 있다.
3.
패킷 디테일 - 패킷 리스트에서 선택한 패킷의 세부정보를 표시합니다. 패킷 내부정보를 해석해 줄 뿐만 아니라 몇몇 정보들은 원래 패킷에는 없지만 패킷 분석을 위해 Wireshark가 자체적으로 추가한 필드도 표시한다.
a.
[ ] 로 표시된 필드는 응답시간, TCP 유효성 검사, checksum 검사와 같이 특정 프로토콜을 해석하기 위해 자체적으로 추가된 정보를 표시합니다.
b.
파란줄로 밑줄이 그어진 정보는 리스트에서 선택한 패킷이 특정 패킷과 연관이 있을 경우 해당 패킷으로 넘어갈 수 있는 링크이다.
4.
패킷 바이트 - 선택한 패킷의 데이터를 Hexdump 와 ascii 로 전개한다. 오른쪽 클릭을 하면 Hexdump 대신 binary로, ascii 대신 EBCDIC 출력도 지원한다.

3. 패킷을 해석해보자!