Tshark 에서 HTTP 객체 내보내기

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 HTTP 트래픽을 분석하고 패킷 캡처에서 전송된 객체를 추출하는 방법을 배우게 됩니다. 캡처 파일을 읽기 위한 -r 및 이미지나 문서와 같은 HTTP 콘텐츠를 검색하기 위한 --export-objects와 같은 주요 명령어를 실습합니다.

이 연습에서는 미리 캡처된 파일 (http.pcap) 에서 로컬 디렉토리로 HTTP 객체를 내보내고, 특정 요청을 필터링하며, 추출된 파일을 검사하는 과정을 안내합니다. 이러한 실용적인 기술은 네트워크 트래픽 분석 및 포렌식 조사에 필수적입니다.

-r http.pcap 으로 HTTP 캡처 열기

이 단계에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 미리 캡처된 HTTP 트래픽 파일을 열고 검사하는 방법을 배우게 됩니다. 이는 실시간 패킷을 캡처하지 않고 저장된 네트워크 트래픽 데이터를 분석해야 할 때 특히 유용합니다.

시작하기 전에 몇 가지 기본 사항을 이해해 보겠습니다.

  • .pcap 파일은 네트워크 패킷 데이터를 저장하기 위한 일반적인 형식입니다.
  • tshark는 Wireshark 의 명령줄 버전으로, GUI 없이 패킷 분석을 가능하게 합니다.
  • HTTP 트래픽은 일반적으로 클라이언트와 서버 간의 웹 요청 및 응답을 보여줍니다.

먼저, 샘플 캡처 파일이 있는 올바른 디렉토리에 있는지 확인합니다.

cd ~/project

tshark-r 옵션은 여기서 중요합니다. "read"를 의미하며, 실시간 트래픽을 캡처하는 대신 저장된 파일에서 패킷 데이터를 분석할 수 있습니다. 일반적인 HTTP 웹 트래픽을 포함하는 http.pcap이라는 샘플 캡처 파일을 사용합니다.

캡처 파일의 내용을 열고 표시하려면 다음을 실행합니다.

tshark -r http.pcap

이 명령은 터미널에 직접 패킷 목록을 표시합니다. 각 줄은 다음과 같은 여러 중요한 필드를 가진 하나의 네트워크 패킷을 나타냅니다.

  • 패킷 번호: 캡처에서 패킷의 시퀀스 번호
  • 타임스탬프 (Timestamp): 패킷이 캡처된 시간 (초)
  • Source IP: 패킷의 출발지 IP 주소
  • Destination IP: 패킷의 목적지 IP 주소
  • Protocol: 사용 중인 네트워크 프로토콜 (이 경우 HTTP)
  • Packet length: 패킷 크기 (바이트)
  • Info: 패킷 내용에 대한 간략한 세부 정보

예를 들어, 일반적인 HTTP 요청 및 응답을 보여주는 다음과 같은 출력을 볼 수 있습니다.

1 0.000000 192.168.1.100 → 192.168.1.1 HTTP GET /index.html HTTP/1.1
2 0.000123 192.168.1.1 → 192.168.1.100 HTTP HTTP/1.1 200 OK (text/html)

첫 번째 줄은 클라이언트 (192.168.1.100) 가 웹 페이지를 요청하는 것을 보여주고, 두 번째 줄은 서버의 성공적인 응답을 보여줍니다. 이 기본 보기를 통해 트래픽 흐름을 빠르게 이해할 수 있습니다.

데이터 검사를 마치고 패킷 보기를 종료하려면 Ctrl+C를 누르십시오. 그러면 명령 프롬프트로 돌아갑니다.

--export-objects http,./objects 로 객체 내보내기

이 단계에서는 패킷 캡처에서 HTTP 를 통해 전송된 파일을 추출하는 방법을 살펴봅니다. HTTP 통신을 포함하는 네트워크 트래픽을 캡처하면 이미지, PDF 또는 스크립트와 같은 파일이 HTTP 프로토콜 내에서 바이너리 객체로 전송됩니다. Tshark 는 이러한 파일을 분석하기 위해 추출하는 편리한 방법을 제공합니다.

먼저, 패킷 캡처 파일이 저장된 프로젝트 디렉토리로 이동합니다. 이렇게 하면 모든 명령이 올바른 파일로 작동합니다.

cd ~/project

파일을 추출하기 전에 파일을 저장할 위치가 필요합니다. mkdir -p 명령은 Tshark 가 추출된 파일을 저장할 "objects"라는 디렉토리를 만듭니다. -p 플래그는 디렉토리가 이미 존재하는 경우 오류를 표시하지 않음을 의미합니다.

mkdir -p objects

이제 Tshark 의 강력한 --export-objects 기능을 사용합니다. 이 명령은 패킷 캡처를 검색하고, HTTP 파일 전송을 식별하고, 원래 파일을 재구성합니다. --export-objects 뒤의 구문에는 두 부분이 있습니다. "http"는 프로토콜을 지정하고, "./objects"는 출력 디렉토리입니다.

tshark -r http.pcap --export-objects http,./objects

이 명령을 실행하면 다음과 같은 일이 발생합니다.

  1. Tshark 는 http.pcap 파일을 읽습니다. (-r 플래그)
  2. HTTP 트래픽을 분석하고 파일 전송을 식별합니다.
  3. 발견된 각 파일은 재구성되어 ./objects 디렉토리에 저장됩니다.

