Wireshark 설치 확인
요구 사항
wireshark 명령을 사용하여 터미널에서 Wireshark 를 시작합니다.
- 트래픽을 캡처하기 위해 Wireshark 에서 올바른 네트워크 인터페이스를 선택합니다. 인터페이스 이름은 다를 수 있습니다 (예:
eth0, eth1).
- 필터
http를 사용하여 HTTP 트래픽만 캡처하도록 Wireshark 에서 디스플레이 필터를 적용합니다.
- 다른 터미널에서
curl http://labex.io를 사용하여 일부 HTTP 트래픽을 생성합니다.
labex.io에서 발생한 HTTP 트래픽이 Wireshark 에서 캡처되었는지 확인합니다.
- "Source" 및 "Destination" 열에는 HTTP 통신에 관련된 IP 주소가 표시된다.
- Wireshark를 통해 네트워크 패킷을 캡처하고 필터링할 수 있다.
- Wireshark 에서 캡처된 트래픽이 HTTP 프로토콜과 관련 소스/대상 IP 주소를 표시하는지 확인해야 한다.
Wireshark 인터페이스 탐색 및 사용자 정의
- Wireshark는 네트워크 프로토콜 분석기 (analyzer) 로, 네트워크를 통해 흐르는 데이터 트래픽을 캡처하고 검사할 수 있다.
리눅스 / macOS에서 Wireshark 실행
wireshark
- 설치되어 있으면 GUI가 실행된다.
- 관리자 권한이 필요할 수도 있다. (예:
sudo wireshark )

- 사용 가능한 네트워크 인터페이스 목록이 표시된다.
- 네트워크 인터페이스는 컴퓨터가 네트워크에 연결되는 문과 같다. 예를 들어,
eth0은 이더넷 네트워크 연결일 수 있고, lo는 루프백 인터페이스다. 루프백 인터페이스는 컴퓨터가 자체적으로 통신할 수 있도록 하는 특수한 네트워크 인터페이스이다.
- 필터는 특정 유형의 네트워크 트래픽에 집중하는 데 사용된다. 예를 들어, 특정 IP 주소의 트래픽만 표시하도록 필터를 사용할 수 있다.

패킷 목록
- No.(번호): 캡처에서 패킷 번호. 패킷이 캡처된 순서를 추적하는 데 도움이 되는 순차 번호.
- Time(시간): 시간 열은 패킷이 캡처된 타임스탬프를 표시. 이는 네트워크 이벤트의 타이밍을 이해하는 데 유용할 수 있다.
- Source(소스): 소스 열은 패킷을 보낸 장치의 IP 주소를 표시. 이는 네트워크 트래픽의 출처를 식별하는 데 도움이 된다.
- Destination(대상): 대상 열은 패킷이 전송될 장치의 IP 주소를 표시한다. 이는 네트워크 트래픽의 목적지를 알려준다.
- Protocol(프로토콜): 프로토콜 열은 패킷에서 감지된 최상위 계층 프로토콜을 나타낸다. 예를 들어 TCP(Transmission Control Protocol), UDP(User Datagram Protocol) 또는 HTTP(Hypertext Transfer Protocol)
- Length(길이): 길이 열은 패킷의 길이를 바이트 단위로 표시. 이는 전송되는 데이터의 크기를 파악하는 데 도움이 될 수 있다.
- Info(정보): 정보 열은 패킷 내용의 요약을 제공. 웹 페이지에 대한 요청이나 서버의 응답과 같이 패킷이 수행하는 작업에 대한 간략한 개요를 제공한다.
패킷 세부 정보 창 (Packet Details Pane)

- 선택한 패킷에 대한 자세한 정보를 계층적 형식으로 표시한다.
- 패킷은 프레임 계층, 이더넷 계층, IP 계층, TCP 계층 등과 같은 서로 다른 프로토콜 계층으로 나뉜다.
패킷 바이트 창
- 선택한 패킷의 원시 바이트를 16 진수 및 ASCII 형식으로 표시한다.
- 패킷 바이트 창의 왼쪽 열은 오프셋을 표시하며, 이는 패킷에서 각 바이트의 위치이다.
- 중간 열은 바이트의 16 진수 값을 표시한다.
- 오른쪽 열은 바이트의 ASCII 표현을 표시한다.
- 패킷 세부 정보 창의 높은 수준의 프로토콜 정보와 패킷 바이트 창의 원시 이진 데이터 간의 관계를 확인하는 데 도움이 된다.
패킷 목록에서 열 사용자 정의하기
패킷 목록 창에는 캡처된 패킷 목록이 표시된다.

- 열 우클릭 후 + 버튼을 클릭하여 새 열을 추가하거나, 열 제거 , 열 순서 변경, 열 수정이 가능하다.
색상 규칙 구성하기
- Wireshark 는 색상을 사용하여 다양한 유형의 트래픽을 빠르게 식별하는 데 도움을 준다.
- 보기>색상화 규칙
- ICMP Packets(ICMP 패킷)와 같이 규칙의 이름을 입력해 나중에 규칙을 쉽게 인식할 수 있다.
Wireshark 열 표시 사용자 정의
Wireshark 를 열고, 열 머리글을 마우스 오른쪽 버튼으로 클릭하여 열 환경 설정에 액세스하고, 필드 이름 ip.src를 사용하여 "Source IP"라는 새 열을 추가하고, 새 열이 캡처된 패킷의 소스 IP 주소를 올바르게 표시하는지 확인

