wireshark로 원격 시스템의 트래픽을 어떻게 스니핑 할 수 있습니까?


38

로컬 PC의 트래픽을 스니핑 할 수 있지만 wireshark로 원격 시스템의 트래픽을 스니핑하는 방법을 알고 싶습니다.

캡처 옵션에있을 때 원격 인터페이스를 선택하고 원격 IP를 입력하면 error.code (10061)가 표시됩니다. 어떻게해야합니까?


5
네트워크 인터페이스에서보고있는 트래픽 만 스니핑 할 수 있습니다. 네트워크가 전환 된 경우 원격 시스템으로 패킷이 전송되지 않습니다. BTW : 합격률을 높이십시오.
Matteo

답변:


54

Linux 및 OSX에서 ssh를 통해 tcpdump를 실행하고 wireshark가 파이프에서 청취하도록하여이를 달성 할 수 있습니다.

  1. 명명 된 파이프를 만듭니다.

    $ mkfifo /tmp/remote

  2. 명령 행에서 wireshark를 시작하십시오.

    $ wireshark -k -i /tmp/remote

  3. 원격 시스템에서 ssh를 통해 tcpdump를 실행하고 이름 지정된 파이프로 패킷을 경로 재 지정하십시오.

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

출처 : http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/


이런 식으로 라우터 자체에서 라우터를 통과하는 패킷을 잡을 수 있습니까? 아니면 불가능한 것입니까?
inf3rno

대단하다. 내 2c : [ssh root] 허용은 일반적으로 권장되지 않지만 / etc / ssh / sshd_config의 [Match User] 줄에 root를 추가하여 일시적으로 켤 수 있습니다.
moodboom

이것은 나를 위해 작동하지 않습니다, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote왜 그런지 말해 줄 수 있습니까?
피닉스

@infmo 라우터가 tcpdump를 직접 실행할 수 있다면 가능합니다. 내 tcpdump를 설치할 공간이 없습니다. 로우 엔드 라우터에는 드문 일이 아닙니다.
어디에서 왔습니까?

21

이 oneliner를 루트로 사용합니다. 매우 유용합니다!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

마지막 -이전 de |는 해당 출력의 리디렉션이며 wireshark의 표준 입력에 사용됩니다. -kwireshark 의 옵션은 "분명히 스니핑 시작"을 의미합니다.


내가 본 최고의 첫 번째 대답.
sjas

10

한 가지 방법은 스위치에 미러 또는 스팬 포트 를 사용하는 것 입니다. 스위치가 충분히 지능적이지 않은 경우 스위치 / 호스트-캡처 연결 사이에 작은 허브를 넣을 수도 있습니다. 청취 호스트에서 해당 포트 / 허브로의 물리적 링크를 연결하면 장치를 통과하는 모든 트래픽을 볼 수 있습니다. 또는 경계 방화벽 / 라우터와 같이보다 전략적인 네트워크 위치에 패킷 캡처 소프트웨어를 설치해야합니다.


이런 식으로 해결할 수있는 다소 흥미로운 문제가 있습니다. 대답 할 수 있습니까? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

파일 디스크립터를 사용하여 패킷을 연결 및 수신하고 sshwireshark에 로컬로 파이프 할 수 있습니다.

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

wireshark가 열리고 /dev/fd/63원격 인터페이스의 데이터를 포함하는 파일 디스크립터 인 "인터페이스"를 표시합니다 .



1

RHEL에서 konrad의 대답은 tcpdump루트가 필요 하기 때문에 저에게 효과가 없었으며 sudo 액세스 권한 만 있습니다. 내가 일한 것은 내가 읽을 수있는 여분의 원격 fifo를 만드는 것이 었습니다.

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

별도의 연결로 데이터를 보내십시오.

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

마지막으로 Wireshark를 시작하십시오

local:~$ wireshark -k -i pcap

0

당신은 당신에게 트래픽을 스니핑 할 수 있습니다. 따라서 Joe A가 Joe B에게가는 것은 절대 PC 근처에 오지 않으므로 볼 수 없습니다.

유일한 방법은 당신이 교통에 도착하거나 당신에게 교통을 얻는 것입니다. 트래픽에 도달하려면 라우터 중간에있는 스위치 나 허브 나 라우터에 연결해야합니다. 트래픽을 얻으려면 스위치 중 일부를 ARP가 독살하여 스위치가 생각하도록해야합니다.


0

이전 답변 외에도 netcat nc이있는 버전 도 유용 할 수 있습니다.

원격 호스트:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

로컬 호스트 :

wireshark -ki <(nc 192.168.1.1 10000)

이 방법에 대한 참고 사항 : 모든 인터페이스에 안전하지 않은 포트가 열려 있으므로 방화벽 규칙으로 들어오는 연결을 필터링해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.