와이어샤크를 이용한 네트워크 패킷 분석 실습 과정을 정리했습니다. MAC 주소 랜덤화부터 실제 패킷 캡처 및 분석까지, 보안을 고려한 안전한 실습 방법을 다룹니다.
개요
이 글은 와이어샤크를 이용한 네트워크 패킷 분석 실습 과정을 정리했습니다. MAC 주소 랜덤화부터 실제 패킷 캡처 및 분석까지, 보안을 고려한 안전한 실습 방법을 다룹니다.
환경 설정
- 운영체제: macOS (MacBook Air)
- 도구: Wireshark 4.4.8
- 네트워크: Wi-Fi (en0 인터페이스)
- 보안: MAC 주소 랜덤화 적용
1. 사전 준비: MAC 주소 랜덤화
macOS에서 특정 MAC 주소로 변경
실습 전 개인정보 보호를 위해 MAC 주소를 더미 값으로 변경합니다.
스크립트 생성
cat > ~/set_specific_mac.sh << 'EOF'
#!/bin/bash
if [ -z "$1" ]; then
echo "사용법: ./set_specific_mac.sh aa:bb:cc:dd:ee:ff"
exit 1
fi
sudo ifconfig en0 down
sudo ifconfig en0 ether $1
sudo ifconfig en0 up
echo "MAC changed to: $1"
# MAC 주소 마스킹해서 출력
ifconfig en0 | grep ether | sed 's/[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]/[HIDDEN]/g'
EOF
chmod +x ~/set_specific_mac.sh
alias 추가 및 실행
echo "alias setmac='~/set_specific_mac.sh'" >> ~/.zshrc
source ~/.zshrc
# 더미 MAC 주소로 변경
setmac aa:bb:cc:dd:ee:ff
실행 결과
ifconfig: ioctl (SIOCAIFADDR): Network is down
MAC changed to: aa:bb:cc:dd:ee:ff
ether [HIDDEN]
2. 와이어샤크 인터페이스 분석
네트워크 인터페이스 목록
와이어샤크 시작 화면에서 다양한 네트워크 인터페이스를 확인할 수 있습니다.
실제 네트워크 인터페이스
- Wi-Fi: en0: 맥북 메인 Wi-Fi 어댑터 (인터넷 연결의 주 통로)
- awdl0: Apple Wireless Direct Link (AirDrop, Handoff 등)
- ap1: Access Point 인터페이스 (핫스팟 모드)
- llw0: Low Latency WLAN (저지연 무선 연결)
유선/어댑터
- Ethernet Adapter (en3, en4): USB-C/Thunderbolt 이더넷 어댑터
- Thunderbolt 1, 2 (en1, en2): Thunderbolt 포트 네트워크
- Thunderbolt Bridge (bridge0): Thunderbolt 네트워크 브리지
가상화/터널링
- vmenet0: UTM/VMware 가상머신 네트워크
- bridge100: 가상머신용 네트워크 브리지
- utun0~5: VPN 터널들 (각각 다른 VPN 연결)
- anpi0/anpi1: Apple Network Private Interface
시스템 인터페이스
- Loopback: lo0: 자기 자신과의 통신 (127.0.0.1)
- gif0/stf0: 터널링 인터페이스 (IPv6 관련)
네트워크 연결 구조
인터넷 ← 공유기 ← 맥북 Wi-Fi (en0) ← 맥 시스템
↓
vmenet0 ← UTM ← 우분투
↓
utun0/1 ← VPN 앱들
3. 패킷 캡처 실습
초기 캡처 (사설 IP 필터)
첫 번째 실습에서는 사설 IP 대역만 표시하는 필터를 사용했습니다.
사용된 필터
(ip.addr >= 10.0.0.0 and ip.addr <= 10.255.255.255
or ip.addr >= 172.16.0.0 and ip.addr <= 172.31.255.255
or ip.addr >= 192.168.0.0 and ip.addr <= 192.168.255.255)
and not dns
필터 효과:
- 사설 IP만 표시 → 공인 IP(222.xxx 등) 숨김
- DNS 제외 → 접속 사이트 정보 숨김
- 보안성 향상
HTTP 트래픽 분석
사용된 필터
tcp.port == 80 and not ip.src == 192.168.45.188
필터 목적:
- TCP 포트 80번 패킷만 표시 (HTTP 트래픽)
- 내 IP에서 나가는 패킷 제외
- 서버 응답만 관찰
캡처된 패킷 분석
주요 관찰 포인트:
- HTTP/1.1 200 OK: 웹서버 응답 성공
- Server Hello, Change Cipher: SSL/TLS 암호화 협상
- 34.160.111.145: 구글 클라우드 서버 IP
- 17.253.115.197: 애플 서버 IP
패킷 구조 (선택된 패킷 972번):
Frame 972: 74 bytes on wire
└── Ethernet II (MAC 주소 레벨)
└── Internet Protocol Version 4 (IP 헤더)
└── Transmission Control Protocol (TCP 헤더)
├── Src Port: 80 (HTTP 서버 포트)
├── Dst Port: 53938 (내 컴퓨터의 임시 포트)
├── Sequence Number: 0
└── Acknowledgment: 1
4. TCP 연결 상태 분석
실제 캡처된 다양한 패킷 유형들
실제 패킷 캡처 결과에서 다양한 TCP 상태와 HTTP 응답을 관찰할 수 있습니다.
빨간색 줄 (TCP RST)
17.253.115.197 → 192.168.45.188
TCP [RST] Seq=10376 Ack=1 Win=32230 Len=0
- RST (Reset): 서버가 연결을 강제로 끊는 신호
- 발생 이유: 서버 에러, 잘못된 요청, 세션 충돌 등
- 실제 관찰: 애플 서버에서 연결 리셋 발생
녹색 줄 (정상 HTTP 트래픽)
HTTP/1.1 404 Not Found
HTTP/1.1 200 OK
- 404: 요청한 리소스를 찾을 수 없음
- 200: 요청 처리 성공
노란색 줄 (TCP Retransmission)
TCP Retransmission 80 → 53997 [SYN, ACK]
- 네트워크 지연/손실 시 자동 재전송
- TCP의 신뢰성 보장 메커니즘
파란색 줄 (Keep-Alive)
TCP [Keep-Alive ACK] Seq=1899 Ack=942 Win=64384 Len=0
- 연결 상태 유지 확인 패킷
- Len=0으로 실제 데이터는 없음
TCP 연결 생명주기
1. 연결 시작 (3-way Handshake)
SYN → 클라이언트 → 서버
SYN, ACK → 서버 → 클라이언트
ACK → 클라이언트 → 서버
2. 데이터 교환
HTTP 요청 → 클라이언트 → 서버
HTTP 응답 → 서버 → 클라이언트
3. 연결 종료
정상 종료 (FIN):
FIN, ACK → 클라이언트 → 서버
ACK → 서버 → 클라이언트
FIN, ACK → 서버 → 클라이언트
ACK → 클라이언트 → 서버
비정상 종료 (RST):
- 서버가 RST 패킷으로 강제 연결 종료
5. 패킷 상세 정보 해석
화면 구성
상단 영역
- 제목: "Capturing from Wi-Fi: en0" (현재 캡처 인터페이스)
- 필터창: 패킷 필터링 조건 표시
패킷 목록 (중간)
- No.: 패킷 번호
- Time: 캡처 시간 (상대적)
- Source: 발신지 IP 주소
- Destination: 수신지 IP 주소
- Protocol: 사용 프로토콜
- Length: 패킷 크기
- Info: 패킷 내용 요약
패킷 상세 (하단 좌측)
선택한 패킷의 계층별 구조 표시
Hex 덤프 (하단 우측)
- 좌측: 16진수 바이트 값
- 우측: ASCII 텍스트 해석
통계 정보
Packets: 53447, Displayed: 49 (0.1%)
- 전체 53,447개 패킷 중 필터 조건에 맞는 49개만 표시
- 필터가 99.9%의 불필요한 패킷을 걸러냄
6. 보안 고려사항
안전한 실습을 위한 조치
MAC 주소 랜덤화
- 실제 하드웨어 MAC 주소 숨김
- 더미 값(aa:bb:cc:dd:ee:ff) 사용
필터링을 통한 정보 보호
- 사설 IP 대역만 표시
- DNS 쿼리 제외로 접속 사이트 숨김
- 나가는 패킷 제외로 내부 정보 최소화
공개 안전한 정보들
- 사설 IP 주소: 외부 접근 불가
- 일반적인 포트 번호: 표준 웹 서비스 포트
- 서버 IP: 공개된 웹 서버 주소
- 프로토콜 정보: 표준 네트워크 프로토콜
요약
네트워크 프로토콜 이해
- TCP/IP 4계층 구조 실제 관찰
- HTTP 요청/응답 과정 시각화
- SSL/TLS 암호화 협상 과정 확인
패킷 분석 기술
- 필터 사용법 숙달
- 다양한 패킷 유형 구분
- 네트워크 문제 진단 능력 향상
보안 의식 제고
- 개인정보 보호 방법 학습
- 네트워크 트래픽의 보안 위험 인식
- 안전한 분석 환경 구축 경험
결론
와이어샤크를 이용한 패킷 분석 실습을 통해 네트워크 통신의 실제 모습을 관찰할 수 있었습니다. MAC 주소 랜덤화와 적절한 필터링을 통해 보안을 유지하면서도, TCP/IP 프로토콜의 동작 원리와 다양한 네트워크 상황을 실제로 확인할 수 있었습니다.
특히 HTTP 트래픽 분석을 통해 웹 브라우저와 서버 간의 통신 과정, TCP 연결의 생명주기, 그리고 다양한 네트워크 상태(정상 응답, 에러, 연결 종료 등)를 실제 패킷 레벨에서 이해할 수 있었습니다.
⚠️ 본 실습에서 사용된 모든 MAC 주소와 IP 정보는 더미 데이터 또는 사설 주소입니다. 네트워크 보안 실습에서는 항상 개인정보 보호를 우선시해야 합니다.
'network' 카테고리의 다른 글
[네트워크] ALFA AWUS036ACM USB 무선랜카드로 Wi-Fi 보안 학습 환경 구축하기 (2) | 2025.09.08 |
---|---|
[네트워크] UTM VM에서 USB 무선랜카드 연결하는 법 (macOS) (0) | 2025.09.08 |
[네트워크] C 소켓 프로그래밍 Echo 서버 구현 - 기본부터 멀티클라이언트까지 (0) | 2025.09.08 |
[네트워크] C 네트워크 프로그래밍과 패킷 분석 실습 (0) | 2025.09.08 |
[네트워크 보안] MAC 주소 변경과 네트워크 인터페이스 완전 분석 - UTM 가상머신과 macOS 환경 비교 (0) | 2025.09.08 |