Wireshark 로 네트워크 트래픽 캡처 및 분석
네트워크 패킷이란?
- 패킷은 네트워크를 통해 전송되는 형식화된 데이터 단위이다.
- 웹사이트 방문, 이메일 전송, 비디오 시청과 같은 인터넷에서 활동을 수행하면 데이터가 작은 청크, 패킷으로 분할되어 네트워크를 통해 목적지로 전송된다.
- 패킷에는 송신, 수신 주소, 페이로드 (데이터, 메시지 내용), 메타데이터 (패킷 처리 방법에 대한 정보) 등이 포함된다.
네트워크 인터페이스 선택
- 패킷을 캡처하려면 모니터링할 네트워크 인터페이스를 선택해야 한다. 각 인터페이스는 시스템의 다른 네트워크 연결을 나타낸다.
- 각 인터페이스 옆 그래프는 해당 인터페이스의 네트워크 활동 수준을 보여준다.
패킷 캡처 시작
- 캡처가 실행되면 기본 창에 실시간으로 패킷이 나타난다.
- Wireshark는 선택한 네트워크 인터페이스를 통해 흐르는 모든 트래픽을 캡처한다. 프로덕션 환경, 공유 네트워크에서 사용할 때는 민감한 정보를 캡처할 수 있으므로 주의해야 한다.
캡처된 패킷 저장
- 나중에 분석할 수 있도록 네트워크 트래픽을 저장할 수도 있다.
- 파일>객체 내보내기
.pcapng 파일 형식은 패킷 캡처를 저장하기 위한 Wireshark 의 기본 형식이다. 캡처된 패킷에 대한 모든 정보가 포함되어 있다. 이전 .pcap 형식 및 가져오기/내보내기를 위한 다른 형식도 지원한다. .pcapng 형식은 더 여러 인터페이스 캡처 및 패킷 주석과 같은 많은 기능을 제공한다.
Wireshark 인터페이스 레이아웃
패킷 목록 창 (상단): 캡처된 모든 패킷을 기본 정보와 함께 표시
패킷 세부 정보 창 (중간): 선택한 패킷에 대한 자세한 정보 표시, OSI 모델 또는 TCP/IP모델을 따른다.
- 프레임 계층: 패킷 캡처에 대한 물리적 정보 (캡처 시간, 프레임 길이)
- 이더넷 계층: MAC 주소 및 기타 링크 계층 정보 포함
- 인터넷 프로토콜 (IP) 계층: IP 주소 정보 포함
- 전송 계층 (TCP/UDP): 포트 번호 및 세션 정보 포함
- 응용 계층 (HTTP, DNS 등): 응용 프로그램별 데이터 포함
HTTP 패킷을 선택하고 "Hypertext Transfer Protocol" 섹션을 확장하면 HTTP 요청 또는 응답의 세부 정보를 볼 수 있다.
- 요청 메서드 (GET, POST 등)
- 헤더 정보 (User-Agent, Content-Type 등)
- 상태 코드 및 응답 메시지

패킷 바이트 창 (하단): 선택한 패킷의 원시 데이터를 16 진수 및 ASCII 형식으로 표시
디스플레이 필터 사용
http: HTTP 트래픽만 표시
dns: DNS 트래픽만 표시
ip.addr == 8.8.8.8: IP 주소 8.8.8.8 에서 또는 IP 주소 8.8.8.8 로의 트래픽 표시
tcp.port == 443: HTTPS 트래픽만 표시
- 기본 필터 외에도 복잡한 필터 표현식을 지원한다.
- 비교 연산자: 같음 (==) 뿐만 아니라
tcp.len > 100: 100 바이트보다 큰 TCP 패킷
frame.time_delta <= 0.1: 이전 패킷과의 시간 차이가 0.1 초 이하인 패킷
- 복합 조건:
http && !(tcp.port == 80): 표준 HTTP 포트가 아닌 HTTP 트래픽
(ip.src == 192.168.1.100 && ip.dst == 8.8.8.8) || (ip.src == 8.8.8.8 && ip.dst == 192.168.1.100): 특정 장치와 DNS 서버 간의 통신
- 포함 및 일치:
http contains "password": 문자열 "password"를 포함하는 HTTP 트래픽
tcp matches "GET [^ ]+ HTTP": GET 요청에 대한 정규 표현식과 일치하는 TCP 패킷
Capture Filters vs Display Filters
| 구분 | 설명 | 예시 |
|---|
| Capture Filter | 패킷을 캡처할 때부터 걸러냄(필터링된 것만 저장됨) | port 80, host 192.168.1.1 |
| Display Filter | 캡처 후 화면에 보여줄 것만 필터링 | http, ip.src == 8.8.8.8 |
분석 사례
| 시나리오 | 분석 팁 |
|---|
| 특정 웹사이트 접속 문제 | dns, http, tcp.analysis 필터로 단계별 확인 |
| 느린 다운로드 | tcp.analysis.retransmission, tcp.window_size 분석 |
| 의심되는 데이터 유출 | http.request.method == "POST" + contains 키워드 분석 |
| 비정상적인 핑 요청 | icmp.type == 8 && frame.time_delta < 0.01 |
TCP 스트림 따라가기
- 두 호스트 간의 전체 대화를 나타낸다.
- TCP(Transmission Control Protocol)은 인터넷에서 사용되는 가장 일반적인 통신 프로토콜로 안정적이고 순서가 지정된 데이터 전송을 제공한다. TCP 스트림은 단일 TCP 연결에서 교환된 모든 패킷의 모음으로, 두 엔드포인트 간의 완전한 대화를 나타낸다.
- 예를 들어, 브라우저가 웹사이트에 연결할 때 TCP 연결을 설정하고, 해당 연결을 통해 요청을 보내고 응답을 받는다. 이 전체 교환이 TCP 스트림을 구성한다.
- TCP 우클릭>따라가기>TCP 스트림