명령을 실행한 후 Tshark 는 추출한 각 파일을 표시합니다. 예를 들어, 파일의 성공적인 추출을 보여주는 다음과 같은 출력을 볼 수 있습니다.

Exporting HTTP object 1: image1.jpg
Exporting HTTP object 2: document.pdf

이제 이러한 파일은 추가 검사를 위해 objects 디렉토리에서 사용할 수 있습니다. 이 기술은 웹 트래픽을 분석하거나 네트워크 문제 해결 중에 파일 다운로드를 조사할 때 특히 유용합니다.

./objects 디렉토리의 파일 목록 확인

이 단계에서는 이전 단계에서 패킷 캡처에서 추출된 HTTP 객체를 검사합니다. 이러한 객체는 이미지, 문서 또는 스크립트와 같이 HTTP 를 통해 전송된 파일을 나타냅니다. ./objects 디렉토리의 내용을 나열하여 어떤 파일이 성공적으로 내보내졌는지 확인하고 추가 분석을 준비할 수 있습니다.

먼저, 추출된 파일이 저장된 프로젝트 디렉토리로 이동합니다. 이렇게 하면 올바른 위치에서 작업하고 있는지 확인합니다.

cd ~/project

자세한 정보와 함께 추출된 모든 파일을 보려면 두 가지 유용한 옵션과 함께 ls 명령을 사용합니다.

ls -lh ./objects

각 부분의 기능은 다음과 같습니다.

  • -l은 권한, 크기 및 타임스탬프가 포함된 긴 형식 목록을 표시합니다.
  • -h는 파일 크기를 사람이 읽을 수 있는 형식 (바이트 대신 KB, MB) 으로 표시합니다.

HTTP 트래픽에서 추출된 실제 파일을 보여주는 다음과 유사한 출력을 볼 수 있습니다.

total 24K
-rw-r--r-- 1 labex labex 5.2K Jan 1 10:00 image1.jpg
-rw-r--r-- 1 labex labex 12K Jan 1 10:00 document.pdf
-rw-r--r-- 1 labex labex 1.5K Jan 1 10:00 script.js

추출된 파일의 수만 알고 싶다면 (세부 정보를 보지 않고) 이 명령으로 계산합니다.

ls ./objects | wc -l

wc -l 부분은 출력의 줄 수를 계산하며, 이는 파일 수에 해당합니다. 예제의 경우 다음과 같이 표시됩니다.

3

-Y "http.request.uri"를 사용하여 특정 요청 필터링

이 단계에서는 Wireshark 의 명령줄 도구인 tshark 를 사용하여 패킷 캡처 파일에서 특정 HTTP 요청을 필터링하는 방법을 살펴봅니다. -Y 옵션을 사용하면 분석하려는 네트워크 트래픽에만 집중하기 위해 강력한 표시 필터를 적용할 수 있습니다.

시작하기 전에 패킷 캡처 파일이 저장된 올바른 작업 디렉토리에 있는지 확인합니다.

cd ~/project

기본 명령 구조는 tshark -r을 사용하여 패킷 캡처 파일을 읽고, 그 뒤에 필터 표현식과 함께 -Y를 사용합니다. HTTP 트래픽으로 작업할 때 URI (Uniform Resource Identifier) 경로를 검사하여 HTTP 요청 패킷을 구체적으로 필터링할 수 있습니다.

tshark -r http.pcap -Y "http.request.uri"

이 명령은 http.pcap 파일을 처리하고 필터와 일치하는 HTTP 요청 패킷만 표시합니다. 각 일치하는 패킷에 대해 다음을 포함한 중요한 정보를 볼 수 있습니다.

  • 패킷 번호 (캡처에서 해당 위치 표시)
  • 패킷 캡처 시점의 타임스탬프
  • 소스 및 대상 IP 주소
  • 전체 HTTP 요청 URI 경로

일반적인 출력은 다음과 같습니다.

10 1.234567 192.168.1.100 → 203.0.113.5 HTTP GET /images/logo.png HTTP/1.1
15 2.345678 192.168.1.100 → 203.0.113.5 HTTP GET /api/data.json HTTP/1.1

특정 파일 형식 또는 경로를 찾아서 필터를 더 구체적으로 만들 수 있습니다. 예를 들어, PNG 이미지 파일에 대한 요청만 찾으려면 URI 에서 ".png"를 확인하도록 필터를 수정할 수 있습니다.

tshark -r http.pcap -Y 'http.request.uri contains ".png"'

이 기술은 특정 요청된 리소스를 식별하거나 특정 유형의 웹 요청 문제를 해결하기 위해 웹 트래픽을 분석할 때 특히 유용합니다. 표시 필터 구문을 사용하면 분석에서 어떤 패킷을 볼지 정밀하게 제어할 수 있습니다.

요약

이 랩에서는 Wireshark 의 명령줄 도구인 tshark를 사용하여 HTTP 트래픽을 분석하고 전송된 객체를 추출하는 방법을 배웠습니다. http.pcap 파일을 사용하여 -r 플래그로 패킷 세부 정보를 보고 --export-objects를 사용하여 이미지 및 문서와 같은 HTTP 객체를 지정된 디렉토리로 내보내는 연습을 했습니다.

또한 URI 를 기반으로 트래픽을 격리하기 위해 -Y 플래그로 특정 HTTP 요청을 필터링하는 방법을 살펴보았습니다. 이러한 기술은 tshark의 명령줄 인터페이스를 통해 효율적인 네트워크 분석 및 대상 파일 추출을 위한 필수 기술을 제공합니다.