소개
서비스 이름이나 포트 보고서는 네트워크 관찰을 요약합니다. 패킷 캡처를 사용하면 엔드포인트, 연결 제어, 애플리케이션 메시지를 포함하여 요약 뒤의 실제 트래픽을 살펴볼 수 있습니다.
Kali 루프백 인터페이스에서 승인된 작은 HTTP 통신 하나를 캡처합니다. 앞선 실습의 프로세스 제어와 HTTP 기술로 실제 pcap을 저장하고 tcpdump로 확인하세요.
작은 로컬 HTTP 통신 캡처하기
이 단계에서는 제공된 교육용 서비스의 HTTP 요청에 대한 제한된 패킷 집합을 캡처합니다.
Kali에 들어가 공유 작업 공간을 선택하세요.
kali
cd /home/labex/project
HTTP 엔드포인트는 http://127.0.0.1:8080/capture.txt입니다. 주소가 Kali 안의 루프백이므로 트래픽은 호스트 네트워크 인터페이스 대신 lo 인터페이스를 사용합니다. 이 환경에서 패킷 캡처에는 높은 권한이 필요합니다. 필요한 캡처 및 분석 명령어에만 sudo를 사용하세요.
tcpdump는 패킷을 캡처합니다. -i lo는 루프백을 선택하고, -c 8은 일치하는 패킷 여덟 개 후에 중지하고, -w training.pcap은 바이너리 캡처 파일을 씁니다. 따옴표로 감싼 필터 tcp port 8080은 교육 서비스 포트와 관련된 TCP 트래픽을 선택합니다. 끝의 &는 같은 터미널에서 요청을 만들 수 있도록 캡처를 백그라운드에서 시작합니다.
sudo tcpdump -i lo -c 8 -w training.pcap 'tcp port 8080' &
셸은 작업 번호를 출력합니다. Tcpdump는 수신 대기 중이라는 메시지를 출력할 수 있습니다. 앞서 연습한 sleep 명령어로 캡처 초기화에 1초를 주세요.
sleep 1
이제 이미 배운 curl 요청을 보내고 응답 본문을 저장하세요.
curl -sS http://127.0.0.1:8080/capture.txt > captured-response.txt
요청과 응답은 연결 설정과 애플리케이션 데이터를 포함한 여러 TCP 패킷을 만듭니다. wait는 이 셸의 백그라운드 작업이 끝날 때까지 기다립니다.
wait
Tcpdump는 설정한 패킷 수 후에 중지하고 캡처 요약을 출력해야 합니다. 바이너리 pcap은 구조화된 패킷 파일입니다. 텍스트처럼 cat으로 읽지 마세요. 애플리케이션 응답은 따로 확인하세요.
cat captured-response.txt
예상 출력:
Local capture practice.
pcap과 응답 본문은 같은 로컬 통신을 다른 형태로 설명합니다. 캡처를 제공된 인터페이스와 엔드포인트로 제한하세요.
저장된 패킷 읽기와 해석
이 단계에서는 캡처를 읽고 패킷 엔드포인트를 HTTP 요청 및 응답과 연결합니다.
-r은 실시간 수신 대신 저장된 캡처를 읽습니다. -nn은 이름 조회가 실제 엔드포인트를 가리지 않도록 주소와 포트를 모두 숫자로 유지합니다.
sudo tcpdump -nn -r training.pcap
각 줄에는 타임스탬프, 엔드포인트, 전송 정보가 포함됩니다. 양쪽의 127.0.0.1과 서비스 쪽의 포트 8080을 찾아보세요. 다른 TCP 포트는 클라이언트에 속하며 달라질 수 있습니다. TCP 플래그는 애플리케이션 데이터 패킷뿐 아니라 연결 제어도 설명하므로 모든 줄에 HTTP 메시지가 있는 것은 아닙니다.
패킷 내용을 ASCII 텍스트로 표시하려면 -A를 추가하세요.
sudo tcpdump -nn -A -r training.pcap
바이너리처럼 보이는 프로토콜 필드 사이에서 요청 GET /capture.txt HTTP/1.1과 성공적인 HTTP 응답 상태를 찾아보세요. 이는 평문 HTTP입니다. 암호화된 HTTPS는 기본 패킷 덤프에서 같은 읽기 쉬운 애플리케이션 내용을 노출하지 않습니다.
읽기 쉬운 분석을 원본 pcap과 별도로 저장하세요.
sudo tcpdump -nn -A -r training.pcap > packet-details.txt
Tcpdump의 캡처 파일 설명은 표준 오류에 계속 나타날 수 있습니다. 패킷 세부 정보는 리디렉션된 파일로 갑니다. grep으로 요청 줄을 찾으세요.
grep 'GET /capture.txt' packet-details.txt
일치하는 줄은 패킷 증거를 생성한 요청과 연결합니다. 이후 도구를 위한 바이너리 캡처와 빠른 확인을 위한 읽기 쉬운 보기를 보관했습니다.
요약
캡처 인터페이스와 필터를 선택하고 패킷 수를 제한하고 백그라운드 캡처와 HTTP 요청을 조율한 뒤 결과 pcap을 읽었습니다. 숫자 엔드포인트와 TCP 패킷을 실제 요청 및 응답과 연결했습니다.