- 빨간색 텍스트는 클라이언트에서 서버로 전송된 데이터를 나타내고, 파란색 텍스트는 서버에서 클라이언트로 전송된 데이터
- 읽기 쉬운 형식으로 보려면 YAML 형식으로
- 문서화, 오프라인 분석을 위해 tcp 스트림을 저장할 수도 있다.
콘텐츠 표시 옵션 (오른쪽 상단)
- ASCII: HTTP 및 기타 텍스트 기반 프로토콜에 이상적인 텍스트로 콘텐츠를 표시
- Hex Dump: 16 진수 및 ASCII 로 콘텐츠를 표시. 바이너리 데이터를 포함하는 스트림에 유용.
- C Arrays: 데이터를 C 프로그래밍 언어 배열로 표시.
- Raw: 원시 데이터만 표시.
스트림 탐색 (드롭다운 메뉴)
- 캡처에 여러 TCP 스트림이 포함된 경우 이 메뉴를 사용하여 스트림 간을 탐색할 수 있다.
- 스트림 번호는 0 부터 시작하여 발견된 순서대로 증가한다.
찾기 기능
- Ctrl+F 를 사용하여 스트림 내용 내에서 검색한다.
- 이는 대규모 스트림에서 특정 문자열 또는 패턴을 찾는 데 도움이 된다.
TCP 통신 패턴
- 3 방향 핸드셰이크: 연결을 시작하는 SYN, SYN-ACK, ACK 시퀀스
- 데이터 전송: 주요 요청 - 응답 교환
- 4 방향 종료: 연결을 종료하는 FIN 및 ACK 시퀀스
통계 분석 도구
-
네트워크에서 주요 활동 패턴 식별
-
이상 트래픽 또는 잠재적 문제 발견
-
리소스 사용량 및 네트워크 성능 이해
-
가장 활성적인 호스트 및 서비스 식별
-
통계> 프로토콜 계층 구조

- 캡처에서 프로토콜의 분포를 보여준다. 백분율은 각 프로토콜이 트래픽의 얼마나 많은 부분을 사용하는지 나타낸다.
- 가장 많은 대역폭을 소비하는 프로토콜, 예상치 못한 또는 잠재적으로 원치 않는 네트워크 트래픽, 네트워크 트래픽의 전반적인 구성 등을 파악할 수 있다.
-
통계>대화

- 어떤 호스트가 통신하고 얼마나 많은 데이터를 교환했는지 보여준다.
- 가장 많은 데이터를 교환하는 장치 쌍 식별, 장치 간의 예상치 못한 통신 발견, 잠재적인 무단 연결 찾기 등에 유용하다.
-
통계>종단점(엔드포인트)
- 트래픽에 관련된 모든 장치를 보여준다.
- 네트워크에서 가장 활성적인 장치 식별, 알 수 없거나 예상치 못한 장치 찾기, IP주소 또는 MAC 주소 별로 트래픽 패턴 분석에 유용하다.
-
통계>I/O 그래프

- 시간 경과에 따른 트래픽 볼륨 표시
- 캡처 기간 동안 트래픽 볼륨이 어떻게 변하는지 보여준다.
- 트래픽 급증 또는 이상 패턴 식별, 네트워크 이벤트를 시간과 연관시키기, 동일한 기간 동안 다른 유형의 트래픽 비교에 유용하다.
-
통계 > HTTP 요청 분석
참고
https://labex.io/ko/tutorials/wireshark-verify-wireshark-installation-548783
https://labex.io/ko/tutorials/wireshark-explore-and-customize-wireshark-interface-415949
https://labex.io/ko/tutorials/wireshark-customize-wireshark-column-display-548785
https://labex.io/ko/tutorials/wireshark-capture-and-analyze-network-traffic-with-wireshark-415956