tcpdump를 사용하여 패킷 내용을 캡처하고 보는 방법

tcpdump를 사용하여 패킷 내용을 캡처하고 보는 방법

HTTP 트래픽을 파일의 포트 8007로 보낸 다음 나중에 보려고 합니다.

# tcpdump -i eth0 -s0 -n -w /tmp/capture port 8007 &
# tcpdump -r /tmp/capture -A | grep '10.2.1.50'

패킷 데이터를 ASCII 형식으로 볼 것으로 예상했지만 그렇지 않습니다. 내가 얻는 것은 이것이다:

23:03:16.819935 IP 10.2.1.50.8007 > 10.2.1.120.57469: . ack 1369 win 272 <nop,nop,timestamp 188139705 215355175>
23:03:16.819943 IP 10.2.1.120.57469 > 10.2.1.50.8007: P 1369:1592(223) ack 1 win 12 <nop,nop,timestamp 215355175 188139703>
23:03:16.819947 IP 10.2.1.50.8007 > 10.2.1.120.57469: . ack 1592 win 272 <nop,nop,timestamp 188139705 215355175>
23:03:17.029587 IP 10.2.1.50.8007 > 10.2.1.120.57469: P 1:780(779) ack 1592 win 272 <nop,nop,timestamp 188139758 215355175>
23:03:17.029736 IP 10.2.1.50.8007 > 10.2.1.153.49989: F 822:822(0) ack 3494 win 272 <nop,nop,timestamp 188139758 1641992210>
23:03:17.040759 IP 10.2.1.120.57469 > 10.2.1.50.8007: . ack 780 win 15 <nop,nop,timestamp 215355396 188139758>
23:03:17.079305 IP 10.2.1.153.49989 > 10.2.1.50.8007: . ack 823 win 15 <nop,nop,timestamp 1642053303 188139758>

실제 내용을 보려면 쓰기나 읽기를 어떻게 수정해야 합니까? -v와 같은 다른 옵션을 시도했지만 콘텐츠에서는 작동하지 않습니다. SLES 11 SP2를 사용하고 있습니다. 이것이 tcpdump올바른 도구입니까?

감사합니다.

- 편집하다

# tcpdump --version
tcpdump version 3.9.8
libpcap version 0.9-PRE-CVS

-X 옵션도 사용해 보았지만 여전히 페이로드 데이터를 볼 수 없습니다.

답변1

출력을 grep으로 파이프하기 때문에 헤더만 볼 수 있고 패킷 내용은 볼 수 없습니다. 따라서 IP 주소가 있는 행만 가져옵니다.

-A옵션은 tcpdump패킷 내용도 제공합니다.

답변2

사용tcpdump -X

예를 들어(제가 사용하는 Fedora/Centos의 경우):

sudo tcpdump -nvvvXi br0 

    13:29:20.311228 00:1c:73:86:12:f9 > 01:00:5e:00:01:81, ethertype IPv4 (0x0800), length 86: (tos 0x0, ttl 5, id 0, offset 0, flags [none], proto UDP (17), length 72)
        10.134.245.1.ptp-general > 224.0.1.129.ptp-general: Ptp MessageType: Follow_Up, SequenceId: 8208
    
            0x0000:  4500 0048 0000 0000 0511 d49c 0a86 f501  E..H............
            0x0010:  e000 0181 0140 0140 0034 0cd0 0802 002c  .....@[email protected].....,
            0x0020:  0100 0000 0000 0000 0000 0000 0000 0000  ................
            0x0030:  444c a8ff ffc7 1f6b 0236 2010 0200 0000  DL.....k.6......
            0x0040:  5f2a b430 0d5e b480                      _*.0.^..

답변3

이것이 내용입니다. 콘텐츠를 필터링하는 데 사용한 몇 가지 명령이 있습니다.

답변4

OP가 IP 10.2.1.50에서 오는 패킷의 내용을 보고 싶어하는 것 같습니다.
방금 이 기사를 우연히 발견해서 업데이트하고 싶었습니다. tcpdump에서 스위치 사용하기
저는 저장된 pcap 파일을 스위치와 함께 사용한 적이 없지만 작동할 수 있기를 바랍니다. 라이브 tcpdump에서 예제를 사용하는 방법 - 10.2.1.50의 "들어오고 나가는" 트래픽을 확인하거나 네트워크의 결과를 확인하거나 10.2.1.50에서 발생하는 트래픽을 확인하세요. 도움이 되기를 바랍니다. host


tcpdump -nnA host 10.2.1.50
tcpdump -nnA net 10.2.1.0/24
tcpdump -nnA src 10.2.1.50

편집하다또한 올바르게 grep하려면 -A 스위치를 사용하십시오
tcpdump -r /tmp/capture -A | grep -A5 '10.2.1.50'
. A5 스위치는 10.2.1.50과 일치하는 행 다음에 다음 5개 행을 표시합니다.

관련 정보